You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by gi...@apache.org on 2018/01/13 15:31:50 UTC

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

Repository: hbase-site
Updated Branches:
  refs/heads/asf-site 27d54dda8 -> 554d61c64


http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/src-html/org/apache/hadoop/hbase/zookeeper/TestZKMetrics.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/zookeeper/TestZKMetrics.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/zookeeper/TestZKMetrics.html
deleted file mode 100644
index c0fee90..0000000
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/zookeeper/TestZKMetrics.html
+++ /dev/null
@@ -1,152 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html lang="en">
-<head>
-<title>Source code</title>
-<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
-</head>
-<body>
-<div class="sourceContainer">
-<pre><span class="sourceLineNo">001</span>/**<a name="line.1"></a>
-<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.2"></a>
-<span class="sourceLineNo">003</span> * or more contributor license agreements.  See the NOTICE file<a name="line.3"></a>
-<span class="sourceLineNo">004</span> * distributed with this work for additional information<a name="line.4"></a>
-<span class="sourceLineNo">005</span> * regarding copyright ownership.  The ASF licenses this file<a name="line.5"></a>
-<span class="sourceLineNo">006</span> * to you under the Apache License, Version 2.0 (the<a name="line.6"></a>
-<span class="sourceLineNo">007</span> * "License"); you may not use this file except in compliance<a name="line.7"></a>
-<span class="sourceLineNo">008</span> * with the License.  You may obtain a copy of the License at<a name="line.8"></a>
-<span class="sourceLineNo">009</span> *<a name="line.9"></a>
-<span class="sourceLineNo">010</span> *     http://www.apache.org/licenses/LICENSE-2.0<a name="line.10"></a>
-<span class="sourceLineNo">011</span> *<a name="line.11"></a>
-<span class="sourceLineNo">012</span> * Unless required by applicable law or agreed to in writing, software<a name="line.12"></a>
-<span class="sourceLineNo">013</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.13"></a>
-<span class="sourceLineNo">014</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.14"></a>
-<span class="sourceLineNo">015</span> * See the License for the specific language governing permissions and<a name="line.15"></a>
-<span class="sourceLineNo">016</span> * limitations under the License.<a name="line.16"></a>
-<span class="sourceLineNo">017</span> */<a name="line.17"></a>
-<span class="sourceLineNo">018</span>package org.apache.hadoop.hbase.zookeeper;<a name="line.18"></a>
-<span class="sourceLineNo">019</span><a name="line.19"></a>
-<span class="sourceLineNo">020</span>import static org.mockito.Mockito.mock;<a name="line.20"></a>
-<span class="sourceLineNo">021</span>import static org.mockito.Mockito.times;<a name="line.21"></a>
-<span class="sourceLineNo">022</span>import static org.mockito.Mockito.verify;<a name="line.22"></a>
-<span class="sourceLineNo">023</span><a name="line.23"></a>
-<span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.testclassification.SmallTests;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.testclassification.ZKTests;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.junit.Test;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.junit.experimental.categories.Category;<a name="line.27"></a>
-<span class="sourceLineNo">028</span><a name="line.28"></a>
-<span class="sourceLineNo">029</span>@Category({ ZKTests.class, SmallTests.class })<a name="line.29"></a>
-<span class="sourceLineNo">030</span>public class TestZKMetrics {<a name="line.30"></a>
-<span class="sourceLineNo">031</span><a name="line.31"></a>
-<span class="sourceLineNo">032</span>  @Test<a name="line.32"></a>
-<span class="sourceLineNo">033</span>  public void testRegisterExceptions() {<a name="line.33"></a>
-<span class="sourceLineNo">034</span>    MetricsZooKeeperSource zkSource = mock(MetricsZooKeeperSourceImpl.class);<a name="line.34"></a>
-<span class="sourceLineNo">035</span>    ZKMetrics metricsZK = new ZKMetrics(zkSource);<a name="line.35"></a>
-<span class="sourceLineNo">036</span>    metricsZK.registerAuthFailedException();<a name="line.36"></a>
-<span class="sourceLineNo">037</span>    metricsZK.registerConnectionLossException();<a name="line.37"></a>
-<span class="sourceLineNo">038</span>    metricsZK.registerConnectionLossException();<a name="line.38"></a>
-<span class="sourceLineNo">039</span>    metricsZK.registerDataInconsistencyException();<a name="line.39"></a>
-<span class="sourceLineNo">040</span>    metricsZK.registerInvalidACLException();<a name="line.40"></a>
-<span class="sourceLineNo">041</span>    metricsZK.registerNoAuthException();<a name="line.41"></a>
-<span class="sourceLineNo">042</span>    metricsZK.registerOperationTimeoutException();<a name="line.42"></a>
-<span class="sourceLineNo">043</span>    metricsZK.registerOperationTimeoutException();<a name="line.43"></a>
-<span class="sourceLineNo">044</span>    metricsZK.registerRuntimeInconsistencyException();<a name="line.44"></a>
-<span class="sourceLineNo">045</span>    metricsZK.registerSessionExpiredException();<a name="line.45"></a>
-<span class="sourceLineNo">046</span>    metricsZK.registerSystemErrorException();<a name="line.46"></a>
-<span class="sourceLineNo">047</span>    metricsZK.registerSystemErrorException();<a name="line.47"></a>
-<span class="sourceLineNo">048</span>    metricsZK.registerFailedZKCall();<a name="line.48"></a>
-<span class="sourceLineNo">049</span><a name="line.49"></a>
-<span class="sourceLineNo">050</span>    verify(zkSource, times(1)).incrementAuthFailedCount();<a name="line.50"></a>
-<span class="sourceLineNo">051</span>    // ConnectionLoss Exception was registered twice.<a name="line.51"></a>
-<span class="sourceLineNo">052</span>    verify(zkSource, times(2)).incrementConnectionLossCount();<a name="line.52"></a>
-<span class="sourceLineNo">053</span>    verify(zkSource, times(1)).incrementDataInconsistencyCount();<a name="line.53"></a>
-<span class="sourceLineNo">054</span>    verify(zkSource, times(1)).incrementInvalidACLCount();<a name="line.54"></a>
-<span class="sourceLineNo">055</span>    verify(zkSource, times(1)).incrementNoAuthCount();<a name="line.55"></a>
-<span class="sourceLineNo">056</span>    // OperationTimeout Exception was registered twice.<a name="line.56"></a>
-<span class="sourceLineNo">057</span>    verify(zkSource, times(2)).incrementOperationTimeoutCount();<a name="line.57"></a>
-<span class="sourceLineNo">058</span>    verify(zkSource, times(1)).incrementRuntimeInconsistencyCount();<a name="line.58"></a>
-<span class="sourceLineNo">059</span>    verify(zkSource, times(1)).incrementSessionExpiredCount();<a name="line.59"></a>
-<span class="sourceLineNo">060</span>    // SystemError Exception was registered twice.<a name="line.60"></a>
-<span class="sourceLineNo">061</span>    verify(zkSource, times(2)).incrementSystemErrorCount();<a name="line.61"></a>
-<span class="sourceLineNo">062</span>    verify(zkSource, times(1)).incrementTotalFailedZKCalls();<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>  @Test<a name="line.65"></a>
-<span class="sourceLineNo">066</span>  public void testLatencyHistogramUpdates() {<a name="line.66"></a>
-<span class="sourceLineNo">067</span>    MetricsZooKeeperSource zkSource = mock(MetricsZooKeeperSourceImpl.class);<a name="line.67"></a>
-<span class="sourceLineNo">068</span>    ZKMetrics metricsZK = new ZKMetrics(zkSource);<a name="line.68"></a>
-<span class="sourceLineNo">069</span>    long latency = 100;<a name="line.69"></a>
-<span class="sourceLineNo">070</span><a name="line.70"></a>
-<span class="sourceLineNo">071</span>    metricsZK.registerReadOperationLatency(latency);<a name="line.71"></a>
-<span class="sourceLineNo">072</span>    metricsZK.registerReadOperationLatency(latency);<a name="line.72"></a>
-<span class="sourceLineNo">073</span>    metricsZK.registerWriteOperationLatency(latency);<a name="line.73"></a>
-<span class="sourceLineNo">074</span>    metricsZK.registerSyncOperationLatency(latency);<a name="line.74"></a>
-<span class="sourceLineNo">075</span>    // Read Operation Latency update was registered twice.<a name="line.75"></a>
-<span class="sourceLineNo">076</span>    verify(zkSource, times(2)).recordReadOperationLatency(latency);<a name="line.76"></a>
-<span class="sourceLineNo">077</span>    verify(zkSource, times(1)).recordWriteOperationLatency(latency);<a name="line.77"></a>
-<span class="sourceLineNo">078</span>    verify(zkSource, times(1)).recordSyncOperationLatency(latency);<a name="line.78"></a>
-<span class="sourceLineNo">079</span>  }<a name="line.79"></a>
-<span class="sourceLineNo">080</span>}<a name="line.80"></a>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</pre>
-</div>
-</body>
-</html>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/src-html/org/apache/hadoop/hbase/backup/TestBackupBase.FullTableBackupClientForTest.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/backup/TestBackupBase.FullTableBackupClientForTest.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/backup/TestBackupBase.FullTableBackupClientForTest.html
index c4e20fb..73d508d 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/backup/TestBackupBase.FullTableBackupClientForTest.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/backup/TestBackupBase.FullTableBackupClientForTest.html
@@ -65,456 +65,452 @@
 <span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.client.HTable;<a name="line.57"></a>
 <span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.client.Put;<a name="line.58"></a>
 <span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.client.Table;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.coprocessor.CoprocessorHost;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.security.HadoopSecurityEnabledUserProviderForTesting;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.security.UserProvider;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.security.access.SecureTestUtil;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.snapshot.SnapshotTestingUtils;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.wal.WALFactory;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.junit.AfterClass;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.junit.Before;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.slf4j.Logger;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.slf4j.LoggerFactory;<a name="line.71"></a>
-<span class="sourceLineNo">072</span><a name="line.72"></a>
-<span class="sourceLineNo">073</span>/**<a name="line.73"></a>
-<span class="sourceLineNo">074</span> * This class is only a base for other integration-level backup tests. Do not add tests here.<a name="line.74"></a>
-<span class="sourceLineNo">075</span> * TestBackupSmallTests is where tests that don't require bring machines up/down should go All other<a name="line.75"></a>
-<span class="sourceLineNo">076</span> * tests should have their own classes and extend this one<a name="line.76"></a>
-<span class="sourceLineNo">077</span> */<a name="line.77"></a>
-<span class="sourceLineNo">078</span>public class TestBackupBase {<a name="line.78"></a>
-<span class="sourceLineNo">079</span><a name="line.79"></a>
-<span class="sourceLineNo">080</span>  private static final Logger LOG = LoggerFactory.getLogger(TestBackupBase.class);<a name="line.80"></a>
-<span class="sourceLineNo">081</span><a name="line.81"></a>
-<span class="sourceLineNo">082</span>  protected static HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();<a name="line.82"></a>
-<span class="sourceLineNo">083</span>  protected static HBaseTestingUtility TEST_UTIL2;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>  protected static Configuration conf1 = TEST_UTIL.getConfiguration();<a name="line.84"></a>
-<span class="sourceLineNo">085</span>  protected static Configuration conf2;<a name="line.85"></a>
-<span class="sourceLineNo">086</span><a name="line.86"></a>
-<span class="sourceLineNo">087</span>  protected static TableName table1 = TableName.valueOf("table1");<a name="line.87"></a>
-<span class="sourceLineNo">088</span>  protected static HTableDescriptor table1Desc;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>  protected static TableName table2 = TableName.valueOf("table2");<a name="line.89"></a>
-<span class="sourceLineNo">090</span>  protected static TableName table3 = TableName.valueOf("table3");<a name="line.90"></a>
-<span class="sourceLineNo">091</span>  protected static TableName table4 = TableName.valueOf("table4");<a name="line.91"></a>
-<span class="sourceLineNo">092</span><a name="line.92"></a>
-<span class="sourceLineNo">093</span>  protected static TableName table1_restore = TableName.valueOf("ns1:table1_restore");<a name="line.93"></a>
-<span class="sourceLineNo">094</span>  protected static TableName table2_restore = TableName.valueOf("ns2:table2_restore");<a name="line.94"></a>
-<span class="sourceLineNo">095</span>  protected static TableName table3_restore = TableName.valueOf("ns3:table3_restore");<a name="line.95"></a>
-<span class="sourceLineNo">096</span>  protected static TableName table4_restore = TableName.valueOf("ns4:table4_restore");<a name="line.96"></a>
-<span class="sourceLineNo">097</span><a name="line.97"></a>
-<span class="sourceLineNo">098</span>  protected static final int NB_ROWS_IN_BATCH = 99;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>  protected static final byte[] qualName = Bytes.toBytes("q1");<a name="line.99"></a>
-<span class="sourceLineNo">100</span>  protected static final byte[] famName = Bytes.toBytes("f");<a name="line.100"></a>
-<span class="sourceLineNo">101</span><a name="line.101"></a>
-<span class="sourceLineNo">102</span>  protected static String BACKUP_ROOT_DIR = Path.SEPARATOR +"backupUT";<a name="line.102"></a>
-<span class="sourceLineNo">103</span>  protected static String BACKUP_REMOTE_ROOT_DIR = Path.SEPARATOR + "backupUT";<a name="line.103"></a>
-<span class="sourceLineNo">104</span>  protected static String provider = "defaultProvider";<a name="line.104"></a>
-<span class="sourceLineNo">105</span>  protected static boolean secure = false;<a name="line.105"></a>
-<span class="sourceLineNo">106</span><a name="line.106"></a>
-<span class="sourceLineNo">107</span>  protected static boolean autoRestoreOnFailure = true;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>  protected static boolean setupIsDone = false;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>  protected static boolean useSecondCluster = false;<a name="line.109"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.security.HadoopSecurityEnabledUserProviderForTesting;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.security.UserProvider;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.security.access.SecureTestUtil;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.snapshot.SnapshotTestingUtils;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.wal.WALFactory;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.junit.AfterClass;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.junit.Before;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.slf4j.Logger;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.slf4j.LoggerFactory;<a name="line.70"></a>
+<span class="sourceLineNo">071</span><a name="line.71"></a>
+<span class="sourceLineNo">072</span>/**<a name="line.72"></a>
+<span class="sourceLineNo">073</span> * This class is only a base for other integration-level backup tests. Do not add tests here.<a name="line.73"></a>
+<span class="sourceLineNo">074</span> * TestBackupSmallTests is where tests that don't require bring machines up/down should go All other<a name="line.74"></a>
+<span class="sourceLineNo">075</span> * tests should have their own classes and extend this one<a name="line.75"></a>
+<span class="sourceLineNo">076</span> */<a name="line.76"></a>
+<span class="sourceLineNo">077</span>public class TestBackupBase {<a name="line.77"></a>
+<span class="sourceLineNo">078</span><a name="line.78"></a>
+<span class="sourceLineNo">079</span>  private static final Logger LOG = LoggerFactory.getLogger(TestBackupBase.class);<a name="line.79"></a>
+<span class="sourceLineNo">080</span><a name="line.80"></a>
+<span class="sourceLineNo">081</span>  protected static HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();<a name="line.81"></a>
+<span class="sourceLineNo">082</span>  protected static HBaseTestingUtility TEST_UTIL2;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>  protected static Configuration conf1 = TEST_UTIL.getConfiguration();<a name="line.83"></a>
+<span class="sourceLineNo">084</span>  protected static Configuration conf2;<a name="line.84"></a>
+<span class="sourceLineNo">085</span><a name="line.85"></a>
+<span class="sourceLineNo">086</span>  protected static TableName table1 = TableName.valueOf("table1");<a name="line.86"></a>
+<span class="sourceLineNo">087</span>  protected static HTableDescriptor table1Desc;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>  protected static TableName table2 = TableName.valueOf("table2");<a name="line.88"></a>
+<span class="sourceLineNo">089</span>  protected static TableName table3 = TableName.valueOf("table3");<a name="line.89"></a>
+<span class="sourceLineNo">090</span>  protected static TableName table4 = TableName.valueOf("table4");<a name="line.90"></a>
+<span class="sourceLineNo">091</span><a name="line.91"></a>
+<span class="sourceLineNo">092</span>  protected static TableName table1_restore = TableName.valueOf("ns1:table1_restore");<a name="line.92"></a>
+<span class="sourceLineNo">093</span>  protected static TableName table2_restore = TableName.valueOf("ns2:table2_restore");<a name="line.93"></a>
+<span class="sourceLineNo">094</span>  protected static TableName table3_restore = TableName.valueOf("ns3:table3_restore");<a name="line.94"></a>
+<span class="sourceLineNo">095</span>  protected static TableName table4_restore = TableName.valueOf("ns4:table4_restore");<a name="line.95"></a>
+<span class="sourceLineNo">096</span><a name="line.96"></a>
+<span class="sourceLineNo">097</span>  protected static final int NB_ROWS_IN_BATCH = 99;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>  protected static final byte[] qualName = Bytes.toBytes("q1");<a name="line.98"></a>
+<span class="sourceLineNo">099</span>  protected static final byte[] famName = Bytes.toBytes("f");<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>  protected static String BACKUP_ROOT_DIR = Path.SEPARATOR +"backupUT";<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  protected static String BACKUP_REMOTE_ROOT_DIR = Path.SEPARATOR + "backupUT";<a name="line.102"></a>
+<span class="sourceLineNo">103</span>  protected static String provider = "defaultProvider";<a name="line.103"></a>
+<span class="sourceLineNo">104</span>  protected static boolean secure = false;<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>  protected static boolean autoRestoreOnFailure = true;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>  protected static boolean setupIsDone = false;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>  protected static boolean useSecondCluster = false;<a name="line.108"></a>
+<span class="sourceLineNo">109</span><a name="line.109"></a>
 <span class="sourceLineNo">110</span><a name="line.110"></a>
-<span class="sourceLineNo">111</span><a name="line.111"></a>
-<span class="sourceLineNo">112</span>  static class IncrementalTableBackupClientForTest extends IncrementalTableBackupClient<a name="line.112"></a>
-<span class="sourceLineNo">113</span>  {<a name="line.113"></a>
-<span class="sourceLineNo">114</span><a name="line.114"></a>
-<span class="sourceLineNo">115</span>    public IncrementalTableBackupClientForTest() {<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    }<a name="line.116"></a>
-<span class="sourceLineNo">117</span><a name="line.117"></a>
-<span class="sourceLineNo">118</span>    public IncrementalTableBackupClientForTest(Connection conn,<a name="line.118"></a>
-<span class="sourceLineNo">119</span>        String backupId, BackupRequest request) throws IOException {<a name="line.119"></a>
-<span class="sourceLineNo">120</span>      super(conn, backupId, request);<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    }<a name="line.121"></a>
-<span class="sourceLineNo">122</span><a name="line.122"></a>
-<span class="sourceLineNo">123</span>    @Override<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    public void execute() throws IOException<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    {<a name="line.125"></a>
-<span class="sourceLineNo">126</span>      // case INCREMENTAL_COPY:<a name="line.126"></a>
-<span class="sourceLineNo">127</span>      try {<a name="line.127"></a>
-<span class="sourceLineNo">128</span>        // case PREPARE_INCREMENTAL:<a name="line.128"></a>
-<span class="sourceLineNo">129</span>        failStageIf(Stage.stage_0);<a name="line.129"></a>
-<span class="sourceLineNo">130</span>        beginBackup(backupManager, backupInfo);<a name="line.130"></a>
-<span class="sourceLineNo">131</span><a name="line.131"></a>
-<span class="sourceLineNo">132</span>        failStageIf(Stage.stage_1);<a name="line.132"></a>
-<span class="sourceLineNo">133</span>        backupInfo.setPhase(BackupPhase.PREPARE_INCREMENTAL);<a name="line.133"></a>
-<span class="sourceLineNo">134</span>        LOG.debug("For incremental backup, current table set is "<a name="line.134"></a>
-<span class="sourceLineNo">135</span>            + backupManager.getIncrementalBackupTableSet());<a name="line.135"></a>
-<span class="sourceLineNo">136</span>        newTimestamps = ((IncrementalBackupManager) backupManager).getIncrBackupLogFileMap();<a name="line.136"></a>
-<span class="sourceLineNo">137</span>        // copy out the table and region info files for each table<a name="line.137"></a>
-<span class="sourceLineNo">138</span>        BackupUtils.copyTableRegionInfo(conn, backupInfo, conf);<a name="line.138"></a>
-<span class="sourceLineNo">139</span>        // convert WAL to HFiles and copy them to .tmp under BACKUP_ROOT<a name="line.139"></a>
-<span class="sourceLineNo">140</span>        convertWALsToHFiles();<a name="line.140"></a>
-<span class="sourceLineNo">141</span>        incrementalCopyHFiles(new String[] {getBulkOutputDir().toString()},<a name="line.141"></a>
-<span class="sourceLineNo">142</span>          backupInfo.getBackupRootDir());<a name="line.142"></a>
-<span class="sourceLineNo">143</span>        failStageIf(Stage.stage_2);<a name="line.143"></a>
-<span class="sourceLineNo">144</span>        // Save list of WAL files copied<a name="line.144"></a>
-<span class="sourceLineNo">145</span>        backupManager.recordWALFiles(backupInfo.getIncrBackupFileList());<a name="line.145"></a>
-<span class="sourceLineNo">146</span><a name="line.146"></a>
-<span class="sourceLineNo">147</span>        // case INCR_BACKUP_COMPLETE:<a name="line.147"></a>
-<span class="sourceLineNo">148</span>        // set overall backup status: complete. Here we make sure to complete the backup.<a name="line.148"></a>
-<span class="sourceLineNo">149</span>        // After this checkpoint, even if entering cancel process, will let the backup finished<a name="line.149"></a>
-<span class="sourceLineNo">150</span>        // Set the previousTimestampMap which is before this current log roll to the manifest.<a name="line.150"></a>
-<span class="sourceLineNo">151</span>        HashMap&lt;TableName, HashMap&lt;String, Long&gt;&gt; previousTimestampMap =<a name="line.151"></a>
-<span class="sourceLineNo">152</span>            backupManager.readLogTimestampMap();<a name="line.152"></a>
-<span class="sourceLineNo">153</span>        backupInfo.setIncrTimestampMap(previousTimestampMap);<a name="line.153"></a>
-<span class="sourceLineNo">154</span><a name="line.154"></a>
-<span class="sourceLineNo">155</span>        // The table list in backupInfo is good for both full backup and incremental backup.<a name="line.155"></a>
-<span class="sourceLineNo">156</span>        // For incremental backup, it contains the incremental backup table set.<a name="line.156"></a>
-<span class="sourceLineNo">157</span>        backupManager.writeRegionServerLogTimestamp(backupInfo.getTables(), newTimestamps);<a name="line.157"></a>
-<span class="sourceLineNo">158</span>        failStageIf(Stage.stage_3);<a name="line.158"></a>
-<span class="sourceLineNo">159</span><a name="line.159"></a>
-<span class="sourceLineNo">160</span>        HashMap&lt;TableName, HashMap&lt;String, Long&gt;&gt; newTableSetTimestampMap =<a name="line.160"></a>
-<span class="sourceLineNo">161</span>            backupManager.readLogTimestampMap();<a name="line.161"></a>
-<span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span>        Long newStartCode =<a name="line.163"></a>
-<span class="sourceLineNo">164</span>            BackupUtils.getMinValue(BackupUtils.getRSLogTimestampMins(newTableSetTimestampMap));<a name="line.164"></a>
-<span class="sourceLineNo">165</span>        backupManager.writeBackupStartCode(newStartCode);<a name="line.165"></a>
-<span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span>        handleBulkLoad(backupInfo.getTableNames());<a name="line.167"></a>
-<span class="sourceLineNo">168</span>        failStageIf(Stage.stage_4);<a name="line.168"></a>
-<span class="sourceLineNo">169</span><a name="line.169"></a>
-<span class="sourceLineNo">170</span>        // backup complete<a name="line.170"></a>
-<span class="sourceLineNo">171</span>        completeBackup(conn, backupInfo, backupManager, BackupType.INCREMENTAL, conf);<a name="line.171"></a>
-<span class="sourceLineNo">172</span><a name="line.172"></a>
-<span class="sourceLineNo">173</span>      } catch (Exception e) {<a name="line.173"></a>
-<span class="sourceLineNo">174</span>        failBackup(conn, backupInfo, backupManager, e, "Unexpected Exception : ",<a name="line.174"></a>
-<span class="sourceLineNo">175</span>          BackupType.INCREMENTAL, conf);<a name="line.175"></a>
-<span class="sourceLineNo">176</span>        throw new IOException(e);<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>
-<span class="sourceLineNo">179</span>    }<a name="line.179"></a>
-<span class="sourceLineNo">180</span>  }<a name="line.180"></a>
-<span class="sourceLineNo">181</span><a name="line.181"></a>
-<span class="sourceLineNo">182</span>  static class FullTableBackupClientForTest extends FullTableBackupClient<a name="line.182"></a>
-<span class="sourceLineNo">183</span>  {<a name="line.183"></a>
+<span class="sourceLineNo">111</span>  static class IncrementalTableBackupClientForTest extends IncrementalTableBackupClient<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>    public IncrementalTableBackupClientForTest() {<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    }<a name="line.115"></a>
+<span class="sourceLineNo">116</span><a name="line.116"></a>
+<span class="sourceLineNo">117</span>    public IncrementalTableBackupClientForTest(Connection conn,<a name="line.117"></a>
+<span class="sourceLineNo">118</span>        String backupId, BackupRequest request) throws IOException {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>      super(conn, backupId, request);<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    }<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>    @Override<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    public void execute() throws IOException<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>      // case INCREMENTAL_COPY:<a name="line.125"></a>
+<span class="sourceLineNo">126</span>      try {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>        // case PREPARE_INCREMENTAL:<a name="line.127"></a>
+<span class="sourceLineNo">128</span>        failStageIf(Stage.stage_0);<a name="line.128"></a>
+<span class="sourceLineNo">129</span>        beginBackup(backupManager, backupInfo);<a name="line.129"></a>
+<span class="sourceLineNo">130</span><a name="line.130"></a>
+<span class="sourceLineNo">131</span>        failStageIf(Stage.stage_1);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>        backupInfo.setPhase(BackupPhase.PREPARE_INCREMENTAL);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>        LOG.debug("For incremental backup, current table set is "<a name="line.133"></a>
+<span class="sourceLineNo">134</span>            + backupManager.getIncrementalBackupTableSet());<a name="line.134"></a>
+<span class="sourceLineNo">135</span>        newTimestamps = ((IncrementalBackupManager) backupManager).getIncrBackupLogFileMap();<a name="line.135"></a>
+<span class="sourceLineNo">136</span>        // copy out the table and region info files for each table<a name="line.136"></a>
+<span class="sourceLineNo">137</span>        BackupUtils.copyTableRegionInfo(conn, backupInfo, conf);<a name="line.137"></a>
+<span class="sourceLineNo">138</span>        // convert WAL to HFiles and copy them to .tmp under BACKUP_ROOT<a name="line.138"></a>
+<span class="sourceLineNo">139</span>        convertWALsToHFiles();<a name="line.139"></a>
+<span class="sourceLineNo">140</span>        incrementalCopyHFiles(new String[] {getBulkOutputDir().toString()},<a name="line.140"></a>
+<span class="sourceLineNo">141</span>          backupInfo.getBackupRootDir());<a name="line.141"></a>
+<span class="sourceLineNo">142</span>        failStageIf(Stage.stage_2);<a name="line.142"></a>
+<span class="sourceLineNo">143</span>        // Save list of WAL files copied<a name="line.143"></a>
+<span class="sourceLineNo">144</span>        backupManager.recordWALFiles(backupInfo.getIncrBackupFileList());<a name="line.144"></a>
+<span class="sourceLineNo">145</span><a name="line.145"></a>
+<span class="sourceLineNo">146</span>        // case INCR_BACKUP_COMPLETE:<a name="line.146"></a>
+<span class="sourceLineNo">147</span>        // set overall backup status: complete. Here we make sure to complete the backup.<a name="line.147"></a>
+<span class="sourceLineNo">148</span>        // After this checkpoint, even if entering cancel process, will let the backup finished<a name="line.148"></a>
+<span class="sourceLineNo">149</span>        // Set the previousTimestampMap which is before this current log roll to the manifest.<a name="line.149"></a>
+<span class="sourceLineNo">150</span>        HashMap&lt;TableName, HashMap&lt;String, Long&gt;&gt; previousTimestampMap =<a name="line.150"></a>
+<span class="sourceLineNo">151</span>            backupManager.readLogTimestampMap();<a name="line.151"></a>
+<span class="sourceLineNo">152</span>        backupInfo.setIncrTimestampMap(previousTimestampMap);<a name="line.152"></a>
+<span class="sourceLineNo">153</span><a name="line.153"></a>
+<span class="sourceLineNo">154</span>        // The table list in backupInfo is good for both full backup and incremental backup.<a name="line.154"></a>
+<span class="sourceLineNo">155</span>        // For incremental backup, it contains the incremental backup table set.<a name="line.155"></a>
+<span class="sourceLineNo">156</span>        backupManager.writeRegionServerLogTimestamp(backupInfo.getTables(), newTimestamps);<a name="line.156"></a>
+<span class="sourceLineNo">157</span>        failStageIf(Stage.stage_3);<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>        HashMap&lt;TableName, HashMap&lt;String, Long&gt;&gt; newTableSetTimestampMap =<a name="line.159"></a>
+<span class="sourceLineNo">160</span>            backupManager.readLogTimestampMap();<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>        Long newStartCode =<a name="line.162"></a>
+<span class="sourceLineNo">163</span>            BackupUtils.getMinValue(BackupUtils.getRSLogTimestampMins(newTableSetTimestampMap));<a name="line.163"></a>
+<span class="sourceLineNo">164</span>        backupManager.writeBackupStartCode(newStartCode);<a name="line.164"></a>
+<span class="sourceLineNo">165</span><a name="line.165"></a>
+<span class="sourceLineNo">166</span>        handleBulkLoad(backupInfo.getTableNames());<a name="line.166"></a>
+<span class="sourceLineNo">167</span>        failStageIf(Stage.stage_4);<a name="line.167"></a>
+<span class="sourceLineNo">168</span><a name="line.168"></a>
+<span class="sourceLineNo">169</span>        // backup complete<a name="line.169"></a>
+<span class="sourceLineNo">170</span>        completeBackup(conn, backupInfo, backupManager, BackupType.INCREMENTAL, conf);<a name="line.170"></a>
+<span class="sourceLineNo">171</span><a name="line.171"></a>
+<span class="sourceLineNo">172</span>      } catch (Exception e) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>        failBackup(conn, backupInfo, backupManager, e, "Unexpected Exception : ",<a name="line.173"></a>
+<span class="sourceLineNo">174</span>          BackupType.INCREMENTAL, conf);<a name="line.174"></a>
+<span class="sourceLineNo">175</span>        throw new IOException(e);<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>    }<a name="line.178"></a>
+<span class="sourceLineNo">179</span>  }<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span>  static class FullTableBackupClientForTest extends FullTableBackupClient<a name="line.181"></a>
+<span class="sourceLineNo">182</span>  {<a name="line.182"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
 <span class="sourceLineNo">184</span><a name="line.184"></a>
-<span class="sourceLineNo">185</span><a name="line.185"></a>
-<span class="sourceLineNo">186</span>    public FullTableBackupClientForTest() {<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    }<a name="line.187"></a>
-<span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>    public FullTableBackupClientForTest(Connection conn, String backupId, BackupRequest request)<a name="line.189"></a>
-<span class="sourceLineNo">190</span>        throws IOException {<a name="line.190"></a>
-<span class="sourceLineNo">191</span>      super(conn, backupId, request);<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    }<a name="line.192"></a>
-<span class="sourceLineNo">193</span><a name="line.193"></a>
-<span class="sourceLineNo">194</span>    @Override<a name="line.194"></a>
-<span class="sourceLineNo">195</span>    public void execute() throws IOException<a name="line.195"></a>
-<span class="sourceLineNo">196</span>    {<a name="line.196"></a>
-<span class="sourceLineNo">197</span>      // Get the stage ID to fail on<a name="line.197"></a>
-<span class="sourceLineNo">198</span>      try (Admin admin = conn.getAdmin()) {<a name="line.198"></a>
-<span class="sourceLineNo">199</span>        // Begin BACKUP<a name="line.199"></a>
-<span class="sourceLineNo">200</span>        beginBackup(backupManager, backupInfo);<a name="line.200"></a>
-<span class="sourceLineNo">201</span>        failStageIf(Stage.stage_0);<a name="line.201"></a>
-<span class="sourceLineNo">202</span>        String savedStartCode = null;<a name="line.202"></a>
-<span class="sourceLineNo">203</span>        boolean firstBackup = false;<a name="line.203"></a>
-<span class="sourceLineNo">204</span>        // do snapshot for full table backup<a name="line.204"></a>
-<span class="sourceLineNo">205</span>        savedStartCode = backupManager.readBackupStartCode();<a name="line.205"></a>
-<span class="sourceLineNo">206</span>        firstBackup = savedStartCode == null || Long.parseLong(savedStartCode) == 0L;<a name="line.206"></a>
-<span class="sourceLineNo">207</span>        if (firstBackup) {<a name="line.207"></a>
-<span class="sourceLineNo">208</span>          // This is our first backup. Let's put some marker to system table so that we can hold the logs<a name="line.208"></a>
-<span class="sourceLineNo">209</span>          // while we do the backup.<a name="line.209"></a>
-<span class="sourceLineNo">210</span>          backupManager.writeBackupStartCode(0L);<a name="line.210"></a>
-<span class="sourceLineNo">211</span>        }<a name="line.211"></a>
-<span class="sourceLineNo">212</span>        failStageIf(Stage.stage_1);<a name="line.212"></a>
-<span class="sourceLineNo">213</span>        // We roll log here before we do the snapshot. It is possible there is duplicate data<a name="line.213"></a>
-<span class="sourceLineNo">214</span>        // in the log that is already in the snapshot. But if we do it after the snapshot, we<a name="line.214"></a>
-<span class="sourceLineNo">215</span>        // could have data loss.<a name="line.215"></a>
-<span class="sourceLineNo">216</span>        // A better approach is to do the roll log on each RS in the same global procedure as<a name="line.216"></a>
-<span class="sourceLineNo">217</span>        // the snapshot.<a name="line.217"></a>
-<span class="sourceLineNo">218</span>        LOG.info("Execute roll log procedure for full backup ...");<a name="line.218"></a>
-<span class="sourceLineNo">219</span><a name="line.219"></a>
-<span class="sourceLineNo">220</span>        Map&lt;String, String&gt; props = new HashMap&lt;String, String&gt;();<a name="line.220"></a>
-<span class="sourceLineNo">221</span>        props.put("backupRoot", backupInfo.getBackupRootDir());<a name="line.221"></a>
-<span class="sourceLineNo">222</span>        admin.execProcedure(LogRollMasterProcedureManager.ROLLLOG_PROCEDURE_SIGNATURE,<a name="line.222"></a>
-<span class="sourceLineNo">223</span>          LogRollMasterProcedureManager.ROLLLOG_PROCEDURE_NAME, props);<a name="line.223"></a>
-<span class="sourceLineNo">224</span>        failStageIf(Stage.stage_2);<a name="line.224"></a>
-<span class="sourceLineNo">225</span>        newTimestamps = backupManager.readRegionServerLastLogRollResult();<a name="line.225"></a>
-<span class="sourceLineNo">226</span>        if (firstBackup) {<a name="line.226"></a>
-<span class="sourceLineNo">227</span>          // Updates registered log files<a name="line.227"></a>
-<span class="sourceLineNo">228</span>          // We record ALL old WAL files as registered, because<a name="line.228"></a>
-<span class="sourceLineNo">229</span>          // this is a first full backup in the system and these<a name="line.229"></a>
-<span class="sourceLineNo">230</span>          // files are not needed for next incremental backup<a name="line.230"></a>
-<span class="sourceLineNo">231</span>          List&lt;String&gt; logFiles = BackupUtils.getWALFilesOlderThan(conf, newTimestamps);<a name="line.231"></a>
-<span class="sourceLineNo">232</span>          backupManager.recordWALFiles(logFiles);<a name="line.232"></a>
-<span class="sourceLineNo">233</span>        }<a name="line.233"></a>
-<span class="sourceLineNo">234</span><a name="line.234"></a>
-<span class="sourceLineNo">235</span>        // SNAPSHOT_TABLES:<a name="line.235"></a>
-<span class="sourceLineNo">236</span>        backupInfo.setPhase(BackupPhase.SNAPSHOT);<a name="line.236"></a>
-<span class="sourceLineNo">237</span>        for (TableName tableName : tableList) {<a name="line.237"></a>
-<span class="sourceLineNo">238</span>          String snapshotName =<a name="line.238"></a>
-<span class="sourceLineNo">239</span>              "snapshot_" + Long.toString(EnvironmentEdgeManager.currentTime()) + "_"<a name="line.239"></a>
-<span class="sourceLineNo">240</span>                  + tableName.getNamespaceAsString() + "_" + tableName.getQualifierAsString();<a name="line.240"></a>
-<span class="sourceLineNo">241</span><a name="line.241"></a>
-<span class="sourceLineNo">242</span>          snapshotTable(admin, tableName, snapshotName);<a name="line.242"></a>
-<span class="sourceLineNo">243</span>          backupInfo.setSnapshotName(tableName, snapshotName);<a name="line.243"></a>
-<span class="sourceLineNo">244</span>        }<a name="line.244"></a>
-<span class="sourceLineNo">245</span>        failStageIf(Stage.stage_3);<a name="line.245"></a>
-<span class="sourceLineNo">246</span>        // SNAPSHOT_COPY:<a name="line.246"></a>
-<span class="sourceLineNo">247</span>        // do snapshot copy<a name="line.247"></a>
-<span class="sourceLineNo">248</span>        LOG.debug("snapshot copy for " + backupId);<a name="line.248"></a>
-<span class="sourceLineNo">249</span>        snapshotCopy(backupInfo);<a name="line.249"></a>
-<span class="sourceLineNo">250</span>        // Updates incremental backup table set<a name="line.250"></a>
-<span class="sourceLineNo">251</span>        backupManager.addIncrementalBackupTableSet(backupInfo.getTables());<a name="line.251"></a>
-<span class="sourceLineNo">252</span><a name="line.252"></a>
-<span class="sourceLineNo">253</span>        // BACKUP_COMPLETE:<a name="line.253"></a>
-<span class="sourceLineNo">254</span>        // set overall backup status: complete. Here we make sure to complete the backup.<a name="line.254"></a>
-<span class="sourceLineNo">255</span>        // After this checkpoint, even if entering cancel process, will let the backup finished<a name="line.255"></a>
-<span class="sourceLineNo">256</span>        backupInfo.setState(BackupState.COMPLETE);<a name="line.256"></a>
-<span class="sourceLineNo">257</span>        // The table list in backupInfo is good for both full backup and incremental backup.<a name="line.257"></a>
-<span class="sourceLineNo">258</span>        // For incremental backup, it contains the incremental backup table set.<a name="line.258"></a>
-<span class="sourceLineNo">259</span>        backupManager.writeRegionServerLogTimestamp(backupInfo.getTables(), newTimestamps);<a name="line.259"></a>
-<span class="sourceLineNo">260</span><a name="line.260"></a>
-<span class="sourceLineNo">261</span>        HashMap&lt;TableName, HashMap&lt;String, Long&gt;&gt; newTableSetTimestampMap =<a name="line.261"></a>
-<span class="sourceLineNo">262</span>            backupManager.readLogTimestampMap();<a name="line.262"></a>
-<span class="sourceLineNo">263</span><a name="line.263"></a>
-<span class="sourceLineNo">264</span>        Long newStartCode =<a name="line.264"></a>
-<span class="sourceLineNo">265</span>            BackupUtils.getMinValue(BackupUtils<a name="line.265"></a>
-<span class="sourceLineNo">266</span>                .getRSLogTimestampMins(newTableSetTimestampMap));<a name="line.266"></a>
-<span class="sourceLineNo">267</span>        backupManager.writeBackupStartCode(newStartCode);<a name="line.267"></a>
-<span class="sourceLineNo">268</span>        failStageIf(Stage.stage_4);<a name="line.268"></a>
-<span class="sourceLineNo">269</span>        // backup complete<a name="line.269"></a>
-<span class="sourceLineNo">270</span>        completeBackup(conn, backupInfo, backupManager, BackupType.FULL, conf);<a name="line.270"></a>
-<span class="sourceLineNo">271</span><a name="line.271"></a>
-<span class="sourceLineNo">272</span>      } catch (Exception e) {<a name="line.272"></a>
-<span class="sourceLineNo">273</span><a name="line.273"></a>
-<span class="sourceLineNo">274</span>        if(autoRestoreOnFailure) {<a name="line.274"></a>
-<span class="sourceLineNo">275</span>          failBackup(conn, backupInfo, backupManager, e, "Unexpected BackupException : ",<a name="line.275"></a>
-<span class="sourceLineNo">276</span>            BackupType.FULL, conf);<a name="line.276"></a>
-<span class="sourceLineNo">277</span>        }<a name="line.277"></a>
-<span class="sourceLineNo">278</span>        throw new IOException(e);<a name="line.278"></a>
-<span class="sourceLineNo">279</span>      }<a name="line.279"></a>
-<span class="sourceLineNo">280</span>    }<a name="line.280"></a>
-<span class="sourceLineNo">281</span><a name="line.281"></a>
-<span class="sourceLineNo">282</span>  }<a name="line.282"></a>
+<span class="sourceLineNo">185</span>    public FullTableBackupClientForTest() {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>    }<a name="line.186"></a>
+<span class="sourceLineNo">187</span><a name="line.187"></a>
+<span class="sourceLineNo">188</span>    public FullTableBackupClientForTest(Connection conn, String backupId, BackupRequest request)<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        throws IOException {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>      super(conn, backupId, request);<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    }<a name="line.191"></a>
+<span class="sourceLineNo">192</span><a name="line.192"></a>
+<span class="sourceLineNo">193</span>    @Override<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    public void execute() throws IOException<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>      // Get the stage ID to fail on<a name="line.196"></a>
+<span class="sourceLineNo">197</span>      try (Admin admin = conn.getAdmin()) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>        // Begin BACKUP<a name="line.198"></a>
+<span class="sourceLineNo">199</span>        beginBackup(backupManager, backupInfo);<a name="line.199"></a>
+<span class="sourceLineNo">200</span>        failStageIf(Stage.stage_0);<a name="line.200"></a>
+<span class="sourceLineNo">201</span>        String savedStartCode = null;<a name="line.201"></a>
+<span class="sourceLineNo">202</span>        boolean firstBackup = false;<a name="line.202"></a>
+<span class="sourceLineNo">203</span>        // do snapshot for full table backup<a name="line.203"></a>
+<span class="sourceLineNo">204</span>        savedStartCode = backupManager.readBackupStartCode();<a name="line.204"></a>
+<span class="sourceLineNo">205</span>        firstBackup = savedStartCode == null || Long.parseLong(savedStartCode) == 0L;<a name="line.205"></a>
+<span class="sourceLineNo">206</span>        if (firstBackup) {<a name="line.206"></a>
+<span class="sourceLineNo">207</span>          // This is our first backup. Let's put some marker to system table so that we can hold the logs<a name="line.207"></a>
+<span class="sourceLineNo">208</span>          // while we do the backup.<a name="line.208"></a>
+<span class="sourceLineNo">209</span>          backupManager.writeBackupStartCode(0L);<a name="line.209"></a>
+<span class="sourceLineNo">210</span>        }<a name="line.210"></a>
+<span class="sourceLineNo">211</span>        failStageIf(Stage.stage_1);<a name="line.211"></a>
+<span class="sourceLineNo">212</span>        // We roll log here before we do the snapshot. It is possible there is duplicate data<a name="line.212"></a>
+<span class="sourceLineNo">213</span>        // in the log that is already in the snapshot. But if we do it after the snapshot, we<a name="line.213"></a>
+<span class="sourceLineNo">214</span>        // could have data loss.<a name="line.214"></a>
+<span class="sourceLineNo">215</span>        // A better approach is to do the roll log on each RS in the same global procedure as<a name="line.215"></a>
+<span class="sourceLineNo">216</span>        // the snapshot.<a name="line.216"></a>
+<span class="sourceLineNo">217</span>        LOG.info("Execute roll log procedure for full backup ...");<a name="line.217"></a>
+<span class="sourceLineNo">218</span><a name="line.218"></a>
+<span class="sourceLineNo">219</span>        Map&lt;String, String&gt; props = new HashMap&lt;String, String&gt;();<a name="line.219"></a>
+<span class="sourceLineNo">220</span>        props.put("backupRoot", backupInfo.getBackupRootDir());<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        admin.execProcedure(LogRollMasterProcedureManager.ROLLLOG_PROCEDURE_SIGNATURE,<a name="line.221"></a>
+<span class="sourceLineNo">222</span>          LogRollMasterProcedureManager.ROLLLOG_PROCEDURE_NAME, props);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>        failStageIf(Stage.stage_2);<a name="line.223"></a>
+<span class="sourceLineNo">224</span>        newTimestamps = backupManager.readRegionServerLastLogRollResult();<a name="line.224"></a>
+<span class="sourceLineNo">225</span>        if (firstBackup) {<a name="line.225"></a>
+<span class="sourceLineNo">226</span>          // Updates registered log files<a name="line.226"></a>
+<span class="sourceLineNo">227</span>          // We record ALL old WAL files as registered, because<a name="line.227"></a>
+<span class="sourceLineNo">228</span>          // this is a first full backup in the system and these<a name="line.228"></a>
+<span class="sourceLineNo">229</span>          // files are not needed for next incremental backup<a name="line.229"></a>
+<span class="sourceLineNo">230</span>          List&lt;String&gt; logFiles = BackupUtils.getWALFilesOlderThan(conf, newTimestamps);<a name="line.230"></a>
+<span class="sourceLineNo">231</span>          backupManager.recordWALFiles(logFiles);<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>        // SNAPSHOT_TABLES:<a name="line.234"></a>
+<span class="sourceLineNo">235</span>        backupInfo.setPhase(BackupPhase.SNAPSHOT);<a name="line.235"></a>
+<span class="sourceLineNo">236</span>        for (TableName tableName : tableList) {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>          String snapshotName =<a name="line.237"></a>
+<span class="sourceLineNo">238</span>              "snapshot_" + Long.toString(EnvironmentEdgeManager.currentTime()) + "_"<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                  + tableName.getNamespaceAsString() + "_" + tableName.getQualifierAsString();<a name="line.239"></a>
+<span class="sourceLineNo">240</span><a name="line.240"></a>
+<span class="sourceLineNo">241</span>          snapshotTable(admin, tableName, snapshotName);<a name="line.241"></a>
+<span class="sourceLineNo">242</span>          backupInfo.setSnapshotName(tableName, snapshotName);<a name="line.242"></a>
+<span class="sourceLineNo">243</span>        }<a name="line.243"></a>
+<span class="sourceLineNo">244</span>        failStageIf(Stage.stage_3);<a name="line.244"></a>
+<span class="sourceLineNo">245</span>        // SNAPSHOT_COPY:<a name="line.245"></a>
+<span class="sourceLineNo">246</span>        // do snapshot copy<a name="line.246"></a>
+<span class="sourceLineNo">247</span>        LOG.debug("snapshot copy for " + backupId);<a name="line.247"></a>
+<span class="sourceLineNo">248</span>        snapshotCopy(backupInfo);<a name="line.248"></a>
+<span class="sourceLineNo">249</span>        // Updates incremental backup table set<a name="line.249"></a>
+<span class="sourceLineNo">250</span>        backupManager.addIncrementalBackupTableSet(backupInfo.getTables());<a name="line.250"></a>
+<span class="sourceLineNo">251</span><a name="line.251"></a>
+<span class="sourceLineNo">252</span>        // BACKUP_COMPLETE:<a name="line.252"></a>
+<span class="sourceLineNo">253</span>        // set overall backup status: complete. Here we make sure to complete the backup.<a name="line.253"></a>
+<span class="sourceLineNo">254</span>        // After this checkpoint, even if entering cancel process, will let the backup finished<a name="line.254"></a>
+<span class="sourceLineNo">255</span>        backupInfo.setState(BackupState.COMPLETE);<a name="line.255"></a>
+<span class="sourceLineNo">256</span>        // The table list in backupInfo is good for both full backup and incremental backup.<a name="line.256"></a>
+<span class="sourceLineNo">257</span>        // For incremental backup, it contains the incremental backup table set.<a name="line.257"></a>
+<span class="sourceLineNo">258</span>        backupManager.writeRegionServerLogTimestamp(backupInfo.getTables(), newTimestamps);<a name="line.258"></a>
+<span class="sourceLineNo">259</span><a name="line.259"></a>
+<span class="sourceLineNo">260</span>        HashMap&lt;TableName, HashMap&lt;String, Long&gt;&gt; newTableSetTimestampMap =<a name="line.260"></a>
+<span class="sourceLineNo">261</span>            backupManager.readLogTimestampMap();<a name="line.261"></a>
+<span class="sourceLineNo">262</span><a name="line.262"></a>
+<span class="sourceLineNo">263</span>        Long newStartCode =<a name="line.263"></a>
+<span class="sourceLineNo">264</span>            BackupUtils.getMinValue(BackupUtils<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                .getRSLogTimestampMins(newTableSetTimestampMap));<a name="line.265"></a>
+<span class="sourceLineNo">266</span>        backupManager.writeBackupStartCode(newStartCode);<a name="line.266"></a>
+<span class="sourceLineNo">267</span>        failStageIf(Stage.stage_4);<a name="line.267"></a>
+<span class="sourceLineNo">268</span>        // backup complete<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        completeBackup(conn, backupInfo, backupManager, BackupType.FULL, conf);<a name="line.269"></a>
+<span class="sourceLineNo">270</span><a name="line.270"></a>
+<span class="sourceLineNo">271</span>      } catch (Exception e) {<a name="line.271"></a>
+<span class="sourceLineNo">272</span><a name="line.272"></a>
+<span class="sourceLineNo">273</span>        if(autoRestoreOnFailure) {<a name="line.273"></a>
+<span class="sourceLineNo">274</span>          failBackup(conn, backupInfo, backupManager, e, "Unexpected BackupException : ",<a name="line.274"></a>
+<span class="sourceLineNo">275</span>            BackupType.FULL, conf);<a name="line.275"></a>
+<span class="sourceLineNo">276</span>        }<a name="line.276"></a>
+<span class="sourceLineNo">277</span>        throw new IOException(e);<a name="line.277"></a>
+<span class="sourceLineNo">278</span>      }<a name="line.278"></a>
+<span class="sourceLineNo">279</span>    }<a name="line.279"></a>
+<span class="sourceLineNo">280</span><a name="line.280"></a>
+<span class="sourceLineNo">281</span>  }<a name="line.281"></a>
+<span class="sourceLineNo">282</span><a name="line.282"></a>
 <span class="sourceLineNo">283</span><a name="line.283"></a>
-<span class="sourceLineNo">284</span><a name="line.284"></a>
-<span class="sourceLineNo">285</span>  /**<a name="line.285"></a>
-<span class="sourceLineNo">286</span>   * @throws java.lang.Exception<a name="line.286"></a>
-<span class="sourceLineNo">287</span>   */<a name="line.287"></a>
-<span class="sourceLineNo">288</span>  @Before<a name="line.288"></a>
-<span class="sourceLineNo">289</span>  public void setUp() throws Exception {<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    if (setupIsDone) {<a name="line.290"></a>
-<span class="sourceLineNo">291</span>      return;<a name="line.291"></a>
-<span class="sourceLineNo">292</span>    }<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    if (secure) {<a name="line.293"></a>
-<span class="sourceLineNo">294</span>      // set the always on security provider<a name="line.294"></a>
-<span class="sourceLineNo">295</span>      UserProvider.setUserProviderForTesting(TEST_UTIL.getConfiguration(),<a name="line.295"></a>
-<span class="sourceLineNo">296</span>          HadoopSecurityEnabledUserProviderForTesting.class);<a name="line.296"></a>
-<span class="sourceLineNo">297</span>      // setup configuration<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      SecureTestUtil.enableSecurity(TEST_UTIL.getConfiguration());<a name="line.298"></a>
-<span class="sourceLineNo">299</span>    }<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    String coproc = conf1.get(CoprocessorHost.REGION_COPROCESSOR_CONF_KEY);<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    conf1.set(CoprocessorHost.REGION_COPROCESSOR_CONF_KEY, (coproc == null ? "" : coproc + ",") +<a name="line.301"></a>
-<span class="sourceLineNo">302</span>        BackupObserver.class.getName());<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    conf1.setBoolean(BackupRestoreConstants.BACKUP_ENABLE_KEY, true);<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    BackupManager.decorateMasterConfiguration(conf1);<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    BackupManager.decorateRegionServerConfiguration(conf1);<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    conf1.set(HConstants.ZOOKEEPER_ZNODE_PARENT, "/1");<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    // Set MultiWAL (with 2 default WAL files per RS)<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    conf1.set(WALFactory.WAL_PROVIDER, provider);<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    TEST_UTIL.startMiniCluster();<a name="line.309"></a>
-<span class="sourceLineNo">310</span><a name="line.310"></a>
-<span class="sourceLineNo">311</span>    if (useSecondCluster) {<a name="line.311"></a>
-<span class="sourceLineNo">312</span>      conf2 = HBaseConfiguration.create(conf1);<a name="line.312"></a>
-<span class="sourceLineNo">313</span>      conf2.set(HConstants.ZOOKEEPER_ZNODE_PARENT, "/2");<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      TEST_UTIL2 = new HBaseTestingUtility(conf2);<a name="line.314"></a>
-<span class="sourceLineNo">315</span>      TEST_UTIL2.setZkCluster(TEST_UTIL.getZkCluster());<a name="line.315"></a>
-<span class="sourceLineNo">316</span>      TEST_UTIL2.startMiniCluster();<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    }<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    conf1 = TEST_UTIL.getConfiguration();<a name="line.318"></a>
-<span class="sourceLineNo">319</span><a name="line.319"></a>
-<span class="sourceLineNo">320</span>    TEST_UTIL.startMiniMapReduceCluster();<a name="line.320"></a>
-<span class="sourceLineNo">321</span>    BACKUP_ROOT_DIR =<a name="line.321"></a>
-<span class="sourceLineNo">322</span>        new Path ( new Path(TEST_UTIL.getConfiguration().get("fs.defaultFS")),<a name="line.322"></a>
-<span class="sourceLineNo">323</span>          BACKUP_ROOT_DIR).toString();<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    LOG.info("ROOTDIR " + BACKUP_ROOT_DIR);<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    if (useSecondCluster) {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>      BACKUP_REMOTE_ROOT_DIR =<a name="line.326"></a>
-<span class="sourceLineNo">327</span>          new Path ( new Path(TEST_UTIL2.getConfiguration().get("fs.defaultFS"))<a name="line.327"></a>
-<span class="sourceLineNo">328</span>          + BACKUP_REMOTE_ROOT_DIR).toString();<a name="line.328"></a>
-<span class="sourceLineNo">329</span>      LOG.info("REMOTE ROOTDIR " + BACKUP_REMOTE_ROOT_DIR);<a name="line.329"></a>
-<span class="sourceLineNo">330</span>    }<a name="line.330"></a>
-<span class="sourceLineNo">331</span>    createTables();<a name="line.331"></a>
-<span class="sourceLineNo">332</span>    populateFromMasterConfig(TEST_UTIL.getHBaseCluster().getMaster().getConfiguration(), conf1);<a name="line.332"></a>
-<span class="sourceLineNo">333</span>    setupIsDone = true;<a name="line.333"></a>
-<span class="sourceLineNo">334</span>  }<a name="line.334"></a>
-<span class="sourceLineNo">335</span><a name="line.335"></a>
-<span class="sourceLineNo">336</span>  private static void populateFromMasterConfig(Configuration masterConf, Configuration conf) {<a name="line.336"></a>
-<span class="sourceLineNo">337</span>    Iterator&lt;Entry&lt;String, String&gt;&gt; it = masterConf.iterator();<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    while (it.hasNext()) {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>      Entry&lt;String, String&gt; e = it.next();<a name="line.339"></a>
-<span class="sourceLineNo">340</span>      conf.set(e.getKey(), e.getValue());<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    }<a name="line.341"></a>
-<span class="sourceLineNo">342</span>  }<a name="line.342"></a>
-<span class="sourceLineNo">343</span><a name="line.343"></a>
-<span class="sourceLineNo">344</span>  /**<a name="line.344"></a>
-<span class="sourceLineNo">345</span>   * @throws java.lang.Exception<a name="line.345"></a>
-<span class="sourceLineNo">346</span>   */<a name="line.346"></a>
-<span class="sourceLineNo">347</span>  @AfterClass<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  public static void tearDown() throws Exception {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    try{<a name="line.349"></a>
-<span class="sourceLineNo">350</span>      SnapshotTestingUtils.deleteAllSnapshots(TEST_UTIL.getHBaseAdmin());<a name="line.350"></a>
-<span class="sourceLineNo">351</span>    } catch (Exception e) {<a name="line.351"></a>
+<span class="sourceLineNo">284</span>  /**<a name="line.284"></a>
+<span class="sourceLineNo">285</span>   * @throws java.lang.Exception<a name="line.285"></a>
+<span class="sourceLineNo">286</span>   */<a name="line.286"></a>
+<span class="sourceLineNo">287</span>  @Before<a name="line.287"></a>
+<span class="sourceLineNo">288</span>  public void setUp() throws Exception {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>    if (setupIsDone) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      return;<a name="line.290"></a>
+<span class="sourceLineNo">291</span>    }<a name="line.291"></a>
+<span class="sourceLineNo">292</span>    if (secure) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>      // set the always on security provider<a name="line.293"></a>
+<span class="sourceLineNo">294</span>      UserProvider.setUserProviderForTesting(TEST_UTIL.getConfiguration(),<a name="line.294"></a>
+<span class="sourceLineNo">295</span>          HadoopSecurityEnabledUserProviderForTesting.class);<a name="line.295"></a>
+<span class="sourceLineNo">296</span>      // setup configuration<a name="line.296"></a>
+<span class="sourceLineNo">297</span>      SecureTestUtil.enableSecurity(TEST_UTIL.getConfiguration());<a name="line.297"></a>
+<span class="sourceLineNo">298</span>    }<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    conf1.setBoolean(BackupRestoreConstants.BACKUP_ENABLE_KEY, true);<a name="line.299"></a>
+<span class="sourceLineNo">300</span>    BackupManager.decorateMasterConfiguration(conf1);<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    BackupManager.decorateRegionServerConfiguration(conf1);<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    conf1.set(HConstants.ZOOKEEPER_ZNODE_PARENT, "/1");<a name="line.302"></a>
+<span class="sourceLineNo">303</span>    // Set MultiWAL (with 2 default WAL files per RS)<a name="line.303"></a>
+<span class="sourceLineNo">304</span>    conf1.set(WALFactory.WAL_PROVIDER, provider);<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    TEST_UTIL.startMiniCluster();<a name="line.305"></a>
+<span class="sourceLineNo">306</span><a name="line.306"></a>
+<span class="sourceLineNo">307</span>    if (useSecondCluster) {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>      conf2 = HBaseConfiguration.create(conf1);<a name="line.308"></a>
+<span class="sourceLineNo">309</span>      conf2.set(HConstants.ZOOKEEPER_ZNODE_PARENT, "/2");<a name="line.309"></a>
+<span class="sourceLineNo">310</span>      TEST_UTIL2 = new HBaseTestingUtility(conf2);<a name="line.310"></a>
+<span class="sourceLineNo">311</span>      TEST_UTIL2.setZkCluster(TEST_UTIL.getZkCluster());<a name="line.311"></a>
+<span class="sourceLineNo">312</span>      TEST_UTIL2.startMiniCluster();<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    }<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    conf1 = TEST_UTIL.getConfiguration();<a name="line.314"></a>
+<span class="sourceLineNo">315</span><a name="line.315"></a>
+<span class="sourceLineNo">316</span>    TEST_UTIL.startMiniMapReduceCluster();<a name="line.316"></a>
+<span class="sourceLineNo">317</span>    BACKUP_ROOT_DIR =<a name="line.317"></a>
+<span class="sourceLineNo">318</span>        new Path ( new Path(TEST_UTIL.getConfiguration().get("fs.defaultFS")),<a name="line.318"></a>
+<span class="sourceLineNo">319</span>          BACKUP_ROOT_DIR).toString();<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    LOG.info("ROOTDIR " + BACKUP_ROOT_DIR);<a name="line.320"></a>
+<span class="sourceLineNo">321</span>    if (useSecondCluster) {<a name="line.321"></a>
+<span class="sourceLineNo">322</span>      BACKUP_REMOTE_ROOT_DIR =<a name="line.322"></a>
+<span class="sourceLineNo">323</span>          new Path ( new Path(TEST_UTIL2.getConfiguration().get("fs.defaultFS"))<a name="line.323"></a>
+<span class="sourceLineNo">324</span>          + BACKUP_REMOTE_ROOT_DIR).toString();<a name="line.324"></a>
+<span class="sourceLineNo">325</span>      LOG.info("REMOTE ROOTDIR " + BACKUP_REMOTE_ROOT_DIR);<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    }<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    createTables();<a name="line.327"></a>
+<span class="sourceLineNo">328</span>    populateFromMasterConfig(TEST_UTIL.getHBaseCluster().getMaster().getConfiguration(), conf1);<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    setupIsDone = true;<a name="line.329"></a>
+<span class="sourceLineNo">330</span>  }<a name="line.330"></a>
+<span class="sourceLineNo">331</span><a name="line.331"></a>
+<span class="sourceLineNo">332</span>  private static void populateFromMasterConfig(Configuration masterConf, Configuration conf) {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>    Iterator&lt;Entry&lt;String, String&gt;&gt; it = masterConf.iterator();<a name="line.333"></a>
+<span class="sourceLineNo">334</span>    while (it.hasNext()) {<a name="line.334"></a>
+<span class="sourceLineNo">335</span>      Entry&lt;String, String&gt; e = it.next();<a name="line.335"></a>
+<span class="sourceLineNo">336</span>      conf.set(e.getKey(), e.getValue());<a name="line.336"></a>
+<span class="sourceLineNo">337</span>    }<a name="line.337"></a>
+<span class="sourceLineNo">338</span>  }<a name="line.338"></a>
+<span class="sourceLineNo">339</span><a name="line.339"></a>
+<span class="sourceLineNo">340</span>  /**<a name="line.340"></a>
+<span class="sourceLineNo">341</span>   * @throws java.lang.Exception<a name="line.341"></a>
+<span class="sourceLineNo">342</span>   */<a name="line.342"></a>
+<span class="sourceLineNo">343</span>  @AfterClass<a name="line.343"></a>
+<span class="sourceLineNo">344</span>  public static void tearDown() throws Exception {<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    try{<a name="line.345"></a>
+<span class="sourceLineNo">346</span>      SnapshotTestingUtils.deleteAllSnapshots(TEST_UTIL.getHBaseAdmin());<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    } catch (Exception e) {<a name="line.347"></a>
+<span class="sourceLineNo">348</span>    }<a name="line.348"></a>
+<span class="sourceLineNo">349</span>    SnapshotTestingUtils.deleteArchiveDirectory(TEST_UTIL);<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    if (useSecondCluster) {<a name="line.350"></a>
+<span class="sourceLineNo">351</span>      TEST_UTIL2.shutdownMiniCluster();<a name="line.351"></a>
 <span class="sourceLineNo">352</span>    }<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    SnapshotTestingUtils.deleteArchiveDirectory(TEST_UTIL);<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    if (useSecondCluster) {<a name="line.354"></a>
-<span class="sourceLineNo">355</span>      TEST_UTIL2.shutdownMiniCluster();<a name="line.355"></a>
-<span class="sourceLineNo">356</span>    }<a name="line.356"></a>
-<span class="sourceLineNo">357</span>    TEST_UTIL.shutdownMiniCluster();<a name="line.357"></a>
-<span class="sourceLineNo">358</span>    TEST_UTIL.shutdownMiniMapReduceCluster();<a name="line.358"></a>
-<span class="sourceLineNo">359</span>  }<a name="line.359"></a>
-<span class="sourceLineNo">360</span><a name="line.360"></a>
-<span class="sourceLineNo">361</span>  HTable insertIntoTable(Connection conn, TableName table, byte[] family, int id, int numRows)<a name="line.361"></a>
-<span class="sourceLineNo">362</span>      throws IOException {<a name="line.362"></a>
-<span class="sourceLineNo">363</span>    HTable t = (HTable) conn.getTable(table);<a name="line.363"></a>
-<span class="sourceLineNo">364</span>    Put p1;<a name="line.364"></a>
-<span class="sourceLineNo">365</span>    for (int i = 0; i &lt; numRows; i++) {<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      p1 = new Put(Bytes.toBytes("row-" + table + "-" + id + "-" + i));<a name="line.366"></a>
-<span class="sourceLineNo">367</span>      p1.addColumn(family, qualName, Bytes.toBytes("val" + i));<a name="line.367"></a>
-<span class="sourceLineNo">368</span>      t.put(p1);<a name="line.368"></a>
-<span class="sourceLineNo">369</span>    }<a name="line.369"></a>
-<span class="sourceLineNo">370</span>    return t;<a name="line.370"></a>
-<span class="sourceLineNo">371</span>  }<a name="line.371"></a>
-<span class="sourceLineNo">372</span><a name="line.372"></a>
-<span class="sourceLineNo">373</span><a name="line.373"></a>
-<span class="sourceLineNo">374</span>  protected BackupRequest createBackupRequest(BackupType type,<a name="line.374"></a>
-<span class="sourceLineNo">375</span>      List&lt;TableName&gt; tables, String path) {<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    BackupRequest.Builder builder = new BackupRequest.Builder();<a name="line.376"></a>
-<span class="sourceLineNo">377</span>    BackupRequest request = builder.withBackupType(type)<a name="line.377"></a>
-<span class="sourceLineNo">378</span>                                    .withTableList(tables)<a name="line.378"></a>
-<span class="sourceLineNo">379</span>                                    .withTargetRootDir(path).build();<a name="line.379"></a>
-<span class="sourceLineNo">380</span>    return request;<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>  protected String backupTables(BackupType type, List&lt;TableName&gt; tables, String path)<a name="line.383"></a>
-<span class="sourceLineNo">384</span>      throws IOException {<a name="line.384"></a>
-<span class="sourceLineNo">385</span>    Connection conn = null;<a name="line.385"></a>
-<span class="sourceLineNo">386</span>    BackupAdmin badmin = null;<a name="line.386"></a>
-<span class="sourceLineNo">387</span>    String backupId;<a name="line.387"></a>
-<span class="sourceLineNo">388</span>    try {<a name="line.388"></a>
-<span class="sourceLineNo">389</span>      conn = ConnectionFactory.createConnection(conf1);<a name="line.389"></a>
-<span class="sourceLineNo">390</span>      badmin = new BackupAdminImpl(conn);<a name="line.390"></a>
-<span class="sourceLineNo">391</span>      BackupRequest request = createBackupRequest(type, tables, path);<a name="line.391"></a>
-<span class="sourceLineNo">392</span>      backupId = badmin.backupTables(request);<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    } finally {<a name="line.393"></a>
-<span class="sourceLineNo">394</span>      if (badmin != null) {<a name="line.394"></a>
-<span class="sourceLineNo">395</span>        badmin.close();<a name="line.395"></a>
-<span class="sourceLineNo">396</span>      }<a name="line.396"></a>
-<span class="sourceLineNo">397</span>      if (conn != null) {<a name="line.397"></a>
-<span class="sourceLineNo">398</span>        conn.close();<a name="line.398"></a>
-<span class="sourceLineNo">399</span>      }<a name="line.399"></a>
-<span class="sourceLineNo">400</span>    }<a name="line.400"></a>
-<span class="sourceLineNo">401</span>    return backupId;<a name="line.401"></a>
+<span class="sourceLineNo">353</span>    TEST_UTIL.shutdownMiniCluster();<a name="line.353"></a>
+<span class="sourceLineNo">354</span>    TEST_UTIL.shutdownMiniMapReduceCluster();<a name="line.354"></a>
+<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>  HTable insertIntoTable(Connection conn, TableName table, byte[] family, int id, int numRows)<a name="line.357"></a>
+<span class="sourceLineNo">358</span>      throws IOException {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>    HTable t = (HTable) conn.getTable(table);<a name="line.359"></a>
+<span class="sourceLineNo">360</span>    Put p1;<a name="line.360"></a>
+<span class="sourceLineNo">361</span>    for (int i = 0; i &lt; numRows; i++) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>      p1 = new Put(Bytes.toBytes("row-" + table + "-" + id + "-" + i));<a name="line.362"></a>
+<span class="sourceLineNo">363</span>      p1.addColumn(family, qualName, Bytes.toBytes("val" + i));<a name="line.363"></a>
+<span class="sourceLineNo">364</span>      t.put(p1);<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    }<a name="line.365"></a>
+<span class="sourceLineNo">366</span>    return t;<a name="line.366"></a>
+<span class="sourceLineNo">367</span>  }<a name="line.367"></a>
+<span class="sourceLineNo">368</span><a name="line.368"></a>
+<span class="sourceLineNo">369</span><a name="line.369"></a>
+<span class="sourceLineNo">370</span>  protected BackupRequest createBackupRequest(BackupType type,<a name="line.370"></a>
+<span class="sourceLineNo">371</span>      List&lt;TableName&gt; tables, String path) {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>    BackupRequest.Builder builder = new BackupRequest.Builder();<a name="line.372"></a>
+<span class="sourceLineNo">373</span>    BackupRequest request = builder.withBackupType(type)<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                                    .withTableList(tables)<a name="line.374"></a>
+<span class="sourceLineNo">375</span>                                    .withTargetRootDir(path).build();<a name="line.375"></a>
+<span class="sourceLineNo">376</span>    return request;<a name="line.376"></a>
+<span class="sourceLineNo">377</span>  }<a name="line.377"></a>
+<span class="sourceLineNo">378</span><a name="line.378"></a>
+<span class="sourceLineNo">379</span>  protected String backupTables(BackupType type, List&lt;TableName&gt; tables, String path)<a name="line.379"></a>
+<span class="sourceLineNo">380</span>      throws IOException {<a name="line.380"></a>
+<span class="sourceLineNo">381</span>    Connection conn = null;<a name="line.381"></a>
+<span class="sourceLineNo">382</span>    BackupAdmin badmin = null;<a name="line.382"></a>
+<span class="sourceLineNo">383</span>    String backupId;<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    try {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>      conn = ConnectionFactory.createConnection(conf1);<a name="line.385"></a>
+<span class="sourceLineNo">386</span>      badmin = new BackupAdminImpl(conn);<a name="line.386"></a>
+<span class="sourceLineNo">387</span>      BackupRequest request = createBackupRequest(type, tables, path);<a name="line.387"></a>
+<span class="sourceLineNo">388</span>      backupId = badmin.backupTables(request);<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    } finally {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>      if (badmin != null) {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        badmin.close();<a name="line.391"></a>
+<span class="sourceLineNo">392</span>      }<a name="line.392"></a>
+<span class="sourceLineNo">393</span>      if (conn != null) {<a name="line.393"></a>
+<span class="sourceLineNo">394</span>        conn.close();<a name="line.394"></a>
+<span class="sourceLineNo">395</span>      }<a name="line.395"></a>
+<span class="sourceLineNo">396</span>    }<a name="line.396"></a>
+<span class="sourceLineNo">397</span>    return backupId;<a name="line.397"></a>
+<span class="sourceLineNo">398</span>  }<a name="line.398"></a>
+<span class="sourceLineNo">399</span><a name="line.399"></a>
+<span class="sourceLineNo">400</span>  protected String fullTableBackup(List&lt;TableName&gt; tables) throws IOException {<a name="line.400"></a>
+<span class="sourceLineNo">401</span>    return backupTables(BackupType.FULL, tables, BACKUP_ROOT_DIR);<a name="line.401"></a>
 <span class="sourceLineNo">402</span>  }<a name="line.402"></a>
 <span class="sourceLineNo">403</span><a name="line.403"></a>
-<span class="sourceLineNo">404</span>  protected String fullTableBackup(List&lt;TableName&gt; tables) throws IOException {<a name="line.404"></a>
-<span class="sourceLineNo">405</span>    return backupTables(BackupType.FULL, tables, BACKUP_ROOT_DIR);<a name="line.405"></a>
+<span class="sourceLineNo">404</span>  protected String incrementalTableBackup(List&lt;TableName&gt; tables) throws IOException {<a name="line.404"></a>
+<span class="sourceLineNo">405</span>    return backupTables(BackupType.INCREMENTAL, tables, BACKUP_ROOT_DIR);<a name="line.405"></a>
 <span class="sourceLineNo">406</span>  }<a name="line.406"></a>
 <span class="sourceLineNo">407</span><a name="line.407"></a>
-<span class="sourceLineNo">408</span>  protected String incrementalTableBackup(List&lt;TableName&gt; tables) throws IOException {<a name="line.408"></a>
-<span class="sourceLineNo">409</span>    return backupTables(BackupType.INCREMENTAL, tables, BACKUP_ROOT_DIR);<a name="line.409"></a>
-<span class="sourceLineNo">410</span>  }<a name="line.410"></a>
-<span class="sourceLineNo">411</span><a name="line.411"></a>
-<span class="sourceLineNo">412</span>  protected static void loadTable(Table table) throws Exception {<a name="line.412"></a>
-<span class="sourceLineNo">413</span><a name="line.413"></a>
-<span class="sourceLineNo">414</span>    Put p; // 100 + 1 row to t1_syncup<a name="line.414"></a>
-<span class="sourceLineNo">415</span>    for (int i = 0; i &lt; NB_ROWS_IN_BATCH; i++) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>      p = new Put(Bytes.toBytes("row" + i));<a name="line.416"></a>
-<span class="sourceLineNo">417</span>      p.setDurability(Durability.SKIP_WAL);<a name="line.417"></a>
-<span class="sourceLineNo">418</span>      p.addColumn(famName, qualName, Bytes.toBytes("val" + i));<a name="line.418"></a>
-<span class="sourceLineNo">419</span>      table.put(p);<a name="line.419"></a>
-<span class="sourceLineNo">420</span>    }<a name="line.420"></a>
-<span class="sourceLineNo">421</span>  }<a name="line.421"></a>
-<span class="sourceLineNo">422</span><a name="line.422"></a>
-<span class="sourceLineNo">423</span>  protected static void createTables() throws Exception {<a name="line.423"></a>
+<span class="sourceLineNo">408</span>  protected static void loadTable(Table table) throws Exception {<a name="line.408"></a>
+<span class="sourceLineNo">409</span><a name="line.409"></a>
+<span class="sourceLineNo">410</span>    Put p; // 100 + 1 row to t1_syncup<a name="line.410"></a>
+<span class="sourceLineNo">411</span>    for (int i = 0; i &lt; NB_ROWS_IN_BATCH; i++) {<a name="line.411"></a>
+<span class="sourceLineNo">412</span>      p = new Put(Bytes.toBytes("row" + i));<a name="line.412"></a>
+<span class="sourceLineNo">413</span>      p.setDurability(Durability.SKIP_WAL);<a name="line.413"></a>
+<span class="sourceLineNo">414</span>      p.addColumn(famName, qualName, Bytes.toBytes("val" + i));<a name="line.414"></a>
+<span class="sourceLineNo">415</span>      table.put(p);<a name="line.415"></a>
+<span class="sourceLineNo">416</span>    }<a name="line.416"></a>
+<span class="sourceLineNo">417</span>  }<a name="line.417"></a>
+<span class="sourceLineNo">418</span><a name="line.418"></a>
+<span class="sourceLineNo">419</span>  protected static void createTables() throws Exception {<a name="line.419"></a>
+<span class="sourceLineNo">420</span><a name="line.420"></a>
+<span class="sourceLineNo">421</span>    long tid = System.currentTimeMillis();<a name="line.421"></a>
+<span class="sourceLineNo">422</span>    table1 = TableName.valueOf("ns1:test-" + tid);<a name="line.422"></a>
+<span class="sourceLineNo">423</span>    HBaseAdmin ha = TEST_UTIL.getHBaseAdmin();<a name="line.423"></a>
 <span class="sourceLineNo">424</span><a name="line.424"></a>
-<span class="sourceLineNo">425</span>    long tid = System.currentTimeMillis();<a name="line.425"></a>
-<span class="sourceLineNo">426</span>    table1 = TableName.valueOf("ns1:test-" + tid);<a name="line.426"></a>
-<span class="sourceLineNo">427</span>    HBaseAdmin ha = TEST_UTIL.getHBaseAdmin();<a name="line.427"></a>
-<span class="sourceLineNo">428</span><a name="line.428"></a>
-<span class="sourceLineNo">429</span>    // Create namespaces<a name="line.429"></a>
-<span class="sourceLineNo">430</span>    NamespaceDescriptor desc1 = NamespaceDescriptor.create("ns1").build();<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    NamespaceDescriptor desc2 = NamespaceDescriptor.create("ns2").build();<a name="line.431"></a>
-<span class="sourceLineNo">432</span>    NamespaceDescriptor desc3 = NamespaceDescriptor.create("ns3").build();<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    NamespaceDescriptor desc4 = NamespaceDescriptor.create("ns4").build();<a name="line.433"></a>
-<span class="sourceLineNo">434</span><a name="line.434"></a>
-<span class="sourceLineNo">435</span>    ha.createNamespace(desc1);<a name="line.435"></a>
-<span class="sourceLineNo">436</span>    ha.createNamespace(desc2);<a name="line.436"></a>
-<span class="sourceLineNo">437</span>    ha.createNamespace(desc3);<a name="line.437"></a>
-<span class="sourceLineNo">438</span>    ha.createNamespace(desc4);<a name="line.438"></a>
-<span class="sourceLineNo">439</span><a name="line.439"></a>
-<span class="sourceLineNo">440</span>    HTableDescriptor desc = new HTableDescriptor(table1);<a name="line.440"></a>
-<span class="sourceLineNo">441</span>    HColumnDescriptor fam = new HColumnDescriptor(famName);<a name="line.441"></a>
-<span class="sourceLineNo">442</span>    desc.addFamily(fam);<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    ha.createTable(desc);<a name="line.443"></a>
-<span class="sourceLineNo">444</span>    table1Desc = desc;<a name="line.444"></a>
-<span class="sourceLineNo">445</span>    Connection conn = ConnectionFactory.createConnection(conf1);<a name="line.445"></a>
-<span class="sourceLineNo">446</span>    Table table = conn.getTable(table1);<a name="line.446"></a>
-<span class="sourceLineNo">447</span>    loadTable(table);<a name="line.447"></a>
-<span class="sourceLineNo">448</span>    table.close();<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    table2 = TableName.valueOf("ns2:test-" + tid + 1);<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    desc = new HTableDescriptor(table2);<a name="line.450"></a>
-<span class="sourceLineNo">451</span>    desc.addFamily(fam);<a name="line.451"></a>
-<span class="sourceLineNo">452</span>    ha.createTable(desc);<a name="line.452"></a>
-<span class="sourceLineNo">453</span>    table = conn.getTable(table2);<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    loadTable(table);<a name="line.454"></a>
-<span class="sourceLineNo">455</span>    table.close();<a name="line.455"></a>
-<span class="sourceLineNo">456</span>    table3 = TableName.valueOf("ns3:test-" + tid + 2);<a name="line.456"></a>
-<span class="sourceLineNo">457</span>    table = TEST_UTIL.createTable(table3, famName);<a name="line.457"></a>
-<span class="sourceLineNo">458</span>    table.close();<a name="line.458"></a>
-<span class="sourceLineNo">459</span>    table4 = TableName.valueOf("ns4:test-" + tid + 3);<a name="line.459"></a>
-<span class="sourceLineNo">460</span>    table = TEST_UTIL.createTable(table4, famName);<a name="line.460"></a>
-<span class="sourceLineNo">461</span>    table.close();<a name="line.461"></a>
-<span class="sourceLineNo">462</span>    ha.close();<a name="line.462"></a>
-<span class="sourceLineNo">463</span>    conn.close();<a name="line.463"></a>
-<span class="sourceLineNo">464</span>  }<a name="line.464"></a>
-<span class="sourceLineNo">465</span><a name="line.465"></a>
-<span class="sourceLineNo">466</span>  protected boolean checkSucceeded(String backupId) throws IOException {<a name="line.466"></a>
-<span class="sourceLineNo">467</span>    BackupInfo status = getBackupInfo(backupId);<a name="line.467"></a>
-<span class="sourceLineNo">468</span>    if (status == null) return false;<a name="line.468"></a>
-<span class="sourceLineNo">469</span>    return status.getState() == BackupState.COMPLETE;<a name="line.469"></a>
-<span class="sourceLineNo">470</span>  }<a name="line.470"></a>
-<span class="sourceLineNo">471</span><a name="line.471"></a>
-<span class="sourceLineNo">472</span>  protected boolean checkFailed(String backupId) throws IOException {<a name="line.472"></a>
-<span class="sourceLineNo">473</span>    BackupInfo status = getBackupInfo(backupId);<a name="line.473"></a>
-<span class="sourceLineNo">474</span>    if (status == null) return false;<a name="line.474"></a>
-<span class="sourceLineNo">475</span>    return status.getState() == BackupState.FAILED;<a name="line.475"></a>
-<span class="sourceLineNo">476</span>  }<a name="line.476"></a>
-<span class="sourceLineNo">477</span><a name="line.477"></a>
-<span class="sourceLineNo">478</span>  private BackupInfo getBackupInfo(String backupId) throws IOException {<a name="line.478"></a>
-<span class="sourceLineNo">479</span>    try (BackupSystemTable table = new BackupSystemTable(TEST_UTIL.getConnection())) {<a name="line.479"></a>
-<span class="sourceLineNo">480</span>      BackupInfo status = table.readBackupInfo(backupId);<a name="line.480"></a>
-<span class="sourceLineNo">481</span>      return status;<a name="line.481"></a>
-<span class="sourceLineNo">482</span>    }<a name="line.482"></a>
+<span class="sourceLineNo">425</span>    // Create namespaces<a name="line.425"></a>
+<span class="sourceLineNo">426</span>    NamespaceDescriptor desc1 = NamespaceDescriptor.create("ns1").build();<a name="line.426"></a>
+<span class="sourceLineNo">427</span>    NamespaceDescriptor desc2 = NamespaceDescriptor.create("ns2").build();<a name="line.427"></a>
+<span class="sourceLineNo">428</span>    NamespaceDescriptor desc3 = NamespaceDescriptor.create("ns3").build();<a name="line.428"></a>
+<span class="sourceLineNo">429</span>    NamespaceDescriptor desc4 = NamespaceDescriptor.create("ns4").build();<a name="line.429"></a>
+<span class="sourceLineNo">430</span><a name="line.430"></a>
+<span class="sourceLineNo">431</span>    ha.createNamespace(desc1);<a name="line.431"></a>
+<span class="sourceLineNo">432</span>    ha.createNamespace(desc2);<a name="line.432"></a>
+<span class="sourceLineNo">433</span>    ha.createNamespace(desc3);<a name="line.433"></a>
+<span class="sourceLineNo">434</span>    ha.createNamespace(desc4);<a name="line.434"></a>
+<span class="sourceLineNo">435</span><a name="line.435"></a>
+<span class="sourceLineNo">436</span>    HTableDescriptor desc = new HTableDescriptor(table1);<a name="line.436"></a>
+<span class="sourceLineNo">437</span>    HColumnDescriptor fam = new HColumnDescriptor(famName);<a name="line.437"></a>
+<span class="sourceLineNo">438</span>    desc.addFamily(fam);<a name="line.438"></a>
+<span class="sourceLineNo">439</span>    ha.createTable(desc);<a name="line.439"></a>
+<span class="sourceLineNo">440</span>    table1Desc = desc;<a name="line.440"></a>
+<span class="sourceLineNo">441</span>    Connection conn = ConnectionFactory.createConnection(conf1);<a name="line.441"></a>
+<span class="sourceLineNo">442</span>    Table table = conn.getTable(table1);<a name="line.442"></a>
+<span class="sourceLineNo">443</span>    loadTable(table);<a name="line.443"></a>
+<span class="sourceLineNo">444</span>    table.close();<a name="line.444"></a>
+<span class="sourceLineNo">445</span>    table2 = TableName.valueOf("ns2:test-" + tid + 1);<a name="line.445"></a>
+<span class="sourceLineNo">446</span>    desc = new HTableDescriptor(table2);<a name="line.446"></a>
+<span class="sourceLineNo">447</span>    desc.addFamily(fam);<a name="line.447"></a>
+<span class="sourceLineNo">448</span>    ha.createTable(desc);<a name="line.448"></a>
+<span class="sourceLineNo">449</span>    table = conn.getTable(table2);<a name="line.449"></a>
+<span class="sourceLineNo">450</span>    loadTable(table);<a name="line.450"></a>
+<span class="sourceLineNo">451</span>    table.close();<a name="line.451"></a>
+<span class="sourceLineNo">452</span>    table3 = TableName.valueOf("ns3:test-" + tid + 2);<a name="line.452"></a>
+<span class="sourceLineNo">453</span>    table = TEST_UTIL.createTable(table3, famName);<a name="line.453"></a>
+<span class="sourceLineNo">454</span>    table.close();<a name="line.454"></a>
+<span class="sourceLineNo">455</span>    table4 = TableName.valueOf("ns4:test-" + tid + 3);<a name="line.455"></a>
+<span class="sourceLineNo">456</span>    table = TEST_UTIL.createTable(table4, famName);<a name="line.456"></a>
+<span class="sourceLineNo">457</span>    table.close();<a name="line.457"></a>
+<span class="sourceLineNo">458</span>    ha.close();<a name="line.458"></a>
+<span class="sourceLineNo">459</span>    conn.close();<a name="line.459"></a>
+<span class="sourceLineNo">460</span>  }<a name="line.460"></a>
+<span class="sourceLineNo">461</span><a name="line.461"></a>
+<span class="sourceLineNo">462</span>  protected boolean checkSucceeded(String backupId) throws IOException {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>    BackupInfo status = getBackupInfo(backupId);<a name="line.463"></a>
+<span class="sourceLineNo">464</span>    if (status == null) return false;<a name="line.464"></a>
+<span class="sourceLineNo">465</span>    return status.getState() == BackupState.COMPLETE;<a name="line.465"></a>
+<span class="sourceLineNo">466</span>  }<a name="line.466"></a>
+<span class="sourceLineNo">467</span><a name="line.467"></a>
+<span class="sourceLineNo">468</span>  protected boolean checkFailed(String backupId) throws IOException {<a name="line.468"></a>
+<span class="sourceLineNo">469</span>    BackupInfo status = getBackupInfo(backupId);<a name="line.469"></a>
+<span class="sourceLineNo">470</span>    if (status == null) return false;<a name="line.470"></a>
+<span class="sourceLineNo">471</span>    return status.getState() == BackupState.FAILED;<a name="line.471"></a>
+<span class="sourceLineNo">472</span>  }<a name="line.472"></a>
+<span class="sourceLineNo">473</span><a name="line.473"></a>
+<span class="sourceLineNo">474</span>  private BackupInfo getBackupInfo(String backupId) throws IOException {<a name="line.474"></a>
+<span class="sourceLineNo">475</span>    try (BackupSystemTable table = new BackupSystemTable(TEST_UTIL.getConnection())) {<a name="line.475"></a>
+<span class="sourceLineNo">476</span>      BackupInfo status = table.readBackupInfo(backupId);<a name="line.476"></a>
+<span class="sourceLineNo">477</span>      return status;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>    }<a name="line.478"></a>
+<span class="sourceLineNo">479</span>  }<a name="line.479"></a>
+<span class="sourceLineNo">480</span><a name="line.480"></a>
+<span class="sourceLineNo">481</span>  protected BackupAdmin getBackupAdmin() throws IOException {<a name="line.481"></a>
+<span class="sourceLineNo">482</span>    return new BackupAdminImpl(TEST_UTIL.getConnection());<a name="line.482"></a>
 <span class="sourceLineNo">483</span>  }<a name="line.483"></a>
 <span class="sourceLineNo">484</span><a name="line.484"></a>
-<span class="sourceLineNo">485</span>  protected BackupAdmin getBackupAdmin() throws IOException {<a name="line.485"></a>
-<span class="sourceLineNo">486</span>    return new BackupAdminImpl(TEST_UTIL.getConnection());<a name="line.486"></a>
-<span class="sourceLineNo">487</span>  }<a name="line.487"></a>
-<span class="sourceLineNo">488</span><a name="line.488"></a>
-<span class="sourceLineNo">489</span>  /**<a name="line.489"></a>
-<span class="sourceLineNo">490</span>   * Helper method<a name="line.490"></a>
-<span class="sourceLineNo">491</span>   */<a name="line.491"></a>
-<span class="sourceLineNo">492</span>  protected List&lt;TableName&gt; toList(String... args) {<a name="line.492"></a>
-<span class="sourceLineNo">493</span>    List&lt;TableName&gt; ret = new ArrayList&lt;&gt;();<a name="line.493"></a>
-<span class="sourceLineNo">494</span>    for (int i = 0; i &lt; args.length; i++) {<a name="line.494"></a>
-<span class="sourceLineNo">495</span>      ret.add(TableName.valueOf(args[i]));<a name="line.495"></a>
-<span class="sourceLineNo">496</span>    }<a name="line.496"></a>
-<span class="sourceLineNo">497</span>    return ret;<a name="line.497"></a>
-<span class="sourceLineNo">498</span>  }<a name="line.498"></a>
-<span class="sourceLineNo">499</span><a name="line.499"></a>
-<span class="sourceLineNo">500</span>  protected void dumpBackupDir() throws IOException {<a name="line.500"></a>
-<span class="sourceLineNo">501</span>    // Dump Backup Dir<a name="line.501"></a>
-<span class="sourceLineNo">502</span>    FileSystem fs = FileSystem.get(conf1);<a name="line.502"></a>
-<span class="sourceLineNo">503</span>    RemoteIterator&lt;LocatedFileStatus&gt; it = fs.listFiles(new Path(BACKUP_ROOT_DIR), true);<a name="line.503"></a>
-<span class="sourceLineNo">504</span>    while (it.hasNext()) {<a name="line.504"></a>
-<span class="sourceLineNo">505</span>      LOG.debug(Objects.toString(it.next().getPath()));<a name="line.505"></a>
-<span class="sourceLineNo">506</span>    }<a name="line.506"></a>
-<span class="sourceLineNo">507</span><a name="line.507"></a>
-<span class="sourceLineNo">508</span>  }<a name="line.508"></a>
-<span class="sourceLineNo">509</span>}<a name="line.509"></a>
+<span class="sourceLineNo">485</span>  /**<a name="line.485"></a>
+<span class="sourceLineNo">486</span>   * Helper method<a name="line.486"></a>
+<span class="sourceLineNo">487</span>   */<a name="line.487"></a>
+<span class="sourceLineNo">488</span>  protected List&lt;TableName&gt; toList(String... args) {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>    List&lt;TableName&gt; ret = new ArrayList&lt;&gt;();<a name="line.489"></a>
+<span class="sourceLineNo">490</span>    for (int i = 0; i &lt; args.length; i++) {<a name="line.490"></a>
+<span class="sourceLineNo">491</span>      ret.add(TableName.valueOf(args[i]));<a name="line.491"></a>
+<span class="sourceLineNo">492</span>    }<a name="line.492"></a>
+<span class="sourceLineNo">493</span>    return ret;<a name="line.493"></a>
+<span class="sourceLineNo">494</span>  }<a name="line.494"></a>
+<span class="sourceLineNo">495</span><a name="line.495"></a>
+<span class="sourceLineNo">496</span>  protected void dumpBackupDir() throws IOException {<a name="line.496"></a>
+<span class="sourceLineNo">497</span>    // Dump Backup Dir<a name="line.497"></a>
+<span class="sourceLineNo">498</span>    FileSystem fs = FileSystem.get(conf1);<a name="line.498"></a>
+<span class="sourceLineNo">499</span>    RemoteIterator&lt;LocatedFileStatus&gt; it = fs.listFiles(new Path(BACKUP_ROOT_DIR), true);<a name="line.499"></a>
+<span class="sourceLineNo">500</span>    while (it.hasNext()) {<a name="line.500"></a>
+<span class="sourceLineNo">501</span>      LOG.debug(Objects.toString(it.next().getPath()));<a name="line.501"></a>
+<span class="sourceLineNo">502</span>    }<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">504</span>  }<a name="line.504"></a

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html
index b4bc1f1..9fe9867 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html
@@ -66,771 +66,773 @@
 <span class="sourceLineNo">058</span>import org.junit.Assert;<a name="line.58"></a>
 <span class="sourceLineNo">059</span>import org.junit.Before;<a name="line.59"></a>
 <span class="sourceLineNo">060</span>import org.junit.BeforeClass;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.junit.Test;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.junit.experimental.categories.Category;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.slf4j.Logger;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.slf4j.LoggerFactory;<a name="line.64"></a>
-<span class="sourceLineNo">065</span><a name="line.65"></a>
-<span class="sourceLineNo">066</span>@Category({MediumTests.class, FlakeyTests.class})<a name="line.66"></a>
-<span class="sourceLineNo">067</span>public class TestMultiParallel {<a name="line.67"></a>
-<span class="sourceLineNo">068</span>  private static final Logger LOG = LoggerFactory.getLogger(TestMultiParallel.class);<a name="line.68"></a>
-<span class="sourceLineNo">069</span><a name="line.69"></a>
-<span class="sourceLineNo">070</span>  private static final HBaseTestingUtility UTIL = new HBaseTestingUtility();<a name="line.70"></a>
-<span class="sourceLineNo">071</span>  private static final byte[] VALUE = Bytes.toBytes("value");<a name="line.71"></a>
-<span class="sourceLineNo">072</span>  private static final byte[] QUALIFIER = Bytes.toBytes("qual");<a name="line.72"></a>
-<span class="sourceLineNo">073</span>  private static final String FAMILY = "family";<a name="line.73"></a>
-<span class="sourceLineNo">074</span>  private static final TableName TEST_TABLE = TableName.valueOf("multi_test_table");<a name="line.74"></a>
-<span class="sourceLineNo">075</span>  private static final byte[] BYTES_FAMILY = Bytes.toBytes(FAMILY);<a name="line.75"></a>
-<span class="sourceLineNo">076</span>  private static final byte[] ONE_ROW = Bytes.toBytes("xxx");<a name="line.76"></a>
-<span class="sourceLineNo">077</span>  private static final byte [][] KEYS = makeKeys();<a name="line.77"></a>
-<span class="sourceLineNo">078</span><a name="line.78"></a>
-<span class="sourceLineNo">079</span>  private static final int slaves = 5; // also used for testing HTable pool size<a name="line.79"></a>
-<span class="sourceLineNo">080</span>  private static Connection CONNECTION;<a name="line.80"></a>
-<span class="sourceLineNo">081</span><a name="line.81"></a>
-<span class="sourceLineNo">082</span>  @BeforeClass public static void beforeClass() throws Exception {<a name="line.82"></a>
-<span class="sourceLineNo">083</span>    // Uncomment the following lines if more verbosity is needed for<a name="line.83"></a>
-<span class="sourceLineNo">084</span>    // debugging (see HBASE-12285 for details).<a name="line.84"></a>
-<span class="sourceLineNo">085</span>    //((Log4JLogger)RpcServer.LOG).getLogger().setLevel(Level.ALL);<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    //((Log4JLogger)RpcClient.LOG).getLogger().setLevel(Level.ALL);<a name="line.86"></a>
-<span class="sourceLineNo">087</span>    //((Log4JLogger)ScannerCallable.LOG).getLogger().setLevel(Level.ALL);<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    UTIL.getConfiguration().set(HConstants.RPC_CODEC_CONF_KEY,<a name="line.88"></a>
-<span class="sourceLineNo">089</span>        KeyValueCodec.class.getCanonicalName());<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    UTIL.getConfiguration().setBoolean(LoadBalancer.TABLES_ON_MASTER, true);<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    UTIL.getConfiguration().setBoolean(LoadBalancer.SYSTEM_TABLES_ON_MASTER, true);<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    UTIL.getConfiguration()<a name="line.92"></a>
-<span class="sourceLineNo">093</span>        .set(CoprocessorHost.MASTER_COPROCESSOR_CONF_KEY, MyMasterObserver.class.getName());<a name="line.93"></a>
-<span class="sourceLineNo">094</span>    UTIL.startMiniCluster(slaves);<a name="line.94"></a>
-<span class="sourceLineNo">095</span>    Table t = UTIL.createMultiRegionTable(TEST_TABLE, Bytes.toBytes(FAMILY));<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    UTIL.waitTableEnabled(TEST_TABLE);<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    t.close();<a name="line.97"></a>
-<span class="sourceLineNo">098</span>    CONNECTION = ConnectionFactory.createConnection(UTIL.getConfiguration());<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    assertTrue(MyMasterObserver.start.get());<a name="line.99"></a>
-<span class="sourceLineNo">100</span>  }<a name="line.100"></a>
-<span class="sourceLineNo">101</span><a name="line.101"></a>
-<span class="sourceLineNo">102</span>  @AfterClass public static void afterClass() throws Exception {<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    CONNECTION.close();<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    UTIL.shutdownMiniCluster();<a name="line.104"></a>
-<span class="sourceLineNo">105</span>  }<a name="line.105"></a>
-<span class="sourceLineNo">106</span><a name="line.106"></a>
-<span class="sourceLineNo">107</span>  @Before public void before() throws Exception {<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    final int balanceCount = MyMasterObserver.postBalanceCount.get();<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    LOG.info("before");<a name="line.109"></a>
-<span class="sourceLineNo">110</span>    if (UTIL.ensureSomeRegionServersAvailable(slaves)) {<a name="line.110"></a>
-<span class="sourceLineNo">111</span>      // Distribute regions<a name="line.111"></a>
-<span class="sourceLineNo">112</span>      UTIL.getMiniHBaseCluster().getMaster().balance();<a name="line.112"></a>
-<span class="sourceLineNo">113</span>      // Some plans are created.<a name="line.113"></a>
-<span class="sourceLineNo">114</span>      if (MyMasterObserver.postBalanceCount.get() &gt; balanceCount) {<a name="line.114"></a>
-<span class="sourceLineNo">115</span>        // It is necessary to wait the move procedure to start.<a name="line.115"></a>
-<span class="sourceLineNo">116</span>        // Otherwise, the next wait may pass immediately.<a name="line.116"></a>
-<span class="sourceLineNo">117</span>        UTIL.waitFor(3 * 1000, 100, false, () -&gt;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>            UTIL.getMiniHBaseCluster().getMaster().getAssignmentManager().hasRegionsInTransition()<a name="line.118"></a>
-<span class="sourceLineNo">119</span>        );<a name="line.119"></a>
-<span class="sourceLineNo">120</span>      }<a name="line.120"></a>
-<span class="sourceLineNo">121</span><a name="line.121"></a>
-<span class="sourceLineNo">122</span>      // Wait until completing balance<a name="line.122"></a>
-<span class="sourceLineNo">123</span>      UTIL.waitUntilAllRegionsAssigned(TEST_TABLE);<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    }<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    LOG.info("before done");<a name="line.125"></a>
-<span class="sourceLineNo">126</span>  }<a name="line.126"></a>
-<span class="sourceLineNo">127</span><a name="line.127"></a>
-<span class="sourceLineNo">128</span>  private static byte[][] makeKeys() {<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    byte [][] starterKeys = HBaseTestingUtility.KEYS;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    // Create a "non-uniform" test set with the following characteristics:<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    // a) Unequal number of keys per region<a name="line.131"></a>
-<span class="sourceLineNo">132</span><a name="line.132"></a>
-<span class="sourceLineNo">133</span>    // Don't use integer as a multiple, so that we have a number of keys that is<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    // not a multiple of the number of regions<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    int numKeys = (int) (starterKeys.length * 10.33F);<a name="line.135"></a>
-<span class="sourceLineNo">136</span><a name="line.136"></a>
-<span class="sourceLineNo">137</span>    List&lt;byte[]&gt; keys = new ArrayList&lt;&gt;();<a name="line.137"></a>
-<span class="sourceLineNo">138</span>    for (int i = 0; i &lt; numKeys; i++) {<a name="line.138"></a>
-<span class="sourceLineNo">139</span>      int kIdx = i % starterKeys.length;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>      byte[] k = starterKeys[kIdx];<a name="line.140"></a>
-<span class="sourceLineNo">141</span>      byte[] cp = new byte[k.length + 1];<a name="line.141"></a>
-<span class="sourceLineNo">142</span>      System.arraycopy(k, 0, cp, 0, k.length);<a name="line.142"></a>
-<span class="sourceLineNo">143</span>      cp[k.length] = new Integer(i % 256).byteValue();<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      keys.add(cp);<a name="line.144"></a>
-<span class="sourceLineNo">145</span>    }<a name="line.145"></a>
-<span class="sourceLineNo">146</span><a name="line.146"></a>
-<span class="sourceLineNo">147</span>    // b) Same duplicate keys (showing multiple Gets/Puts to the same row, which<a name="line.147"></a>
-<span class="sourceLineNo">148</span>    // should work)<a name="line.148"></a>
-<span class="sourceLineNo">149</span>    // c) keys are not in sorted order (within a region), to ensure that the<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    // sorting code and index mapping doesn't break the functionality<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    for (int i = 0; i &lt; 100; i++) {<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      int kIdx = i % starterKeys.length;<a name="line.152"></a>
-<span class="sourceLineNo">153</span>      byte[] k = starterKeys[kIdx];<a name="line.153"></a>
-<span class="sourceLineNo">154</span>      byte[] cp = new byte[k.length + 1];<a name="line.154"></a>
-<span class="sourceLineNo">155</span>      System.arraycopy(k, 0, cp, 0, k.length);<a name="line.155"></a>
-<span class="sourceLineNo">156</span>      cp[k.length] = new Integer(i % 256).byteValue();<a name="line.156"></a>
-<span class="sourceLineNo">157</span>      keys.add(cp);<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    }<a name="line.158"></a>
-<span class="sourceLineNo">159</span>    return keys.toArray(new byte [][] {new byte [] {}});<a name="line.159"></a>
-<span class="sourceLineNo">160</span>  }<a name="line.160"></a>
-<span class="sourceLineNo">161</span><a name="line.161"></a>
-<span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span>  /**<a name="line.163"></a>
-<span class="sourceLineNo">164</span>   * This is for testing the active number of threads that were used while<a name="line.164"></a>
-<span class="sourceLineNo">165</span>   * doing a batch operation. It inserts one row per region via the batch<a name="line.165"></a>
-<span class="sourceLineNo">166</span>   * operation, and then checks the number of active threads.<a name="line.166"></a>
-<span class="sourceLineNo">167</span>   * For HBASE-3553<a name="line.167"></a>
-<span class="sourceLineNo">168</span>   * @throws IOException<a name="line.168"></a>
-<span class="sourceLineNo">169</span>   * @throws InterruptedException<a name="line.169"></a>
-<span class="sourceLineNo">170</span>   * @throws NoSuchFieldException<a name="line.170"></a>
-<span class="sourceLineNo">171</span>   * @throws SecurityException<a name="line.171"></a>
-<span class="sourceLineNo">172</span>   */<a name="line.172"></a>
-<span class="sourceLineNo">173</span>  @Test(timeout=300000)<a name="line.173"></a>
-<span class="sourceLineNo">174</span>  public void testActiveThreadsCount() throws Exception {<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    UTIL.getConfiguration().setLong("hbase.htable.threads.coresize", slaves + 1);<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    try (Connection connection = ConnectionFactory.createConnection(UTIL.getConfiguration())) {<a name="line.176"></a>
-<span class="sourceLineNo">177</span>      ThreadPoolExecutor executor = HTable.getDefaultExecutor(UTIL.getConfiguration());<a name="line.177"></a>
-<span class="sourceLineNo">178</span>      try {<a name="line.178"></a>
-<span class="sourceLineNo">179</span>        try (Table t = connection.getTable(TEST_TABLE, executor)) {<a name="line.179"></a>
-<span class="sourceLineNo">180</span>          List&lt;Put&gt; puts = constructPutRequests(); // creates a Put for every region<a name="line.180"></a>
-<span class="sourceLineNo">181</span>          t.batch(puts, null);<a name="line.181"></a>
-<span class="sourceLineNo">182</span>          HashSet&lt;ServerName&gt; regionservers = new HashSet&lt;&gt;();<a name="line.182"></a>
-<span class="sourceLineNo">183</span>          try (RegionLocator locator = connection.getRegionLocator(TEST_TABLE)) {<a name="line.183"></a>
-<span class="sourceLineNo">184</span>            for (Row r : puts) {<a name="line.184"></a>
-<span class="sourceLineNo">185</span>              HRegionLocation location = locator.getRegionLocation(r.getRow());<a name="line.185"></a>
-<span class="sourceLineNo">186</span>              regionservers.add(location.getServerName());<a name="line.186"></a>
-<span class="sourceLineNo">187</span>            }<a name="line.187"></a>
-<span class="sourceLineNo">188</span>          }<a name="line.188"></a>
-<span class="sourceLineNo">189</span>          assertEquals(regionservers.size(), executor.getLargestPoolSize());<a name="line.189"></a>
-<span class="sourceLineNo">190</span>        }<a name="line.190"></a>
-<span class="sourceLineNo">191</span>      } finally {<a name="line.191"></a>
-<span class="sourceLineNo">192</span>        executor.shutdownNow();<a name="line.192"></a>
-<span class="sourceLineNo">193</span>      }<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    }<a name="line.194"></a>
-<span class="sourceLineNo">195</span>  }<a name="line.195"></a>
-<span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span>  @Test(timeout=300000)<a name="line.197"></a>
-<span class="sourceLineNo">198</span>  public void testBatchWithGet() throws Exception {<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    LOG.info("test=testBatchWithGet");<a name="line.199"></a>
-<span class="sourceLineNo">200</span>    Table table = UTIL.getConnection().getTable(TEST_TABLE);<a name="line.200"></a>
-<span class="sourceLineNo">201</span><a name="line.201"></a>
-<span class="sourceLineNo">202</span>    // load test data<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    List&lt;Put&gt; puts = constructPutRequests();<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    table.batch(puts, null);<a name="line.204"></a>
-<span class="sourceLineNo">205</span><a name="line.205"></a>
-<span class="sourceLineNo">206</span>    // create a list of gets and run it<a name="line.206"></a>
-<span class="sourceLineNo">207</span>    List&lt;Row&gt; gets = new ArrayList&lt;&gt;();<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    for (byte[] k : KEYS) {<a name="line.208"></a>
-<span class="sourceLineNo">209</span>      Get get = new Get(k);<a name="line.209"></a>
-<span class="sourceLineNo">210</span>      get.addColumn(BYTES_FAMILY, QUALIFIER);<a name="line.210"></a>
-<span class="sourceLineNo">211</span>      gets.add(get);<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    }<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    Result[] multiRes = new Result[gets.size()];<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    table.batch(gets, multiRes);<a name="line.214"></a>
-<span class="sourceLineNo">215</span><a name="line.215"></a>
-<span class="sourceLineNo">216</span>    // Same gets using individual call API<a name="line.216"></a>
-<span class="sourceLineNo">217</span>    List&lt;Result&gt; singleRes = new ArrayList&lt;&gt;();<a name="line.217"></a>
-<span class="sourceLineNo">218</span>    for (Row get : gets) {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>      singleRes.add(table.get((Get) get));<a name="line.219"></a>
-<span class="sourceLineNo">220</span>    }<a name="line.220"></a>
-<span class="sourceLineNo">221</span>    // Compare results<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    Assert.assertEquals(singleRes.size(), multiRes.length);<a name="line.222"></a>
-<span class="sourceLineNo">223</span>    for (int i = 0; i &lt; singleRes.size(); i++) {<a name="line.223"></a>
-<span class="sourceLineNo">224</span>      Assert.assertTrue(singleRes.get(i).containsColumn(BYTES_FAMILY, QUALIFIER));<a name="line.224"></a>
-<span class="sourceLineNo">225</span>      Cell[] singleKvs = singleRes.get(i).rawCells();<a name="line.225"></a>
-<span class="sourceLineNo">226</span>      Cell[] multiKvs = multiRes[i].rawCells();<a name="line.226"></a>
-<span class="sourceLineNo">227</span>      for (int j = 0; j &lt; singleKvs.length; j++) {<a name="line.227"></a>
-<span class="sourceLineNo">228</span>        Assert.assertEquals(singleKvs[j], multiKvs[j]);<a name="line.228"></a>
-<span class="sourceLineNo">229</span>        Assert.assertEquals(0, Bytes.compareTo(CellUtil.cloneValue(singleKvs[j]),<a name="line.229"></a>
-<span class="sourceLineNo">230</span>            CellUtil.cloneValue(multiKvs[j])));<a name="line.230"></a>
-<span class="sourceLineNo">231</span>      }<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    }<a name="line.232"></a>
-<span class="sourceLineNo">233</span>    table.close();<a name="line.233"></a>
-<span class="sourceLineNo">234</span>  }<a name="line.234"></a>
-<span class="sourceLineNo">235</span><a name="line.235"></a>
-<span class="sourceLineNo">236</span>  @Test<a name="line.236"></a>
-<span class="sourceLineNo">237</span>  public void testBadFam() throws Exception {<a name="line.237"></a>
-<span class="sourceLineNo">238</span>    LOG.info("test=testBadFam");<a name="line.238"></a>
-<span class="sourceLineNo">239</span>    Table table = UTIL.getConnection().getTable(TEST_TABLE);<a name="line.239"></a>
-<span class="sourceLineNo">240</span><a name="line.240"></a>
-<span class="sourceLineNo">241</span>    List&lt;Row&gt; actions = new ArrayList&lt;&gt;();<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    Put p = new Put(Bytes.toBytes("row1"));<a name="line.242"></a>
-<span class="sourceLineNo">243</span>    p.addColumn(Bytes.toBytes("bad_family"), Bytes.toBytes("qual"), Bytes.toBytes("value"));<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    actions.add(p);<a name="line.244"></a>
-<span class="sourceLineNo">245</span>    p = new Put(Bytes.toBytes("row2"));<a name="line.245"></a>
-<span class="sourceLineNo">246</span>    p.addColumn(BYTES_FAMILY, Bytes.toBytes("qual"), Bytes.toBytes("value"));<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    actions.add(p);<a name="line.247"></a>
-<span class="sourceLineNo">248</span><a name="line.248"></a>
-<span class="sourceLineNo">249</span>    // row1 and row2 should be in the same region.<a name="line.249"></a>
+<span class="sourceLineNo">061</span>import org.junit.Ignore;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.junit.Test;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.junit.experimental.categories.Category;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.slf4j.Logger;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.slf4j.LoggerFactory;<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>@Ignore // Depends on Master being able to host regions. Needs fixing.<a name="line.67"></a>
+<span class="sourceLineNo">068</span>@Category({MediumTests.class, FlakeyTests.class})<a name="line.68"></a>
+<span class="sourceLineNo">069</span>public class TestMultiParallel {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>  private static final Logger LOG = LoggerFactory.getLogger(TestMultiParallel.class);<a name="line.70"></a>
+<span class="sourceLineNo">071</span><a name="line.71"></a>
+<span class="sourceLineNo">072</span>  private static final HBaseTestingUtility UTIL = new HBaseTestingUtility();<a name="line.72"></a>
+<span class="sourceLineNo">073</span>  private static final byte[] VALUE = Bytes.toBytes("value");<a name="line.73"></a>
+<span class="sourceLineNo">074</span>  private static final byte[] QUALIFIER = Bytes.toBytes("qual");<a name="line.74"></a>
+<span class="sourceLineNo">075</span>  private static final String FAMILY = "family";<a name="line.75"></a>
+<span class="sourceLineNo">076</span>  private static final TableName TEST_TABLE = TableName.valueOf("multi_test_table");<a name="line.76"></a>
+<span class="sourceLineNo">077</span>  private static final byte[] BYTES_FAMILY = Bytes.toBytes(FAMILY);<a name="line.77"></a>
+<span class="sourceLineNo">078</span>  private static final byte[] ONE_ROW = Bytes.toBytes("xxx");<a name="line.78"></a>
+<span class="sourceLineNo">079</span>  private static final byte [][] KEYS = makeKeys();<a name="line.79"></a>
+<span class="sourceLineNo">080</span><a name="line.80"></a>
+<span class="sourceLineNo">081</span>  private static final int slaves = 5; // also used for testing HTable pool size<a name="line.81"></a>
+<span class="sourceLineNo">082</span>  private static Connection CONNECTION;<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>  @BeforeClass public static void beforeClass() throws Exception {<a name="line.84"></a>
+<span class="sourceLineNo">085</span>    // Uncomment the following lines if more verbosity is needed for<a name="line.85"></a>
+<span class="sourceLineNo">086</span>    // debugging (see HBASE-12285 for details).<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    //((Log4JLogger)RpcServer.LOG).getLogger().setLevel(Level.ALL);<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    //((Log4JLogger)RpcClient.LOG).getLogger().setLevel(Level.ALL);<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    //((Log4JLogger)ScannerCallable.LOG).getLogger().setLevel(Level.ALL);<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    UTIL.getConfiguration().set(HConstants.RPC_CODEC_CONF_KEY,<a name="line.90"></a>
+<span class="sourceLineNo">091</span>        KeyValueCodec.class.getCanonicalName());<a name="line.91"></a>
+<span class="sourceLineNo">092</span>    UTIL.getConfiguration().setBoolean(LoadBalancer.TABLES_ON_MASTER, true);<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    UTIL.getConfiguration().setBoolean(LoadBalancer.SYSTEM_TABLES_ON_MASTER, true);<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    UTIL.getConfiguration()<a name="line.94"></a>
+<span class="sourceLineNo">095</span>        .set(CoprocessorHost.MASTER_COPROCESSOR_CONF_KEY, MyMasterObserver.class.getName());<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    UTIL.startMiniCluster(slaves);<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    Table t = UTIL.createMultiRegionTable(TEST_TABLE, Bytes.toBytes(FAMILY));<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    UTIL.waitTableEnabled(TEST_TABLE);<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    t.close();<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    CONNECTION = ConnectionFactory.createConnection(UTIL.getConfiguration());<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    assertTrue(MyMasterObserver.start.get());<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  }<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>  @AfterClass public static void afterClass() throws Exception {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    CONNECTION.close();<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    UTIL.shutdownMiniCluster();<a name="line.106"></a>
+<span class="sourceLineNo">107</span>  }<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span>  @Before public void before() throws Exception {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    final int balanceCount = MyMasterObserver.postBalanceCount.get();<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    LOG.info("before");<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    if (UTIL.ensureSomeRegionServersAvailable(slaves)) {<a name="line.112"></a>
+<span class="sourceLineNo">113</span>      // Distribute regions<a name="line.113"></a>
+<span class="sourceLineNo">114</span>      UTIL.getMiniHBaseCluster().getMaster().balance();<a name="line.114"></a>
+<span class="sourceLineNo">115</span>      // Some plans are created.<a name="line.115"></a>
+<span class="sourceLineNo">116</span>      if (MyMasterObserver.postBalanceCount.get() &gt; balanceCount) {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        // It is necessary to wait the move procedure to start.<a name="line.117"></a>
+<span class="sourceLineNo">118</span>        // Otherwise, the next wait may pass immediately.<a name="line.118"></a>
+<span class="sourceLineNo">119</span>        UTIL.waitFor(3 * 1000, 100, false, () -&gt;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>            UTIL.getMiniHBaseCluster().getMaster().getAssignmentManager().hasRegionsInTransition()<a name="line.120"></a>
+<span class="sourceLineNo">121</span>        );<a name="line.121"></a>
+<span class="sourceLineNo">122</span>      }<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span>      // Wait until completing balance<a name="line.124"></a>
+<span class="sourceLineNo">125</span>      UTIL.waitUntilAllRegionsAssigned(TEST_TABLE);<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    }<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    LOG.info("before done");<a name="line.127"></a>
+<span class="sourceLineNo">128</span>  }<a name="line.128"></a>
+<span class="sourceLineNo">129</span><a name="line.129"></a>
+<span class="sourceLineNo">130</span>  private static byte[][] makeKeys() {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    byte [][] starterKeys = HBaseTestingUtility.KEYS;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>    // Create a "non-uniform" test set with the following characteristics:<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    // a) Unequal number of keys per region<a name="line.133"></a>
+<span class="sourceLineNo">134</span><a name="line.134"></a>
+<span class="sourceLineNo">135</span>    // Don't use integer as a multiple, so that we have a number of keys that is<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    // not a multiple of the number of regions<a name="line.136"></a>
+<span class="sourceLineNo">137</span>    int numKeys = (int) (starterKeys.length * 10.33F);<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
+<span class="sourceLineNo">139</span>    List&lt;byte[]&gt; keys = new ArrayList&lt;&gt;();<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    for (int i = 0; i &lt; numKeys; i++) {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>      int kIdx = i % starterKeys.length;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>      byte[] k = starterKeys[kIdx];<a name="line.142"></a>
+<span class="sourceLineNo">143</span>      byte[] cp = new byte[k.length + 1];<a name="line.143"></a>
+<span class="sourceLineNo">144</span>      System.arraycopy(k, 0, cp, 0, k.length);<a name="line.144"></a>
+<span class="sourceLineNo">145</span>      cp[k.length] = new Integer(i % 256).byteValue();<a name="line.145"></a>
+<span class="sourceLineNo">146</span>      keys.add(cp);<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>    // b) Same duplicate keys (showing multiple Gets/Puts to the same row, which<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    // should work)<a name="line.150"></a>
+<span class="sourceLineNo">151</span>    // c) keys are not in sorted order (within a region), to ensure that the<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    // sorting code and index mapping doesn't break the functionality<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    for (int i = 0; i &lt; 100; i++) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>      int kIdx = i % starterKeys.length;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>      byte[] k = starterKeys[kIdx];<a name="line.155"></a>
+<span class="sourceLineNo">156</span>      byte[] cp = new byte[k.length + 1];<a name="line.156"></a>
+<span class="sourceLineNo">157</span>      System.arraycopy(k, 0, cp, 0, k.length);<a name="line.157"></a>
+<span class="sourceLineNo">158</span>      cp[k.length] = new Integer(i % 256).byteValue();<a name="line.158"></a>
+<span class="sourceLineNo">159</span>      keys.add(cp);<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    }<a name="line.160"></a>
+<span class="sourceLineNo">161</span>    return keys.toArray(new byte [][] {new byte [] {}});<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><a name="line.164"></a>
+<span class="sourceLineNo">165</span>  /**<a name="line.165"></a>
+<span class="sourceLineNo">166</span>   * This is for testing the active number of threads that were used while<a name="line.166"></a>
+<span class="sourceLineNo">167</span>   * doing a batch operation. It inserts one row per region via the batch<a name="line.167"></a>
+<span class="sourceLineNo">168</span>   * operation, and then checks the number of active threads.<a name="line.168"></a>
+<span class="sourceLineNo">169</span>   * For HBASE-3553<a name="line.169"></a>
+<span class="sourceLineNo">170</span>   * @throws IOException<a name="line.170"></a>
+<span class="sourceLineNo">171</span>   * @throws InterruptedException<a name="line.171"></a>
+<span class="sourceLineNo">172</span>   * @throws NoSuchFieldException<a name="line.172"></a>
+<span class="sourceLineNo">173</span>   * @throws SecurityException<a name="line.173"></a>
+<span class="sourceLineNo">174</span>   */<a name="line.174"></a>
+<span class="sourceLineNo">175</span>  @Test(timeout=300000)<a name="line.175"></a>
+<span class="sourceLineNo">176</span>  public void testActiveThreadsCount() throws Exception {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    UTIL.getConfiguration().setLong("hbase.htable.threads.coresize", slaves + 1);<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    try (Connection connection = ConnectionFactory.createConnection(UTIL.getConfiguration())) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>      ThreadPoolExecutor executor = HTable.getDefaultExecutor(UTIL.getConfiguration());<a name="line.179"></a>
+<span class="sourceLineNo">180</span>      try {<a name="line.180"></a>
+<span class="sourceLineNo">181</span>        try (Table t = connection.getTable(TEST_TABLE, executor)) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>          List&lt;Put&gt; puts = constructPutRequests(); // creates a Put for every region<a name="line.182"></a>
+<span class="sourceLineNo">183</span>          t.batch(puts, null);<a name="line.183"></a>
+<span class="sourceLineNo">184</span>          HashSet&lt;ServerName&gt; regionservers = new HashSet&lt;&gt;();<a name="line.184"></a>
+<span class="sourceLineNo">185</span>          try (RegionLocator locator = connection.getRegionLocator(TEST_TABLE)) {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>            for (Row r : puts) {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>              HRegionLocation location = locator.getRegionLocation(r.getRow());<a name="line.187"></a>
+<span class="sourceLineNo">188</span>              regionservers.add(location.getServerName());<a name="line.188"></a>
+<span class="sourceLineNo">189</span>            }<a name="line.189"></a>
+<span class="sourceLineNo">190</span>          }<a name="line.190"></a>
+<span class="sourceLineNo">191</span>          assertEquals(regionservers.size(), executor.getLargestPoolSize());<a name="line.191"></a>
+<span class="sourceLineNo">192</span>        }<a name="line.192"></a>
+<span class="sourceLineNo">193</span>      } finally {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>        executor.shutdownNow();<a name="line.194"></a>
+<span class="sourceLineNo">195</span>      }<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    }<a name="line.196"></a>
+<span class="sourceLineNo">197</span>  }<a name="line.197"></a>
+<span class="sourceLineNo">198</span><a name="line.198"></a>
+<span class="sourceLineNo">199</span>  @Test(timeout=300000)<a name="line.199"></a>
+<span class="sourceLineNo">200</span>  public void testBatchWithGet() throws Exception {<a name="line.200"></a>
+<span class="sourceLineNo">201</span>    LOG.info("test=testBatchWithGet");<a name="line.201"></a>
+<span class="sourceLineNo">202</span>    Table table = UTIL.getConnection().getTable(TEST_TABLE);<a name="line.202"></a>
+<span class="sourceLineNo">203</span><a name="line.203"></a>
+<span class="sourceLineNo">204</span>    // load test data<a name="line.204"></a>
+<span class="sourceLineNo">205</span>    List&lt;Put&gt; puts = constructPutRequests();<a name="line.205"></a>
+<span class="sourceLineNo">206</span>    table.batch(puts, null);<a name="line.206"></a>
+<span class="sourceLineNo">207</span><a name="line.207"></a>
+<span class="sourceLineNo">208</span>    // create a list of gets and run it<a name="line.208"></a>
+<span class="sourceLineNo">209</span>    List&lt;Row&gt; gets = new ArrayList&lt;&gt;();<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    for (byte[] k : KEYS) {<a name="line.210"></a>
+<span class="sourceLineNo">211</span>      Get get = new Get(k);<a name="line.211"></a>
+<span class="sourceLineNo">212</span>      get.addColumn(BYTES_FAMILY, QUALIFIER);<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      gets.add(get);<a name="line.213"></a>
+<span class="sourceLineNo">214</span>    }<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    Result[] multiRes = new Result[gets.size()];<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    table.batch(gets, multiRes);<a name="line.216"></a>
+<span class="sourceLineNo">217</span><a name="line.217"></a>
+<span class="sourceLineNo">218</span>    // Same gets using individual call API<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    List&lt;Result&gt; singleRes = new ArrayList&lt;&gt;();<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    for (Row get : gets) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>      singleRes.add(table.get((Get) get));<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    }<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    // Compare results<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    Assert.assertEquals(singleRes.size(), multiRes.length);<a name="line.224"></a>
+<span class="sourceLineNo">225</span>    for (int i = 0; i &lt; singleRes.size(); i++) {<a name="line.225"></a>
+<span class="sourceLineNo">226</span>      Assert.assertTrue(singleRes.get(i).containsColumn(BYTES_FAMILY, QUALIFIER));<a name="line.226"></a>
+<span class="sourceLineNo">227</span>      Cell[] singleKvs = singleRes.get(i).rawCells();<a name="line.227"></a>
+<span class="sourceLineNo">228</span>      Cell[] multiKvs = multiRes[i].rawCells();<a name="line.228"></a>
+<span class="sourceLineNo">229</span>      for (int j = 0; j &lt; singleKvs.length; j++) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>        Assert.assertEquals(singleKvs[j], multiKvs[j]);<a name="line.230"></a>
+<span class="sourceLineNo">231</span>        Assert.assertEquals(0, Bytes.compareTo(CellUtil.cloneValue(singleKvs[j]),<a name="line.231"></a>
+<span class="sourceLineNo">232</span>            CellUtil.cloneValue(multiKvs[j])));<a name="line.232"></a>
+<span class="sourceLineNo">233</span>      }<a name="line.233"></a>
+<span class="sourceLineNo">234</span>    }<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    table.close();<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>  @Test<a name="line.238"></a>
+<span class="sourceLineNo">239</span>  public void testBadFam() throws Exception {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>    LOG.info("test=testBadFam");<a name="line.240"></a>
+<span class="sourceLineNo">241</span>    Table table = UTIL.getConnection().getTable(TEST_TABLE);<a name="line.241"></a>
+<span class="sourceLineNo">242</span><a name="line.242"></a>
+<span class="sourceLineNo">243</span>    List&lt;Row&gt; actions = new ArrayList&lt;&gt;();<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    Put p = new Put(Bytes.toBytes("row1"));<a name="line.244"></a>
+<span class="sourceLineNo">245</span>    p.addColumn(Bytes.toBytes("bad_family"), Bytes.toBytes("qual"), Bytes.toBytes("value"));<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    actions.add(p);<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    p = new Put(Bytes.toBytes("row2"));<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    p.addColumn(BYTES_FAMILY, Bytes.toBytes("qual"), Bytes.toBytes("value"));<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    actions.add(p);<a name="line.249"></a>
 <span class="sourceLineNo">250</span><a name="line.250"></a>
-<span class="sourceLineNo">251</span>    Object [] r = new Object[actions.size()];<a name="line.251"></a>
-<span class="sourceLineNo">252</span>    try {<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      table.batch(actions, r);<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      fail();<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    } catch (RetriesExhaustedWithDetailsException ex) {<a name="line.255"></a>
-<span class="sourceLineNo">256</span>      LOG.debug(ex.toString(), ex);<a name="line.256"></a>
-<span class="sourceLineNo">257</span>      // good!<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      assertFalse(ex.mayHaveClusterIssues());<a name="line.258"></a>
-<span class="sourceLineNo">259</span>    }<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    assertEquals(2, r.length);<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    assertTrue(r[0] instanceof Throwable);<a name="line.261"></a>
-<span class="sourceLineNo">262</span>    assertTrue(r[1] instanceof Result);<a name="line.262"></a>
-<span class="sourceLineNo">263</span>    table.close();<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>  @Test (timeout=300000)<a name="line.266"></a>
-<span class="sourceLineNo">267</span>  public void testFlushCommitsNoAbort() throws Exception {<a name="line.267"></a>
-<span class="sourceLineNo">268</span>    LOG.info("test=testFlushCommitsNoAbort");<a name="line.268"></a>
-<span class="sourceLineNo">269</span>    doTestFlushCommits(false);<a name="line.269"></a>
-<span class="sourceLineNo">270</span>  }<a name="line.270"></a>
-<span class="sourceLineNo">271</span><a name="line.271"></a>
-<span class="sourceLineNo">272</span>  /**<a name="line.272"></a>
-<span class="sourceLineNo">273</span>   * Only run one Multi test with a forced RegionServer abort. Otherwise, the<a name="line.273"></a>
-<span class="sourceLineNo">274</span>   * unit tests will take an unnecessarily long time to run.<a name="line.274"></a>
-<span class="sourceLineNo">275</span>   *<a name="line.275"></a>
-<span class="sourceLineNo">276</span>   * @throws Exception<a name="line.276"></a>
-<span class="sourceLineNo">277</span>   */<a name="line.277"></a>
-<span class="sourceLineNo">278</span>  @Test (timeout=360000)<a name="line.278"></a>
-<span class="sourceLineNo">279</span>  public void testFlushCommitsWithAbort() throws Exception {<a name="line.279"></a>
-<span class="sourceLineNo">280</span>    LOG.info("test=testFlushCommitsWithAbort");<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    doTestFlushCommits(true);<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>  /**<a name="line.284"></a>
-<span class="sourceLineNo">285</span>   * Set table auto flush to false and test flushing commits<a name="line.285"></a>
-<span class="sourceLineNo">286</span>   * @param doAbort true if abort one regionserver in the testing<a name="line.286"></a>
-<span class="sourceLineNo">287</span>   * @throws Exception<a name="line.287"></a>
-<span class="sourceLineNo">288</span>   */<a name="line.288"></a>
-<span class="sourceLineNo">289</span>  private void doTestFlushCommits(boolean doAbort) throws Exception {<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    // Load the data<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    LOG.info("get new table");<a name="line.291"></a>
-<span class="sourceLineNo">292</span>    Table table = UTIL.getConnection().getTable(TEST_TABLE);<a name="line.292"></a>
-<span class="sourceLineNo">293</span><a name="line.293"></a>
-<span class="sourceLineNo">294</span>    LOG.info("constructPutRequests");<a name="line.294"></a>
-<span class="sourceLineNo">295</span>    List&lt;Put&gt; puts = constructPutRequests();<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    table.put(puts);<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    LOG.info("puts");<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    final int liveRScount = UTIL.getMiniHBaseCluster().getLiveRegionServerThreads()<a name="line.298"></a>
-<span class="sourceLineNo">299</span>        .size();<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    assert liveRScount &gt; 0;<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    JVMClusterUtil.RegionServerThread liveRS = UTIL.getMiniHBaseCluster()<a name="line.301"></a>
-<span class="sourceLineNo">302</span>        .getLiveRegionServerThreads().get(0);<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    if (doAbort) {<a name="line.303"></a>
-<span class="sourceLineNo">304</span>      liveRS.getRegionServer().abort("Aborting for tests",<a name="line.304"></a>
-<span class="sourceLineNo">305</span>          new Exception("doTestFlushCommits"));<a name="line.305"></a>
-<span class="sourceLineNo">306</span>      // If we wait for no regions being online after we abort the server, we<a name="line.306"></a>
-<span class="sourceLineNo">307</span>      // could ensure the master has re-assigned the regions on killed server<a name="line.307"></a>
-<span class="sourceLineNo">308</span>      // after writing successfully. It means the server we aborted is dead<a name="line.308"></a>
-<span class="sourceLineNo">309</span>      // and detected by matser<a name="line.309"></a>
-<span class="sourceLineNo">310</span>      while (liveRS.getRegionServer().getNumberOfOnlineRegions() != 0) {<a name="line.310"></a>
-<span class="sourceLineNo">311</span>        Thread.sleep(100);<a name="line.311"></a>
-<span class="sourceLineNo">312</span>      }<a name="line.312"></a>
-<span class="sourceLineNo">313</span>      // try putting more keys after the abort. same key/qual... just validating<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      // no exceptions thrown<a name="line.314"></a>
-<span class="sourceLineNo">315</span>      puts = constructPutRequests();<a name="line.315"></a>
-<span class="sourceLineNo">316</span>      table.put(puts);<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>    LOG.info("validating loaded data");<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    validateLoadedData(table);<a name="line.320"></a>
-<span class="sourceLineNo">321</span><a name="line.321"></a>
-<span class="sourceLineNo">322</span>    // Validate server and region count<a name="line.322"></a>
-<span class="sourceLineNo">323</span>    List&lt;JVMClusterUtil.RegionServerThread&gt; liveRSs = UTIL.getMiniHBaseCluster().getLiveRegionServerThreads();<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    int count = 0;<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    for (JVMClusterUtil.RegionServerThread t: liveRSs) {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>      count++;<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      LOG.info("Count=" + count + ", Alive=" + t.getRegionServer());<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    }<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    LOG.info("Count=" + count);<a name="line.329"></a>
-<span class="sourceLineNo">330</span>    Assert.assertEquals("Server count=" + count + ", abort=" + doAbort,<a name="line.330"></a>
-<span class="sourceLineNo">331</span>        (doAbort ? (liveRScount - 1) : liveRScount), count);<a name="line.331"></a>
-<span class="sourceLineNo">332</span>    if (doAbort) {<a name="line.332"></a>
-<span class="sourceLineNo">333</span>      UTIL.getMiniHBaseCluster().waitOnRegionServer(0);<a name="line.333"></a>
-<span class="sourceLineNo">334</span>      UTIL.waitFor(15 * 1000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.334"></a>
-<span class="sourceLineNo">335</span>        @Override<a name="line.335"></a>
-<span class="sourceLineNo">336</span>        public boolean evaluate() throws Exception {<a name="line.336"></a>
-<span class="sourceLineNo">337</span>          // Master is also a regionserver, so the count is liveRScount<a name="line.337"></a>
-<span class="sourceLineNo">338</span>          return UTIL.getMiniHBaseCluster().getMaster()<a name="line.338"></a>
-<span class="sourceLineNo">339</span>              .getClusterMetrics().getLiveServerMetrics().size() == liveRScount;<a name="line.339"></a>
-<span class="sourceLineNo">340</span>        }<a name="line.340"></a>
-<span class="sourceLineNo">341</span>      });<a name="line.341"></a>
-<span class="sourceLineNo">342</span>      UTIL.waitFor(15 * 1000, UTIL.predicateNoRegionsInTransition());<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>    table.close();<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    LOG.info("done");<a name="line.346"></a>
-<span class="sourceLineNo">347</span>  }<a name="line.347"></a>
-<span class="sourceLineNo">348</span><a name="line.348"></a>
-<span class="sourceLineNo">349</span>  @Test (timeout=300000)<a name="line.349"></a>
-<span class="sourceLineNo">350</span>  public void testBatchWithPut() throws Exception {<a name="line.350"></a>
-<span class="sourceLineNo">351</span>    LOG.info("test=testBatchWithPut");<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    Table table = CONNECTION.getTable(TEST_TABLE);<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    // put multiple rows using a batch<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    List&lt;Put&gt; puts = constructPutRequests();<a name="line.354"></a>
-<span class="sourceLineNo">355</span><a name="line.355"></a>
-<span class="sourceLineNo">356</span>    Object[] results = new Object[puts.size()];<a name="line.356"></a>
-<span class="sourceLineNo">357</span>    table.batch(puts, results);<a name="line.357"></a>
-<span class="sourceLineNo">358</span>    validateSizeAndEmpty(results, KEYS.length);<a name="line.358"></a>
-<span class="sourceLineNo">359</span><a name="line.359"></a>
-<span class="sourceLineNo">360</span>    if (true) {<a name="line.360"></a>
-<span class="sourceLineNo">361</span>      int liveRScount = UTIL.getMiniHBaseCluster().getLiveRegionServerThreads().size();<a name="line.361"></a>
-<span class="sourceLineNo">362</span>      assert liveRScount &gt; 0;<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      JVMClusterUtil.RegionServerThread liveRS =<a name="line.363"></a>
-<span class="sourceLineNo">364</span>        UTIL.getMiniHBaseCluster().getLiveRegionServerThreads().get(0);<a name="line.364"></a>
-<span class="sourceLineNo">365</span>      liveRS.getRegionServer().abort("Aborting for tests", new Exception("testBatchWithPut"));<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      puts = constructPutRequests();<a name="line.366"></a>
-<span class="sourceLineNo">367</span>      try {<a name="line.367"></a>
-<span class="sourceLineNo">368</span>        results = new Object[puts.size()];<a name="line.368"></a>
-<span class="sourceLineNo">369</span>        table.batch(puts, results);<a name="line.369"></a>
-<span class="sourceLineNo">370</span>      } catch (RetriesExhaustedWithDetailsException ree) {<a name="line.370"></a>
-<span class="sourceLineNo">371</span>        LOG.info(ree.getExhaustiveDescription());<a name="line.371"></a>
-<span class="sourceLineNo">372</span>        table.close();<a name="line.372"></a>
-<span class="sourceLineNo">373</span>        throw ree;<a name="line.373"></a>
-<span class="sourceLineNo">374</span>      }<a name="line.374"></a>
-<span class="sourceLineNo">375</span>      validateSizeAndEmpty(results, KEYS.length);<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    }<a name="line.376"></a>
-<span class="sourceLineNo">377</span><a name="line.377"></a>
-<span class="sourceLineNo">378</span>    validateLoadedData(table);<a name="line.378"></a>
-<span class="sourceLineNo">379</span>    table.close();<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  }<a name="line.380"></a>
-<span class="sourceLineNo">381</span><a name="line.381"></a>
-<span class="sourceLineNo">382</span>  @Test(timeout=300000)<a name="line.382"></a>
-<span class="sourceLineNo">383</span>  public void testBatchWithDelete() throws Exception {<a name="line.383"></a>
-<span class="sourceLineNo">384</span>    LOG.info("test=testBatchWithDelete");<a name="line.384"></a>
-<span class="sourceLineNo">385</span>    Table table = UTIL.getConnection().getTable(TEST_TABLE);<a name="line.385"></a>
-<span class="sourceLineNo">386</span><a name="line.386"></a>
-<span class="sourceLineNo">387</span>    // Load some data<a name="line.387"></a>
-<span class="sourceLineNo">388</span>    List&lt;Put&gt; puts = constructPutRequests();<a name="line.388"></a>
-<span class="sourceLineNo">389</span>    Object[] results = new Object[puts.size()];<a name="line.389"></a>
-<span class="sourceLineNo">390</span>    table.batch(puts, results);<a name="line.390"></a>
-<span class="sourceLineNo">391</span>    validateSizeAndEmpty(results, KEYS.length);<a name="line.391"></a>
-<span class="sourceLineNo">392</span><a name="line.392"></a>
-<span class="sourceLineNo">393</span>    // Deletes<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    List&lt;Row&gt; deletes = new ArrayList&lt;&gt;();<a name="line.394"></a>
-<span class="sourceLineNo">395</span>    for (int i = 0; i &lt; KEYS.length; i++) {<a name="line.395"></a>
-<span class="sourceLineNo">396</span>      Delete delete = new Delete(KEYS[i]);<a name="line.396"></a>
-<span class="sourceLineNo">397</span>      delete.addFamily(BYTES_FAMILY);<a name="line.397"></a>
-<span class="sourceLineNo">398</span>      deletes.add(delete);<a name="line.398"></a>
-<span class="sourceLineNo">399</span>    }<a name="line.399"></a>
-<span class="sourceLineNo">400</span>    results= new Object[deletes.size()];<a name="line.400"></a>
-<span class="sourceLineNo">401</span>    table.batch(deletes, results);<a name="line.401"></a>
-<span class="sourceLineNo">402</span>    validateSizeAndEmpty(results, KEYS.length);<a name="line.402"></a>
-<span class="sourceLineNo">403</span><a name="line.403"></a>
-<span class="sourceLineNo">404</span>    // Get to make sure ...<a name="line.404"></a>
-<span class="sourceLineNo">405</span>    for (byte[] k : KEYS) {<a name="line.405"></a>
-<span class="sourceLineNo">406</span>      Get get = new Get(k);<a name="line.406"></a>
-<span class="sourceLineNo">407</span>      get.addColumn(BYTES_FAMILY, QUALIFIER);<a name="line.407"></a>
-<span class="sourceLineNo">408</span>      Assert.assertFalse(table.exists(get));<a name="line.408"></a>
-<span class="sourceLineNo">409</span>    }<a name="line.409"></a>
-<span class="sourceLineNo">410</span>    table.close();<a name="line.410"></a>
-<span class="sourceLineNo">411</span>  }<a name="line.411"></a>
-<span class="sourceLineNo">412</span><a name="line.412"></a>
-<span class="sourceLineNo">413</span>  @Test(timeout=300000)<a name="line.413"></a>
-<span class="sourceLineNo">414</span>  public void testHTableDeleteWithList() throws Exception {<a name="line.414"></a>
-<span class="sourceLineNo">415</span>    LOG.info("test=testHTableDeleteWithList");<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    Table table = UTIL.getConnection().getTable(TEST_TABLE);<a name="line.416"></a>
-<span class="sourceLineNo">417</span><a name="line.417"></a>
-<span class="sourceLineNo">418</span>    // Load some data<a name="line.418"></a>
-<span class="sourceLineNo">419</span>    List&lt;Put&gt; puts = constructPutRequests();<a name="line.419"></a>
-<span class="sourceLineNo">420</span>    Object[] results = new Object[puts.size()];<a name="line.420"></a>
-<span class="sourceLineNo">421</span>    table.batch(puts, results);<a name="line.421"></a>
-<span class="sourceLineNo">422</span>    validateSizeAndEmpty(results, KEYS.length);<a name="line.422"></a>
-<span class="sourceLineNo">423</span><a name="line.423"></a>
-<span class="sourceLineNo">424</span>    // Deletes<a name="line.424"></a>
-<span class="sourceLineNo">425</span>    ArrayList&lt;Delete&gt; deletes = new ArrayList&lt;&gt;();<a name="line.425"></a>
-<span class="sourceLineNo">426</span>    for (int i = 0; i &lt; KEYS.length; i++) {<a name="line.426"></a>
-<span class="sourceLineNo">427</span>      Delete delete = new Delete(KEYS[i]);<a name="line.427"></a>
-<span class="sourceLineNo">428</span>      delete.addFamily(BYTES_FAMILY);<a name="line.428"></a>
-<span class="sourceLineNo">429</span>      deletes.add(delete);<a name="line.429"></a>
-<span class="sourceLineNo">430</span>    }<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    table.delete(deletes);<a name="line.431"></a>
-<span class="sourceLineNo">432</span>    Assert.assertTrue(deletes.isEmpty());<a name="line.432"></a>
-<span class="sourceLineNo">433</span><a name="line.433"></a>
-<span class="sourceLineNo">434</span>    // Get to make sure ...<a name="line.434"></a>
-<span class="sourceLineNo">435</span>    for (byte[] k : KEYS) {<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      Get get = new Get(k);<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      get.addColumn(BYTES_FAMILY, QUALIFIER);<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      Assert.assertFalse(table.exists(get));<a name="line.438"></a>
-<span class="sourceLineNo">439</span>    }<a name="line.439"></a>
-<span class="sourceLineNo">440</span>    table.close();<a name="line.440"></a>
-<span class="sourceLineNo">441</span>  }<a name="line.441"></a>
-<span class="sourceLineNo">442</span><a name="line.442"></a>
-<span class="sourceLineNo">443</span>  @Test(timeout=300000)<a name="line.443"></a>
-<span class="sourceLineNo">444</span>  public void testBatchWithManyColsInOneRowGetAndPut() throws Exception {<a name="line.444"></a>
-<span class="sourceLineNo">445</span>    LOG.info("test=testBatchWithManyColsInOneRowGetAndPut");<a name="line.445"></a>
-<span class="sourceLineNo">446</span>    Table table = UTIL.getConnection().getTable(TEST_TABLE);<a name="line.446"></a>
-<span class="sourceLineNo">447</span><a name="line.447"></a>
-<span class="sourceLineNo">448</span>    List&lt;Row&gt; puts = new ArrayList&lt;&gt;();<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    for (int i = 0; i &lt; 100; i++) {<a name="line.449"></a>
-<span class="sourceLineNo">450</span>      Put put = new Put(ONE_ROW);<a name="line.450"></a>
-<span class="sourceLineNo">451</span>      byte[] qual = Bytes.toBytes("column" + i);<a name="line.451"></a>
-<span class="sourceLineNo">452</span>      put.addColumn(BYTES_FAMILY, qual, VALUE);<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      puts.add(put);<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    }<a name="line.454"></a>
-<span class="sourceLineNo">455</span>    Object[] results = new Object[puts.size()];<a name="line.455"></a>
-<span class="sourceLineNo">456</span>    table.batch(puts, results);<a name="line.456"></a>
-<span class="sourceLineNo">457</span><a name="line.457"></a>
-<span class="sourceLineNo">458</span>    // validate<a name="line.458"></a>
-<span class="sourceLineNo">459</span>    validateSizeAndEmpty(results, 100);<a name="line.459"></a>
-<span class="sourceLineNo">460</span><a name="line.460"></a>
-<span class="sourceLineNo">461</span>    // get the data back and validate that it is correct<a name="line.461"></a>
-<span class="sourceLineNo">462</span>    List&lt;Row&gt; gets = new ArrayList&lt;&gt;();<a name="line.462"></a>
-<span class="sourceLineNo">463</span>    for (int i = 0; i &lt; 100; i++) {<a name="line.463"></a>
-<span class="sourceLineNo">464</span>      Get get = new Get(ONE_ROW);<a name="line.464"></a>
-<span class="sourceLineNo">465</span>      byte[] qual = Bytes.toBytes("column" + i);<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      get.addColumn(BYTES_FAMILY, qual);<a name="line.466"></a>
-<span class="sourceLineNo">467</span>      gets.add(get);<a name="line.467"></a>
-<span class="sourceLineNo">468</span>    }<a name="line.468"></a>
-<span class="sourceLineNo">469</span><a name="line.469"></a>
-<span class="sourceLineNo">470</span>    Object[] multiRes = new Object[gets.size()];<a name="line.470"></a>
-<span class="sourceLineNo">471</span>    table.batch(gets, multiRes);<a name="line.471"></a>
-<span class="sourceLineNo">472</span><a name="line.472"></a>
-<span class="sourceLineNo">473</span>    int idx = 0;<a name="line.473"></a>
-<span class="sourceLineNo">474</span>    for (Object r : multiRes) {<a name="line.474"></a>
-<span class="sourceLineNo">475</span>      byte[] qual = Bytes.toBytes("column" + idx);<a name="line.475"></a>
-<span class="sourceLineNo">476</span>      validateResult(r, qual, VALUE);<a name="line.476"></a>
-<span class="sourceLineNo">477</span>      idx++;<a name="line.477"></a>
-<span class="sourceLineNo">478</span>    }<a name="line.478"></a>
-<span class="sourceLineNo">479</span>    table.close();<a name="line.479"></a>
-<span class="sourceLineNo">480</span>  }<a name="line.480"></a>
-<span class="sourceLineNo">481</span><a name="line.481"></a>
-<span class="sourceLineNo">482</span>  @Test(timeout=300000)<a name="line.482"></a>
-<span class="sourceLineNo">483</span>  public void testBatchWithIncrementAndAppend() throws Exception {<a name="line.483"></a>
-<span class="sourceLineNo">484</span>    LOG.info("test=testBatchWithIncrementAndAppend");<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    final byte[] QUAL1 = Bytes.toBytes("qual1");<a name="line.485"></a>
-<span class="sourceLineNo">486</span>    final byte[] QUAL2 = Bytes.toBytes("qual2");<a name="line.486"></a>
-<span class="sourceLineNo">487</span>    final byte[] QUAL3 = Bytes.toBytes("qual3");<a name="line.487"></a>
-<span class="sourceLineNo">488</span>    final byte[] QUAL4 = Bytes.toBytes("qual4");<a name="line.488"></a>
-<span class="sourceLineNo">489</span>    Table table = UTIL.getConnection().getTable(TEST_TABLE);<a name="line.489"></a>
-<span class="sourceLineNo">490</span>    Delete d = new Delete(ONE_ROW);<a name="line.490"></a>
-<span class="sourceLineNo">491</span>    table.delete(d);<a name="line.491"></a>
-<span class="sourceLineNo">492</span>    Put put = new Put(ONE_ROW);<a name="line.492"></a>
-<span class="sourceLineNo">493</span>    put.addColumn(BYTES_FAMILY, QUAL1, Bytes.toBytes("abc"));<a name="line.493"></a>
-<span class="sourceLineNo">494</span>    put.addColumn(BYTES_FAMILY, QUAL2, Bytes.toBytes(1L));<a name="line.494"></a>
-<span class="sourceLineNo">495</span>    table.put(put);<a name="line.495"></a>
-<span class="sourceLineNo">496</span><a name="line.496"></a>
-<span class="sourceLineNo">497</span>    Increment inc = new Increment(ONE_ROW);<a name="line.497"></a>
-<span class="sourceLineNo">498</span>    inc.addColumn(BYTES_FAMILY, QUAL2, 1);<a name="line.498"></a>
-<span class="sourceLineNo">499</span>    inc.addColumn(BYTES_FAMILY, QUAL3, 1);<a name="line.499"></a>
-<span class="sourceLineNo">500</span><a name="line.500"></a>
-<span class="sourceLineNo">501</span>    Append a = new Append(ONE_ROW);<a name="line.501"></a>
-<span class="sourceLineNo">502</span>    a.addColumn(BYTES_FAMILY, QUAL1, Bytes.toBytes("def"));<a name="line.502"></a>
-<span class="sourceLineNo">503</span>    a.addColumn(BYTES_FAMILY, QUAL4, Bytes.toBytes("xyz"));<a name="line.503"></a>
-<span class="sourceLineNo">504</span>    List&lt;Row&gt; actions = new ArrayList&lt;&gt;();<a name="line.504"></a>
-<span class="sourceLineNo">505</span>    actions.add(inc);<a name="line.505"></a>
-<span class="sourceLineNo">506</span>    actions.add(a);<a name="line.506"></a>
-<span class="sourceLineNo">507</span><a name="line.507"></a>
-<span class="sourceLineNo">508</span>    Object[] multiRes = new Object[actions.size()];<a name="line.508"></a>
-<span class="sourceLineNo">509</span>    table.batch(actions, multiRes);<a name="line.509"></a>
-<span class="sourceLineNo">510</span>    validateResult(multiRes[1], QUAL1, Bytes.toBytes("abcdef"));<a name="line.510"></a>
-<span class="sourceLineNo">511</span>    validateResult(multiRes[1], QUAL4, Bytes.toBytes("xyz"));<a name="line.511"></a>
-<span class="sourceLineNo">512</span>    validateResult(multiRes[0], QUAL2, Bytes.toBytes(2L));<a name="line.512"></a>
-<span class="sourceLineNo">513</span>    validateResult(multiRes[0], QUAL3, Bytes.toBytes(1L));<a name="line.513"></a>
-<span class="sourceLineNo">514</span>    table.close();<a name="line.514"></a>
-<span class="sourceLineNo">515</span>  }<a name="line.515"></a>
-<span class="sourceLineNo">516</span><a name="line.516"></a>
-<span class="sourceLineNo">517</span>  @Test(timeout=300000)<a name="line.517"></a>
-<span class="sourceLineNo">518</span>  public void testNonceCollision() throws Exception {<a name="line.518"></a>
-<span class="sourceLineNo">519</span>    LOG.info("test=testNonceCollision");<a name="line.519"></a>
-<span class="sourceLineNo">520</span>    final Connection connection = ConnectionFactory.createConnection(UTIL.getConfiguration());<a name="line.520"></a>
-<span class="sourceLineNo">521</span>    Table table = connection.getTable(TEST_TABLE);<a name="line.521"></a>
-<span class="sourceLineNo">522</span>    Put put = new Put(ONE_ROW);<a name="line.522"></a>
-<span class="sourceLineNo">523</span>    put.addColumn(BYTES_FAMILY, QUALIFIER, Bytes.toBytes(0L));<a name="line.523"></a>
-<span class="sourceLineNo">524</span><a name="line.524"></a>
-<span class="sourceLineNo">525</span>    // Replace nonce manager with the one that returns each nonce twice.<a name="line.525"></a>
-<span class="sourceLineNo">526</span>    NonceGenerator cnm = new NonceGenerator() {<a name="line.526"></a>
-<span class="sourceLineNo">527</span><a name="line.527"></a>
-<span class="sourceLineNo">528</span>      private final PerClientRandomNonceGenerator delegate = PerClientRandomNonceGenerator.get();<a name="line.528"></a>
+<span class="sourceLineNo">251</span>    // row1 and row2 should be in the same region.<a name="line.251"></a>
+<span class="sourceLineNo">252</span><a name="line.252"></a>
+<span class="sourceLineNo">253</span>    Object [] r = new Object[actions.size()];<a name="line.253"></a>
+<span class="sourceLineNo">254</span>    try {<a name="line.254"></a>
+<span class="sourceLineNo">255</span>      table.batch(actions, r);<a name="line.255"></a>
+<span class="sourceLineNo">256</span>      fail();<a name="line.256"></a>
+<span class="sourceLineNo">257</span>    } catch (RetriesExhaustedWithDetailsException ex) {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>      LOG.debug(ex.toString(), ex);<a name="line.258"></a>
+<span class="sourceLineNo">259</span>      // good!<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      assertFalse(ex.mayHaveClusterIssues());<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    }<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    assertEquals(2, r.length);<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    assertTrue(r[0] instanceof Throwable);<a name="line.263"></a>
+<span class="sourceLineNo">264</span>    assertTrue(r[1] instanceof Result);<a name="line.264"></a>
+<span class="sourceLineNo">265</span>    table.close();<a name="line.265"></a>
+<span class="sourceLineNo">266</span>  }<a name="line.266"></a>
+<span class="sourceLineNo">267</span><a name="line.267"></a>
+<span class="sourceLineNo">268</span>  @Test (timeout=300000)<a name="line.268"></a>
+<span class="sourceLineNo">269</span>  public void testFlushCommitsNoAbort() throws Exception {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>    LOG.info("test=testFlushCommitsNoAbort");<a name="line.270"></a>
+<span class="sourceLineNo">271</span>    doTestFlushCommits(false);<a name="line.271"></a>
+<span class="sourceLineNo">272</span>  }<a name="line.272"></a>
+<span class="sourceLineNo">273</span><a name="line.273"></a>
+<span class="sourceLineNo">274</span>  /**<a name="line.274"></a>
+<span class="sourceLineNo">275</span>   * Only run one Multi test with a forced RegionServer abort. Otherwise, the<a name="line.275"></a>
+<span class="sourceLineNo">276</span>   * unit tests will take an unnecessarily long time to run.<a name="line.276"></a>
+<span class="sourceLineNo">277</span>   *<a name="line.277"></a>
+<span class="sourceLineNo">278</span>   * @throws Exception<a name="line.278"></a>
+<span class="sourceLineNo">279</span>   */<a name="line.279"></a>
+<span class="sourceLineNo">280</span>  @Test (timeout=360000)<a name="line.280"></a>
+<span class="sourceLineNo">281</span>  public void testFlushCommitsWithAbort() throws Exception {<a name="line.281"></a>
+<span class="sourceLineNo">282</span>    LOG.info("test=testFlushCommitsWithAbort");<a name="line.282"></a>
+<span class="sourceLineNo">283</span>    doTestFlushCommits(true);<a name="line.283"></a>
+<span class="sourceLineNo">284</span>  }<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>  /**<a name="line.286"></a>
+<span class="sourceLineNo">287</span>   * Set table auto flush to false and test flushing commits<a name="line.287"></a>
+<span class="sourceLineNo">288</span>   * @param doAbort true if abort one regionserver in the testing<a name="line.288"></a>
+<span class="sourceLineNo">289</span>   * @throws Exception<a name="line.289"></a>
+<span class="sourceLineNo">290</span>   */<a name="line.290"></a>
+<span class="sourceLineNo">291</span>  private void doTestFlushCommits(boolean doAbort) throws Exception {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>    // Load the data<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    LOG.info("get new table");<a name="line.293"></a>
+<span class="sourceLineNo">294</span>    Table table = UTIL.getConnection().getTable(TEST_TABLE);<a name="line.294"></a>
+<span class="sourceLineNo">295</span><a name="line.295"></a>
+<span class="sourceLineNo">296</span>    LOG.info("constructPutRequests");<a name="line.296"></a>
+<span class="sourceLineNo">297</span>    List&lt;Put&gt; puts = constructPutRequests();<a name="line.297"></a>
+<span class="sourceLineNo">298</span>    table.put(puts);<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    LOG.info("puts");<a name="line.299"></a>
+<span class="sourceLineNo">300</span>    final int liveRScount = UTIL.getMiniHBaseCluster().getLiveRegionServerThreads()<a name="line.300"></a>
+<span class="sourceLineNo">301</span>        .size();<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    assert liveRScount &gt; 0;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>    JVMClusterUtil.RegionServerThread liveRS = UTIL.getMiniHBaseCluster()<a name="line.303"></a>
+<span class="sourceLineNo">304</span>        .getLiveRegionServerThreads().get(0);<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    if (doAbort) {<a name="line.305"></a>
+<span class="sourceLineNo">306</span>      liveRS.getRegionServer().abort("Aborting for tests",<a name="line.306"></a>
+<span class="sourceLineNo">307</span>          new Exception("doTestFlushCommits"));<a name="line.307"></a>
+<span class="sourceLineNo">308</span>      // If we wait for no regions being online after we abort the server, we<a name="line.308"></a>
+<span class="sourceLineNo">309</span>      // could ensure the master has re-assigned the regions on killed server<a name="line.309"></a>
+<span class="sourceLineNo">310</span>      // after writing successfully. It means the server we aborted is dead<a name="line.310"></a>
+<span class="sourceLineNo">311</span>      // and detected by matser<a name="line.311"></a>
+<span class="sourceLineNo">312</span>      while (liveRS.getRegionServer().getNumberOfOnlineRegions() != 0) {<a name="line.312"></a>
+<span class="sourceLineNo">313</span>        Thread.sleep(100);<a name="line.313"></a>
+<span class="sourceLineNo">314</span>      }<a name="line.314"></a>
+<span class="sourceLineNo">315</span>      // try putting more keys after the abort. same key/qual... just validating<a name="line.315"></a>
+<span class="sourceLineNo">316</span>      // no exceptions thrown<a name="line.316"></a>
+<span class="sourceLineNo">317</span>      puts = constructPutRequests();<a name="line.317"></a>
+<span class="sourceLineNo">318</span>      table.put(puts);<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>    LOG.info("validating loaded data");<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    validateLoadedData(table);<a name="line.322"></a>
+<span class="sourceLineNo">323</span><a name="line.323"></a>
+<span class="sourceLineNo">324</span>    // Validate server and region count<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    List&lt;JVMClusterUtil.RegionServerThread&gt; liveRSs = UTIL.getMiniHBaseCluster().getLiveRegionServerThreads();<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    int count = 0;<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    for (JVMClusterUtil.RegionServerThread t: liveRSs) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>      count++;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>      LOG.info("Count=" + count + ", Alive=" + t.getRegionServer());<a name="line.329"></a>
+<span class="sourceLineNo">330</span>    }<a name="line.330"></a>
+<span class="sourceLineNo">331</span>    LOG.info("Count=" + count);<a name="line.331"></a>
+<span class="sourceLineNo">332</span>    Assert.assertEquals("Server count=" + count + ", abort=" + doAbort,<a name="line.332"></a>
+<span class="sourceLineNo">333</span>        (doAbort ? (liveRScount - 1) : liveRScount), count);<a name="line.333"></a>
+<span class="sourceLineNo">334</span>    if (doAbort) {<a name="line.334"></a>
+<span class="sourceLineNo">335</span>      UTIL.getMiniHBaseCluster().waitOnRegionServer(0);<a name="line.335"></a>
+<span class="sourceLineNo">336</span>      UTIL.waitFor(15 * 1000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.336"></a>
+<span class="sourceLineNo">337</span>        @Override<a name="line.337"></a>
+<span class="sourceLineNo">338</span>        public boolean evaluate() throws Exception {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>          // Master is also a regionserver, so the count is liveRScount<a name="line.339"></a>
+<span class="sourceLineNo">340</span>          return UTIL.getMiniHBaseCluster().getMaster()<a name="line.340"></a>
+<span class="sourceLineNo">341</span>              .getClusterMetrics().getLiveServerMetrics().size() == liveRScount;<a name="line.341"></a>
+<span class="sourceLineNo">342</span>        }<a name="line.342"></a>
+<span class="sourceLineNo">343</span>      });<a name="line.343"></a>
+<span class="sourceLineNo">344</span>      UTIL.waitFor(15 * 1000, UTIL.predicateNoRegionsInTransition());<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    }<a name="line.345"></a>
+<span class="sourceLineNo">346</span><a name="line.346"></a>
+<span class="sourceLineNo">347</span>    table.close();<a name="line.347"></a>
+<span class="sourceLineNo">348</span>    LOG.info("done");<a name="line.348"></a>
+<span class="sourceLineNo">349</span>  }<a name="line.349"></a>
+<span class="sourceLineNo">350</span><a name="line.350"></a>
+<span class="sourceLineNo">351</span>  @Test (timeout=300000)<a name="line.351"></a>
+<span class="sourceLineNo">352</span>  public void testBatchWithPut() throws Exception {<a name="line.352"></a>
+<span class="sourceLineNo">353</span>    LOG.info("test=testBatchWithPut");<a name="line.353"></a>
+<span class="sourceLineNo">354</span>    Table table = CONNECTION.getTable(TEST_TABLE);<a name="line.354"></a>
+<span class="sourceLineNo">355</span>    // put multiple rows using a batch<a name="line.355"></a>
+<span class="sourceLineNo">356</span>    List&lt;Put&gt; puts = constructPutRequests();<a name="line.356"></a>
+<span class="sourceLineNo">357</span><a name="line.357"></a>
+<span class="sourceLineNo">358</span>    Object[] results = new Object[puts.size()];<a name="line.358"></a>
+<span class="sourceLineNo">359</span>    table.batch(puts, results);<a name="line.359"></a>
+<span class="sourceLineNo">360</span>    validateSizeAndEmpty(results, KEYS.length);<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span>    if (true) {<a name="line.362"></a>
+<span class="sourceLineNo">363</span>      int liveRScount = UTIL.getMiniHBaseCluster().getLiveRegionServerThreads().size();<a name="line.363"></a>
+<span class="sourceLineNo">364</span>      assert liveRScount &gt; 0;<a name="line.364"></a>
+<span class="sourceLineNo">365</span>      JVMClusterUtil.RegionServerThread liveRS =<a name="line.365"></a>
+<span class="sourceLineNo">366</span>        UTIL.getMiniHBaseCluster().getLiveRegionServerThreads().get(0);<a name="line.366"></a>
+<span class="sourceLineNo">367</span>      liveRS.getRegionServer().abort("Aborting for tests", new Exception("testBatchWithPut"));<a name="line.367"></a>
+<span class="sourceLineNo">368</span>      puts = constructPutRequests();<a name="line.368"></a>
+<span class="sourceLineNo">369</span>      try {<a name="line.369"></a>
+<span class="sourceLineNo">370</span>        results = new Object[puts.size()];<a name="line.370"></a>
+<span class="sourceLineNo">371</span>        table.batch(puts, results);<a name="line.371"></a>
+<span class="sourceLineNo">372</span>      } catch (RetriesExhaustedWithDetailsException ree) {<a name="line.372"></a>
+<span class="sourceLineNo">373</span>        LOG.info(ree.getExhaustiveDescription());<a name="line.373"></a>
+<span class="sourceLineNo">374</span>        table.close();<a name="line.374"></a>
+<span class="sourceLineNo">375</span>        throw ree;<a name="line.375"></a>
+<span class="sourceLineNo">376</span>      }<a name="line.376"></a>
+<span class="sourceLineNo">377</span>      validateSizeAndEmpty(results, KEYS.length);<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    }<a name="line.378"></a>
+<span class="sourceLineNo">379</span><a name="line.379"></a>
+<span class="sourceLineNo">380</span>    validateLoadedData(table);<a name="line.380"></a>
+<span class="sourceLineNo">381</span>    table.close();<a name="line.381"></a>
+<span class="sourceLineNo">382</span>  }<a name="line.382"></a>
+<span class="sourceLineNo">383</span><a name="line.383"></a>
+<span class="sourceLineNo">384</span>  @Test(timeout=300000)<a name="line.384"></a>
+<span class="sourceLineNo">385</span>  public void testBatchWithDelete() throws Exception {<a name="line.385"></a>
+<span class="sourceLineNo">386</span>    LOG.info("test=testBatchWithDelete");<a name="line.386"></a>
+<span class="sourceLineNo">387</span>    Table table = UTIL.getConnection().getTable(TEST_TABLE);<a name="line.387"></a>
+<span class="sourceLineNo">388</span><a name="line.388"></a>
+<span class="sourceLineNo">389</span>    // Load some data<a name="line.389"></a>
+<span class="sourceLineNo">390</span>    List&lt;Put&gt; puts = constructPutRequests();<a name="line.390"></a>
+<span class="sourceLineNo">391</span>    Object[] results = new Object[puts.size()];<a name="line.391"></a>
+<span class="sourceLineNo">392</span>    table.batch(puts, results);<a name="line.392"></a>
+<span class="sourceLineNo">393</span>    validateSizeAndEmpty(results, KEYS.length);<a name="line.393"></a>
+<span class="sourceLineNo">394</span><a name="line.394"></a>
+<span class="sourceLineNo">395</span>    // Deletes<a name="line.395"></a>
+<span class="sourceLineNo">396</span>    List&lt;Row&gt; deletes = new ArrayList&lt;&gt;();<a name="line.396"></a>
+<span class="sourceLineNo">397</span>    for (int i = 0; i &lt; KEYS.length; i++) {<a name="line.397"></a>
+<span class="sourceLineNo">398</span>      Delete delete = new Delete(KEYS[i]);<a name="line.398"></a>
+<span class="sourceLineNo">399</span>      delete.addFamily(BYTES_FAMILY);<a name="line.399"></a>
+<span class="sourceLineNo">400</span>      deletes.add(delete);<a name="line.400"></a>
+<span class="sourceLineNo">401</span>    }<a name="line.401"></a>
+<span class="sourceLineNo">402</span>    results= new Object[deletes.size()];<a name="line.402"></a>
+<span class="sourceLineNo">403</span>    table.batch(deletes, results);<a name="line.403"></a>
+<span class="sourceLineNo">404</span>    validateSizeAndEmpty(results, KEYS.length);<a name="line.404"></a>
+<span class="sourceLineNo">405</span><a name="line.405"></a>
+<span class="sourceLineNo">406</span>    // Get to make sure ...<a name="line.406"></a>
+<span class="sourceLineNo">407</span>    for (byte[] k : KEYS) {<a name="line.407"></a>
+<span class="sourceLineNo">408</span>      Get get = new Get(k);<a name="line.408"></a>
+<span class="sourceLineNo">409</span>      get.addColumn(BYTES_FAMILY, QUALIFIER);<a name="line.409"></a>
+<span class="sourceLineNo">410</span>      Assert.assertFalse(table.exists(get));<a name="line.410"></a>
+<span class="sourceLineNo">411</span>    }<a name="line.411"></a>
+<span class="sourceLineNo">412</span>    table.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>  @Test(timeout=300000)<a name="line.415"></a>
+<span class="sourceLineNo">416</span>  public void testHTableDeleteWithList() throws Exception {<a name="line.416"></a>
+<span class="sourceLineNo">417</span>    LOG.info("test=testHTableDeleteWithList");<a name="line.417"></a>
+<span class="sourceLineNo">418</span>    Table table = UTIL.getConnection().getTable(TEST_TABLE);<a name="line.418"></a>
+<span class="sourceLineNo">419</span><a name="line.419"></a>
+<span class="sourceLineNo">420</span>    // Load some data<a name="line.420"></a>
+<span class="sourceLineNo">421</span>    List&lt;Put&gt; puts = constructPutRequests();<a name="line.421"></a>
+<span class="sourceLineNo">422</span>    Object[] results = new Object[puts.size()];<a name="line.422"></a>
+<span class="sourceLineNo">423</span>    table.batch(puts, results);<a name="line.423"></a>
+<span class="sourceLineNo">424</span>    validateSizeAndEmpty(results, KEYS.length);<a name="line.424"></a>
+<span class="sourceLineNo">425</span><a name="line.425"></a>
+<span class="sourceLineNo">426</span>    // Deletes<a name="line.426"></a>
+<span class="sourceLineNo">427</span>    ArrayList&lt;Delete&gt; deletes = new ArrayList&lt;&gt;();<a name="line.427"></a>
+<span class="sourceLineNo">428</span>    for (int i = 0; i &lt; KEYS.length; i++) {<a name="line.428"></a>
+<span class="sourceLineNo">429</span>      Delete delete = new Delete(KEYS[i]);<a name="line.429"></a>
+<span class="sourceLineNo">430</span>      delete.addFamily(BYTES_FAMILY);<a name="line.430"></a>
+<span class="sourceLineNo">431</span>      deletes.add(delete);<a name="line.431"></a>
+<span class="sourceLineNo">432</span>    }<a name="line.432"></a>
+<span class="sourceLineNo">433</span>    table.delete(deletes);<a name="line.433"></a>
+<span class="sourceLineNo">434</span>    Assert.assertTrue(deletes.isEmpty());<a name="line.434"></a>
+<span class="sourceLineNo">435</span><a name="line.435"></a>
+<span class="sourceLineNo">436</span>    // Get to make sure ...<a name="line.436"></a>
+<span class="sourceLineNo">437</span>    for (byte[] k : KEYS) {<a name="line.437"></a>
+<span class="sourceLineNo">438</span>      Get get = new Get(k);<a name="line.438"></a>
+<span class="sourceLineNo">439</span>      get.addColumn(BYTES_FAMILY, QUALIFIER);<a name="line.439"></a>
+<span class="sourceLineNo">440</span>      Assert.assertFalse(table.exists(get));<a name="line.440"></a>
+<span class="sourceLineNo">441</span>    }<a name="line.441"></a>
+<span class="sourceLineNo">442</span>    table.close();<a name="line.442"></a>
+<span class="sourceLineNo">443</span>  }<a name="line.443"></a>
+<span class="sourceLineNo">444</span><a name="line.444"></a>
+<span class="sourceLineNo">445</span>  @Test(timeout=300000)<a name="line.445"></a>
+<span class="sourceLineNo">446</span>  public void testBatchWithManyColsInOneRowGetAndPut() throws Exception {<a name="line.446"></a>
+<span class="sourceLineNo">447</span>    LOG.info("test=testBatchWithManyColsInOneRowGetAndPut");<a name="line.447"></a>
+<span class="sourceLineNo">448</span>    Table table = UTIL.getConnection().getTable(TEST_TABLE);<a name="line.448"></a>
+<span class="sourceLineNo">449</span><a name="line.449"></a>
+<span class="sourceLineNo">450</span>    List&lt;Row&gt; puts = new ArrayList&lt;&gt;();<a name="line.450"></a>
+<span class="sourceLineNo">451</span>    for (int i = 0; i &lt; 100; i++) {<a name="line.451"></a>
+<span class="sourceLineNo">452</span>      Put put = new Put(ONE_ROW);<a name="line.452"></a>
+<span class="sourceLineNo">453</span>      byte[] qual = Bytes.toBytes("column" + i);<a name="line.453"></a>
+<span class="sourceLineNo">454</span>      put.addColumn(BYTES_FAMILY, qual, VALUE);<a name="line.454"></a>
+<span class="sourceLineNo">455</span>      puts.add(put);<a name="line.455"></a>
+<span class="sourceLineNo">456</span>    }<a name="line.456"></a>
+<span class="sourceLineNo">457</span>    Object[] results = new Object[puts.size()];<a name="line.457"></a>
+<span class="sourceLineNo">458</span>    table.batch(puts, results);<a name="line.458"></a>
+<span class="sourceLineNo">459</span><a name="line.459"></a>
+<span class="sourceLineNo">460</span>    // validate<a name="line.460"></a>
+<span class="sourceLineNo">461</span>    validateSizeAndEmpty(results, 100);<a name="line.461"></a>
+<span class="sourceLineNo">462</span><a name="line.462"></a>
+<span class="sourceLineNo">463</span>    // get the data back and validate that it is correct<a name="line.463"></a>
+<span class="sourceLineNo">464</span>    List&lt;Row&gt; gets = new ArrayList&lt;&gt;();<a name="line.464"></a>
+<span class="sourceLineNo">465</span>    for (int i = 0; i &lt; 100; i++) {<a name="line.465"></a>
+<span class="sourceLineNo">466</span>      Get get = new Get(ONE_ROW);<a name="line.466"></a>
+<span class="sourceLineNo">467</span>      byte[] qual = Bytes.toBytes("column" + i);<a name="line.467"></a>
+<span class="sourceLineNo">468</span>      get.addColumn(BYTES_FAMILY, qual);<a name="line.468"></a>
+<span class="sourceLineNo">469</span>      gets.add(get);<a name="line.469"></a>
+<span class="sourceLineNo">470</span>    }<a name="line.470"></a>
+<span class="sourceLineNo">471</span><a name="line.471"></a>
+<span class="sourceLineNo">472</span>    Object[] multiRes = new Object[gets.size()];<a name="line.472"></a>
+<span class="sourceLineNo">473</span>    table.batch(gets, multiRes);<a name="line.473"></a>
+<span class="sourceLineNo">474</span><a name="line.474"></a>
+<span class="sourceLineNo">475</span>    int idx = 0;<a name="line.475"></a>
+<span class="sourceLineNo">476</span>    for (Object r : multiRes) {<a name="line.476"></a>
+<span class="sourceLineNo">477</span>      byte[] qual = Bytes.toBytes("column" + idx);<a name="line.477"></a>
+<span class="sourceLineNo">478</span>      validateResult(r, qual, VALUE);<a name="line.478"></a>
+<span class="sourceLineNo">479</span>      idx++;<a name="line.479"></a>
+<span class="sourceLineNo">480</span>    }<a name="line.480"></a>
+<span class="sourceLineNo">481</span>    table.close();<a name="line.481"></a>
+<span class="sourceLineNo">482</span>  }<a name="line.482"></a>
+<span class="sourceLineNo">483</span><a name="line.483"></a>
+<span class="sourceLineNo">484</span>  @Test(timeout=300000)<a name="line.484"></a>
+<span class="sourceLineNo">485</span>  public void testBatchWithIncrementAndAppend() throws Exception {<a name="line.485"></a>
+<span class="sourceLineNo">486</span>    LOG.info("test=testBatchWithIncrementAndAppend");<a name="line.486"></a>
+<span class="sourceLineNo">487</span>    final byte[] QUAL1 = Bytes.toBytes("qual1");<a name="line.487"></a>
+<span class="sourceLineNo">488</span>    final byte[] QUAL2 = Bytes.toBytes("qual2");<a name="line.488"></a>
+<span class="sourceLineNo">489</span>    final byte[] QUAL3 = Bytes.toBytes("qual3");<a name="line.489"></a>
+<span class="sourceLineNo">490</span>    final byte[] QUAL4 = Bytes.toBytes("qual4");<a name="line.490"></a>
+<span class="sourceLineNo">491</span>    Table table = UTIL.getConnection().getTable(TEST_TABLE);<a name="line.491"></a>
+<span class="sourceLineNo">492</span>    Delete d = new Delete(ONE_ROW);<a name="line.492"></a>
+<span class="sourceLineNo">493</span>    table.delete(d);<a name="line.493"></a>
+<span class="sourceLineNo">494</span>    Put put = new Put(ONE_ROW);<a name="line.494"></a>
+<span class="sourceLineNo">495</span>    put.addColumn(BYTES_FAMILY, QUAL1, Bytes.toBytes("abc"));<a name="line.495"></a>
+<span class="sourceLineNo">496</span>    put.addColumn(BYTES_FAMILY, QUAL2, Bytes.toBytes(1L));<a name="line.496"></a>
+<span class="sourceLineNo">497</span>    table.put(put);<a name="line.497"></a>
+<span class="sourceLineNo">498</span><a name="line.498"></a>
+<span class="sourceLineNo">499</span>    Increment inc = new Increment(ONE_ROW);<a name="line.499"></a>
+<span class="sourceLineNo">500</span>    inc.addColumn(BYTES_FAMILY, QUAL2, 1);<a name="line.500"></a>
+<span class="sourceLineNo">501</span>    inc.addColumn(BYTES_FAMILY, QUAL3, 1

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html
index 9567329..d5754b6 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private static enum <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.495">TestRegionServerReadRequestMetrics.Metric</a>
+<pre>private static enum <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.497">TestRegionServerReadRequestMetrics.Metric</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver">TestRegionServerReadRequestMetrics.Metric</a>&gt;</pre>
 </li>
 </ul>
@@ -216,7 +216,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>REGION_READ</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver">TestRegionServerReadRequestMetrics.Metric</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html#line.495">REGION_READ</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver">TestRegionServerReadRequestMetrics.Metric</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html#line.497">REGION_READ</a></pre>
 </li>
 </ul>
 <a name="SERVER_READ">
@@ -225,7 +225,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>SERVER_READ</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver">TestRegionServerReadRequestMetrics.Metric</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html#line.495">SERVER_READ</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver">TestRegionServerReadRequestMetrics.Metric</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html#line.497">SERVER_READ</a></pre>
 </li>
 </ul>
 <a name="FILTERED_REGION_READ">
@@ -234,7 +234,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>FILTERED_REGION_READ</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver">TestRegionServerReadRequestMetrics.Metric</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html#line.495">FILTERED_REGION_READ</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver">TestRegionServerReadRequestMetrics.Metric</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html#line.497">FILTERED_REGION_READ</a></pre>
 </li>
 </ul>
 <a name="FILTERED_SERVER_READ">
@@ -243,7 +243,7 @@ the order they are declared.</div>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>FILTERED_SERVER_READ</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver">TestRegionServerReadRequestMetrics.Metric</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html#line.495">FILTERED_SERVER_READ</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver">TestRegionServerReadRequestMetrics.Metric</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html#line.497">FILTERED_SERVER_READ</a></pre>
 </li>
 </ul>
 </li>
@@ -260,7 +260,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>values</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver">TestRegionServerReadRequestMetrics.Metric</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html#line.495">values</a>()</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver">TestRegionServerReadRequestMetrics.Metric</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html#line.497">values</a>()</pre>
 <div class="block">Returns an array containing the constants of this enum type, in
 the order they are declared.  This method may be used to iterate
 over the constants as follows:
@@ -280,7 +280,7 @@ for (TestRegionServerReadRequestMetrics.Metric c : TestRegionServerReadRequestMe
 <ul class="blockListLast">
 <li class="blockList">
 <h4>valueOf</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver">TestRegionServerReadRequestMetrics.Metric</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html#line.495">valueOf</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver">TestRegionServerReadRequestMetrics.Metric</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html#line.497">valueOf</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
 <div class="block">Returns the enum constant of this type with the specified name.
 The string must match <i>exactly</i> an identifier used to declare an
 enum constant in this type.  (Extraneous whitespace characters are 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.ScanRegionCoprocessor.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.ScanRegionCoprocessor.html b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.ScanRegionCoprocessor.html
index 8161818..c170ad9 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.ScanRegionCoprocessor.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.ScanRegionCoprocessor.html
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.460">TestRegionServerReadRequestMetrics.ScanRegionCoprocessor</a>
+<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.462">TestRegionServerReadRequestMetrics.ScanRegionCoprocessor</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.coprocessor.RegionCoprocessor, org.apache.hadoop.hbase.coprocessor.RegionObserver</pre>
 </li>
@@ -253,7 +253,7 @@ implements org.apache.hadoop.hbase.coprocessor.RegionCoprocessor, org.apache.had
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ScanRegionCoprocessor</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.ScanRegionCoprocessor.html#line.460">ScanRegionCoprocessor</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.ScanRegionCoprocessor.html#line.462">ScanRegionCoprocessor</a>()</pre>
 </li>
 </ul>
 </li>
@@ -270,7 +270,7 @@ implements org.apache.hadoop.hbase.coprocessor.RegionCoprocessor, org.apache.had
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionObserver</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;org.apache.hadoop.hbase.coprocessor.RegionObserver&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.ScanRegionCoprocessor.html#line.462">getRegionObserver</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;org.apache.hadoop.hbase.coprocessor.RegionObserver&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.ScanRegionCoprocessor.html#line.464">getRegionObserver</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getRegionObserver</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.coprocessor.RegionCoprocessor</code></dd>
@@ -283,7 +283,7 @@ implements org.apache.hadoop.hbase.coprocessor.RegionCoprocessor, org.apache.had
 <ul class="blockList">
 <li class="blockList">
 <h4>postOpen</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.ScanRegionCoprocessor.html#line.467">postOpen</a>(org.apache.hadoop.hbase.coprocessor.ObserverContext&lt;org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment&gt;&nbsp;c)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.ScanRegionCoprocessor.html#line.469">postOpen</a>(org.apache.hadoop.hbase.coprocessor.ObserverContext&lt;org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment&gt;&nbsp;c)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>postOpen</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.coprocessor.RegionObserver</code></dd>
@@ -296,7 +296,7 @@ implements org.apache.hadoop.hbase.coprocessor.RegionCoprocessor, org.apache.had
 <ul class="blockListLast">
 <li class="blockList">
 <h4>putData</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.ScanRegionCoprocessor.html#line.482">putData</a>(org.apache.hadoop.hbase.regionserver.Region&nbsp;region)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.ScanRegionCoprocessor.html#line.484">putData</a>(org.apache.hadoop.hbase.regionserver.Region&nbsp;region)
               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>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html
index 1651121..9d18eed 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html
@@ -109,7 +109,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.72">TestRegionServerReadRequestMetrics</a>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.74">TestRegionServerReadRequestMetrics</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>
@@ -365,7 +365,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.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.73">LOG</a></pre>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.75">LOG</a></pre>
 </li>
 </ul>
 <a name="TEST_UTIL">
@@ -374,7 +374,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>TEST_UTIL</h4>
-<pre>private static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.75">TEST_UTIL</a></pre>
+<pre>private static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.77">TEST_UTIL</a></pre>
 </li>
 </ul>
 <a name="TABLE_NAME">
@@ -383,7 +383,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>TABLE_NAME</h4>
-<pre>private static final&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.76">TABLE_NAME</a></pre>
+<pre>private static final&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.78">TABLE_NAME</a></pre>
 </li>
 </ul>
 <a name="CF1">
@@ -392,7 +392,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>CF1</h4>
-<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.77">CF1</a></pre>
+<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.79">CF1</a></pre>
 </li>
 </ul>
 <a name="CF2">
@@ -401,7 +401,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>CF2</h4>
-<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.78">CF2</a></pre>
+<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.80">CF2</a></pre>
 </li>
 </ul>
 <a name="ROW1">
@@ -410,7 +410,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>ROW1</h4>
-<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.80">ROW1</a></pre>
+<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.82">ROW1</a></pre>
 </li>
 </ul>
 <a name="ROW2">
@@ -419,7 +419,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>ROW2</h4>
-<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.81">ROW2</a></pre>
+<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.83">ROW2</a></pre>
 </li>
 </ul>
 <a name="ROW3">
@@ -428,7 +428,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>ROW3</h4>
-<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.82">ROW3</a></pre>
+<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.84">ROW3</a></pre>
 </li>
 </ul>
 <a name="COL1">
@@ -437,7 +437,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>COL1</h4>
-<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.83">COL1</a></pre>
+<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.85">COL1</a></pre>
 </li>
 </ul>
 <a name="COL2">
@@ -446,7 +446,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>COL2</h4>
-<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.84">COL2</a></pre>
+<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.86">COL2</a></pre>
 </li>
 </ul>
 <a name="COL3">
@@ -455,7 +455,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>COL3</h4>
-<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.85">COL3</a></pre>
+<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.87">COL3</a></pre>
 </li>
 </ul>
 <a name="VAL1">
@@ -464,7 +464,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>VAL1</h4>
-<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.86">VAL1</a></pre>
+<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.88">VAL1</a></pre>
 </li>
 </ul>
 <a name="VAL2">
@@ -473,7 +473,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>VAL2</h4>
-<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.87">VAL2</a></pre>
+<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.89">VAL2</a></pre>
 </li>
 </ul>
 <a name="VAL3">
@@ -482,7 +482,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>VAL3</h4>
-<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.88">VAL3</a></pre>
+<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.90">VAL3</a></pre>
 </li>
 </ul>
 <a name="MAX_TRY">
@@ -491,7 +491,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>MAX_TRY</h4>
-<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.90">MAX_TRY</a></pre>
+<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.92">MAX_TRY</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.TestRegionServerReadRequestMetrics.MAX_TRY">Constant Field Values</a></dd>
@@ -504,7 +504,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>SLEEP_MS</h4>
-<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.91">SLEEP_MS</a></pre>
+<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.93">SLEEP_MS</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.TestRegionServerReadRequestMetrics.SLEEP_MS">Constant Field Values</a></dd>
@@ -517,7 +517,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>TTL</h4>
-<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.92">TTL</a></pre>
+<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.94">TTL</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.TestRegionServerReadRequestMetrics.TTL">Constant Field Values</a></dd>
@@ -530,7 +530,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>admin</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.client.Admin <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.94">admin</a></pre>
+<pre>private static&nbsp;org.apache.hadoop.hbase.client.Admin <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.96">admin</a></pre>
 </li>
 </ul>
 <a name="serverNames">
@@ -539,7 +539,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>serverNames</h4>
-<pre>private static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;org.apache.hadoop.hbase.ServerName&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.95">serverNames</a></pre>
+<pre>private static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;org.apache.hadoop.hbase.ServerName&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.97">serverNames</a></pre>
 </li>
 </ul>
 <a name="table">
@@ -548,7 +548,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>table</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.client.Table <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.96">table</a></pre>
+<pre>private static&nbsp;org.apache.hadoop.hbase.client.Table <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.98">table</a></pre>
 </li>
 </ul>
 <a name="regionInfo">
@@ -557,7 +557,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>regionInfo</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.client.RegionInfo <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.97">regionInfo</a></pre>
+<pre>private static&nbsp;org.apache.hadoop.hbase.client.RegionInfo <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.99">regionInfo</a></pre>
 </li>
 </ul>
 <a name="requestsMap">
@@ -566,7 +566,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>requestsMap</h4>
-<pre>private static&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="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver">TestRegionServerReadRequestMetrics.Metric</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.99">requestsMap</a></pre>
+<pre>private static&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="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver">TestRegionServerReadRequestMetrics.Metric</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.101">requestsMap</a></pre>
 </li>
 </ul>
 <a name="requestsMapPrev">
@@ -575,7 +575,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>requestsMapPrev</h4>
-<pre>private static&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="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver">TestRegionServerReadRequestMetrics.Metric</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.100">requestsMapPrev</a></pre>
+<pre>private static&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="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver">TestRegionServerReadRequestMetrics.Metric</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.102">requestsMapPrev</a></pre>
 </li>
 </ul>
 </li>
@@ -592,7 +592,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestRegionServerReadRequestMetrics</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.72">TestRegionServerReadRequestMetrics</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.74">TestRegionServerReadRequestMetrics</a>()</pre>
 </li>
 </ul>
 </li>
@@ -609,7 +609,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>setUpOnce</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.103">setUpOnce</a>()
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.105">setUpOnce</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>
@@ -623,7 +623,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>createTable</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.client.Table&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.123">createTable</a>()
+<pre>private static&nbsp;org.apache.hadoop.hbase.client.Table&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.125">createTable</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>
@@ -637,7 +637,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testReadRequests</h4>
-<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.132">testReadRequests</a>(long&nbsp;resultCount,
+<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.134">testReadRequests</a>(long&nbsp;resultCount,
                                      long&nbsp;expectedReadRequests,
                                      long&nbsp;expectedFilteredReadRequests)
                               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>,
@@ -655,7 +655,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>updateMetricsMap</h4>
-<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.160">updateMetricsMap</a>()
+<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.162">updateMetricsMap</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>
@@ -671,7 +671,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getReadRequest</h4>
-<pre>private static&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.200">getReadRequest</a>(org.apache.hadoop.hbase.ServerLoad&nbsp;serverLoad,
+<pre>private static&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.202">getReadRequest</a>(org.apache.hadoop.hbase.ServerLoad&nbsp;serverLoad,
                                    org.apache.hadoop.hbase.RegionLoad&nbsp;regionLoad,
                                    <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver">TestRegionServerReadRequestMetrics.Metric</a>&nbsp;metric)</pre>
 </li>
@@ -682,7 +682,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>putData</h4>
-<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.215">putData</a>()
+<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.217">putData</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>
@@ -696,7 +696,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>putTTLExpiredData</h4>
-<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.233">putTTLExpiredData</a>()
+<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.235">putTTLExpiredData</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>
@@ -712,7 +712,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>tearDownOnce</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.255">tearDownOnce</a>()
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.257">tearDownOnce</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>
@@ -726,7 +726,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testReadRequestsCountNotFiltered</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.260">testReadRequestsCountNotFiltered</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.262">testReadRequestsCountNotFiltered</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>
@@ -740,7 +740,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testReadRequestsCountWithFilter</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.328">testReadRequestsCountWithFilter</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.330">testReadRequestsCountWithFilter</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>
@@ -754,7 +754,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testReadRequestsCountWithDeletedRow</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.374">testReadRequestsCountWithDeletedRow</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.376">testReadRequestsCountWithDeletedRow</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>
@@ -768,7 +768,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testReadRequestsCountWithTTLExpiration</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.396">testReadRequestsCountWithTTLExpiration</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.398">testReadRequestsCountWithTTLExpiration</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>
@@ -782,7 +782,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testReadRequestsWithCoprocessor</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.411">testReadRequestsWithCoprocessor</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.413">testReadRequestsWithCoprocessor</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>
@@ -796,7 +796,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>testReadRequests</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.445">testReadRequests</a>(byte[]&nbsp;regionName,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html#line.447">testReadRequests</a>(byte[]&nbsp;regionName,
                               int&nbsp;expectedReadRequests)
                        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>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestRegionServerReportForDuty.MyRegionServer.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestRegionServerReportForDuty.MyRegionServer.html b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestRegionServerReportForDuty.MyRegionServer.html
index 6bd00c8..f4c5f17 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestRegionServerReportForDuty.MyRegionServer.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestRegionServerReportForDuty.MyRegionServer.html
@@ -192,7 +192,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.MiniHBa
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.HRegionServer</h3>
-<code>cacheConfig, cacheFlusher, clusterConnection, clusterStatusTracker, compactedFileDischarger, compactionChecker, compactSplitThread, conf, configurationManager, csm, executorService, fs, fsOk, fsUtilizationChore, hMemManager, infoServer, killed, leases, lock, MASTER_HOSTNAME_KEY, MASTERLESS_CONFIG_NAME, metaTableLocator, metricsRegionServer, metricsTable, mobCacheConfig, movedRegions, msgInterval, nonceManager, numRegionsToReport, numRetries, online, onlineRegions, periodicFlusher, regionFavoredNodesMap, REGIONSERVER, regionsInTransitionInRS, replicationSinkHandler, replicationSourceHandler, rowlocks, rpcClient, rpcServices, RS_HOSTNAME_DISABLE_MASTER_REVERSEDNS_KEY, RS_HOSTNAME_KEY, secureBulkLoadManager, serverName, sleeper, startcode, tableDescriptors, TEST_SKIP_REPORTING_TRANSITION, threadWakeFrequency, useThisHostnameInstead, walFactory, walFs, walRoller, zooKeeper</code></li>
+<code>cacheConfig, cacheFlusher, clusterConnection, clusterId, clusterStatusTracker, compactedFileDischarger, compactionChecker, compactSplitThread, conf, configurationManager, csm, executorService, fs, fsOk, fsUtilizationChore, hMemManager, infoServer, killed, leases, lock, MASTER_HOSTNAME_KEY, MASTERLESS_CONFIG_NAME, metaTableLocator, metricsRegionServer, metricsTable, mobCacheConfig, movedRegions, msgInterval, nonceManager, numRegionsToReport, numRetries, online, onlineRegions, periodicFlusher, regionFavoredNodesMap, REGIONSERVER, regionsInTransitionInRS, replicationSinkHandler, replicationSourceHandler, rowlocks, rpcClient, rpcServices, RS_HOSTNAME_DISABLE_MASTER_REVERSEDNS_KEY, RS_HOSTNAME_KEY, secureBulkLoadManager, serverName, sleeper, startcode, tableDescriptors, TEST_SKIP_REPORTING_TRANSITION, threadWakeFrequency, useThisHostnameInstead, walFactory, walFs, walRoller, zooKeeper</code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestScannerHeartbeatMessages.HeartbeatHRegionServer.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestScannerHeartbeatMessages.HeartbeatHRegionServer.html b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestScannerHeartbeatMessages.HeartbeatHRegionServer.html
index 7f2178b..c0dc2fd 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestScannerHeartbeatMessages.HeartbeatHRegionServer.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestScannerHeartbeatMessages.HeartbeatHRegionServer.html
@@ -170,7 +170,7 @@ extends org.apache.hadoop.hbase.regionserver.HRegionServer</pre>
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.HRegionServer</h3>
-<code>cacheConfig, cacheFlusher, clusterConnection, clusterStatusTracker, compactedFileDischarger, compactionChecker, compactSplitThread, conf, configurationManager, csm, executorService, fs, fsOk, fsUtilizationChore, hMemManager, infoServer, killed, leases, lock, MASTER_HOSTNAME_KEY, MASTERLESS_CONFIG_NAME, metaTableLocator, metricsRegionServer, metricsTable, mobCacheConfig, movedRegions, msgInterval, nonceManager, numRegionsToReport, numRetries, online, onlineRegions, periodicFlusher, regionFavoredNodesMap, REGIONSERVER, regionsInTransitionInRS, replicationSinkHandler, replicationSourceHandler, rowlocks, rpcClient, rpcServices, RS_HOSTNAME_DISABLE_MASTER_REVERSEDNS_KEY, RS_HOSTNAME_KEY, secureBulkLoadManager, serverName, sleeper, startcode, tableDescriptors, TEST_SKIP_REPORTING_TRANSITION, threadWakeFrequency, useThisHostnameInstead, walFactory, walFs, walRoller, zooKeeper</code></li>
+<code>cacheConfig, cacheFlusher, clusterConnection, clusterId, clusterStatusTracker, compactedFileDischarger, compactionChecker, compactSplitThread, conf, configurationManager, csm, executorService, fs, fsOk, fsUtilizationChore, hMemManager, infoServer, killed, leases, lock, MASTER_HOSTNAME_KEY, MASTERLESS_CONFIG_NAME, metaTableLocator, metricsRegionServer, metricsTable, mobCacheConfig, movedRegions, msgInterval, nonceManager, numRegionsToReport, numRetries, online, onlineRegions, periodicFlusher, regionFavoredNodesMap, REGIONSERVER, regionsInTransitionInRS, replicationSinkHandler, replicationSourceHandler, rowlocks, rpcClient, rpcServices, RS_HOSTNAME_DISABLE_MASTER_REVERSEDNS_KEY, RS_HOSTNAME_KEY, secureBulkLoadManager, serverName, sleeper, startcode, tableDescriptors, TEST_SKIP_REPORTING_TRANSITION, threadWakeFrequency, useThisHostnameInstead, walFactory, walFs, walRoller, zooKeeper</code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.MyMaster.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.MyMaster.html b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.MyMaster.html
index 672218b..0b656c8 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.MyMaster.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.MyMaster.html
@@ -187,7 +187,7 @@ extends org.apache.hadoop.hbase.master.HMaster</pre>
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.HRegionServer</h3>
-<code>cacheConfig, cacheFlusher, clusterConnection, clusterStatusTracker, compactedFileDischarger, compactionChecker, compactSplitThread, conf, configurationManager, csm, executorService, fs, fsOk, fsUtilizationChore, hMemManager, infoServer, killed, leases, lock, MASTER_HOSTNAME_KEY, MASTERLESS_CONFIG_NAME, metaTableLocator, metricsRegionServer, metricsTable, mobCacheConfig, movedRegions, msgInterval, nonceManager, numRegionsToReport, numRetries, online, onlineRegions, periodicFlusher, regionFavoredNodesMap, REGIONSERVER, regionsInTransitionInRS, replicationSinkHandler, replicationSourceHandler, rowlocks, rpcClient, rpcServices, RS_HOSTNAME_DISABLE_MASTER_REVERSEDNS_KEY, RS_HOSTNAME_KEY, secureBulkLoadManager, serverName, sleeper, startcode, tableDescriptors, TEST_SKIP_REPORTING_TRANSITION, threadWakeFrequency, useThisHostnameInstead, walFactory, walFs, walRoller, zooKeeper</code></li>
+<code>cacheConfig, cacheFlusher, clusterConnection, clusterId, clusterStatusTracker, compactedFileDischarger, compactionChecker, compactSplitThread, conf, configurationManager, csm, executorService, fs, fsOk, fsUtilizationChore, hMemManager, infoServer, killed, leases, lock, MASTER_HOSTNAME_KEY, MASTERLESS_CONFIG_NAME, metaTableLocator, metricsRegionServer, metricsTable, mobCacheConfig, movedRegions, msgInterval, nonceManager, numRegionsToReport, numRetries, online, onlineRegions, periodicFlusher, regionFavoredNodesMap, REGIONSERVER, regionsInTransitionInRS, replicationSinkHandler, replicationSourceHandler, rowlocks, rpcClient, rpcServices, RS_HOSTNAME_DISABLE_MASTER_REVERSEDNS_KEY, RS_HOSTNAME_KEY, secureBulkLoadManager, serverName, sleeper, startcode, tableDescriptors, TEST_SKIP_REPORTING_TRANSITION, threadWakeFrequency, useThisHostnameInstead, walFactory, walFs, walRoller, zooKeeper</code></li>
 </ul>
 </li>
 </ul>
@@ -230,14 +230,14 @@ extends org.apache.hadoop.hbase.master.HMaster</pre>
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.master.HMaster</h3>
-<code>abort, abortProcedure, addColumn, addReplicationPeer, balance, balance, balanceSwitch, canCreateBaseZNode, canUpdateTableDescriptor, checkIfShouldMoveSystemRegionAsync, checkTableModifiable, configureInfoServer, constructMaster, createSystemTable, createTable, decommissionRegionServers, deleteColumn, deleteTable, disableReplicationPeer, disableTable, enableReplicationPeer, enableTable, getAssignmentManager, getAverageLoad, getCatalogJanitor, getClientIdAuditPrefix, getClusterMetrics, getClusterMetrics, getClusterMetricsWithoutCoprocessor, getClusterMetricsWithoutCoprocessor, getClusterSchema, getDumpServlet, getFavoredNodesManager, getHFileCleaner, getInitializedEvent, getLastMajorCompactionTimestamp, getLastMajorCompactionTimestampForRegion, getLoadBalancer, getLoadBalancerClassName, getLoadedCoprocessors, getLockManager, getLocks, getLogCleaner, getMasterActiveTime, getMasterCoprocessorHost, getMasterCoprocessors, getMasterFileSystem, getMasterFinishedInitializationTime, get
 MasterMetrics, getMasterProcedureExecutor, getMasterProcedureManagerHost, getMasterQuotaManager, getMasterRpcServices, getMasterStartTime, getMasterWalManager, getMergePlanCount, getMetaTableObserver, getMobCompactionState, getNumWALFiles, getProcedures, getProcessName, getQuotaObserverChore, getRegionNormalizer, getRegionNormalizerTracker, getRegionServerFatalLogBuffer, getRegionServerInfoPort, getRegionServerVersion, getReplicationPeerConfig, getReplicationPeerManager, getServerCrashProcessingEnabledEvent, getServerManager, getServerName, getSnapshotManager, getSpaceQuotaSnapshotNotifier, getSplitOrMergeTracker, getSplitPlanCount, getTableDescriptors, getTableStateManager, getWalProcedureStore, getZooKeeper, isActiveMaster, isBalancerOn, isInitialized, isInMaintenanceMode, isNormalizerOn, isServerCrashProcessingEnabled, isSplitOrMergeEnabled, listDecommissionedRegionServers, listReplicationPeers, listTableDescriptors, listTableDescriptorsByNamespace, listTableNames, listTableNames
 ByNamespace, login, main, mergeRegions, modifyColumn, modifyTable, move, normalizeRegions, recommissionRegionServer, recoverMeta, registerService, remoteProcedureCompleted, remoteProcedureFailed, removeReplicationPeer, reportMobCompactionEnd, reportMobCompactionStart, requestMobCompaction, restoreSnapshot, run, setCatalogJanitorEnabled, setInitialized, setServerCrashProcessingEnabled, shutdown, splitRegion, stopMaster, stopServiceThreads, truncateTable, updateConfigurationForSpaceQuotaObserver, updateReplicationPeerConfig, waitForMasterActive</code></li>
+<code>abort, abortProcedure, addColumn, addReplicationPeer, balance, balance, balanceSwitch, canCreateBaseZNode, canUpdateTableDescriptor, checkIfShouldMoveSystemRegionAsync, checkTableModifiable, configureInfoServer, constructMaster, createSystemTable, createTable, decommissionRegionServers, deleteColumn, deleteTable, disableReplicationPeer, disableTable, enableReplicationPeer, enableTable, getAssignmentManager, getAverageLoad, getCatalogJanitor, getClientIdAuditPrefix, getClusterMetrics, getClusterMetrics, getClusterMetricsWithoutCoprocessor, getClusterMetricsWithoutCoprocessor, getClusterSchema, getDumpServlet, getFavoredNodesManager, getHFileCleaner, getInitializedEvent, getLastMajorCompactionTimestamp, getLastMajorCompactionTimestampForRegion, getLoadBalancer, getLoadBalancerClassName, getLoadedCoprocessors, getLockManager, getLocks, getLogCleaner, getMasterActiveTime, getMasterCoprocessorHost, getMasterCoprocessors, getMasterFileSystem, getMasterFinishedInitializationTime, get
 MasterMetrics, getMasterProcedureExecutor, getMasterProcedureManagerHost, getMasterQuotaManager, getMasterRpcServices, getMasterStartTime, getMasterWalManager, getMergePlanCount, getMetaTableObserver, getMobCompactionState, getNumWALFiles, getProcedures, getProcessName, getQuotaObserverChore, getRegionNormalizer, getRegionNormalizerTracker, getRegionServerFatalLogBuffer, getRegionServerInfoPort, getRegionServerVersion, getReplicationPeerConfig, getReplicationPeerManager, getServerCrashProcessingEnabledEvent, getServerManager, getServerName, getSnapshotManager, getSpaceQuotaSnapshotNotifier, getSplitOrMergeTracker, getSplitPlanCount, getTableDescriptors, getTableStateManager, getWalProcedureStore, getZooKeeper, isActiveMaster, isBalancerOn, isInitialized, isInMaintenanceMode, isNormalizerOn, isServerCrashProcessingEnabled, isSplitOrMergeEnabled, listDecommissionedRegionServers, listReplicationPeers, listTableDescriptors, listTableDescriptorsByNamespace, listTableNames, listTableNames
 ByNamespace, login, main, mergeRegions, modifyColumn, modifyTable, move, normalizeRegions, recommissionRegionServer, recoverMeta, registerService, remoteProcedureCompleted, remoteProcedureFailed, removeReplicationPeer, reportMobCompactionEnd, reportMobCompactionStart, requestMobCompaction, restoreSnapshot, run, setCatalogJanitorEnabled, setInitialized, setServerCrashProcessingEnabled, shutdown, splitRegion, stop, stopMaster, stopServiceThreads, truncateTable, updateConfigurationForSpaceQuotaObserver, updateReplicationPeerConfig, waitForMasterActive</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.regionserver.HRegionServer">
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.HRegionServer</h3>
-<code>abort, addRegion, addToMovedRegions, buildRegionSpaceUseReportRequest, buildServerLoad, checkFileSystem, cleanMovedRegions, clearRegionBlockCache, closeAllRegions, closeAndOfflineRegionForSplitOrMerge, closeMetaTableRegions, closeRegion, closeUserRegions, constructRegionServer, convertRegionSize, convertThrowableToIOE, createClusterConnection, createConnection, createRegionLoad, createRegionLoad, createRegionServerStatusStub, createRegionServerStatusStub, execRegionServerService, executeProcedure, getCacheConfig, getChoreService, getClusterConnection, getClusterId, getCompactionPressure, getCompactionRequestor, getCompactSplitThread, getConfiguration, getConfigurationManager, getConnection, getCoordinatedStateManager, getCopyOfOnlineRegionsSortedBySize, getEventLoopGroupConfig, getExecutorService, getFavoredNodesForRegion, getFileSystem, getFlushPressure, getFlushRequester, getFlushThroughputController, getFsTableDescriptors, getHeapMemoryManager, getInfoServer, getLastSequenc
 eId, getLeases, getMasterAddressTracker, getMetaTableLocator, getMetrics, getMostLoadedRegions, getNonceManager, getNumberOfOnlineRegions, getOnlineRegion, getOnlineRegionsAsPrintableString, getOnlineRegionsLocalContext, getOnlineTables, getRegion, getRegion, getRegionBlockLocations, getRegionByEncodedName, getRegionByEncodedName, getRegions, getRegions, getRegionServerAccounting, getRegionServerCoprocessorHost, getRegionServerCoprocessors, getRegionServerMetrics, getRegionServerRpcQuotaManager, getRegionServerSpaceQuotaManager, getRegionsInTransitionInRS, getReplicationSinkService, getReplicationSourceService, getRootDir, getRpcServer, getRSRpcServices, getSecureBulkLoadManager, getStartcode, getThreadWakeFrequency, getWAL, getWALFileSystem, getWalRoller, getWALRootDir, getWALs, getWriteLock, handleReportForDutyResponse, initializeMemStoreChunkCreator, isAborted, isOnline, isOnlineRegionsEmpty, isStopped, isStopping, kill, movedRegionCleanerPeriod, onConfigurationChange, postOpenDe
 ployTasks, regionLock, remoteProcedureComplete, removeFromMovedRegions, removeRegion, reportProcedureDone, reportRegionSizesForQuotas, reportRegionStateTransition, sendShutdownInterrupt, setupClusterConnection, shouldUseThisHostnameInstead, stop, stop, toString, triggerFlushInPrimaryRegion, tryRegionServerReport, unassign, updateConfiguration, updateRegionFavoredNodesMapping, waitForServerOnline, walRollRequestFinished</code></li>
+<code>abort, addRegion, addToMovedRegions, buildRegionSpaceUseReportRequest, buildServerLoad, checkFileSystem, cleanMovedRegions, clearRegionBlockCache, closeAllRegions, closeAndOfflineRegionForSplitOrMerge, closeMetaTableRegions, closeRegion, closeUserRegions, constructRegionServer, convertRegionSize, convertThrowableToIOE, createClusterConnection, createConnection, createRegionLoad, createRegionLoad, createRegionServerStatusStub, createRegionServerStatusStub, execRegionServerService, executeProcedure, getCacheConfig, getChoreService, getClusterConnection, getClusterId, getCompactionPressure, getCompactionRequestor, getCompactSplitThread, getConfiguration, getConfigurationManager, getConnection, getCoordinatedStateManager, getCopyOfOnlineRegionsSortedBySize, getEventLoopGroupConfig, getExecutorService, getFavoredNodesForRegion, getFileSystem, getFlushPressure, getFlushRequester, getFlushThroughputController, getFsTableDescriptors, getHeapMemoryManager, getInfoServer, getLastSequenc
 eId, getLeases, getMasterAddressTracker, getMetaTableLocator, getMetrics, getMostLoadedRegions, getNonceManager, getNumberOfOnlineRegions, getOnlineRegion, getOnlineRegionsAsPrintableString, getOnlineRegionsLocalContext, getOnlineTables, getRegion, getRegion, getRegionBlockLocations, getRegionByEncodedName, getRegionByEncodedName, getRegions, getRegions, getRegionServerAccounting, getRegionServerCoprocessorHost, getRegionServerCoprocessors, getRegionServerMetrics, getRegionServerRpcQuotaManager, getRegionServerSpaceQuotaManager, getRegionsInTransitionInRS, getReplicationSinkService, getReplicationSourceService, getRootDir, getRpcServer, getRSRpcServices, getSecureBulkLoadManager, getStartcode, getThreadWakeFrequency, getWAL, getWALFileSystem, getWalRoller, getWALRootDir, getWALs, getWriteLock, handleReportForDutyResponse, initializeMemStoreChunkCreator, isAborted, isOnline, isOnlineRegionsEmpty, isStopped, isStopping, kill, movedRegionCleanerPeriod, onConfigurationChange, postOpenDe
 ployTasks, regionLock, remoteProcedureComplete, removeFromMovedRegions, removeRegion, reportProcedureDone, reportRegionSizesForQuotas, reportRegionStateTransition, sendShutdownInterrupt, setupClusterConnection, shouldUseThisHostnameInstead, stop, toString, triggerFlushInPrimaryRegion, tryRegionServerReport, unassign, updateConfiguration, updateRegionFavoredNodesMapping, waitForServerOnline, walRollRequestFinished</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.util.HasThread">
@@ -279,7 +279,7 @@ extends org.apache.hadoop.hbase.master.HMaster</pre>
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.Stoppable</h3>
-<code>isStopped, stop</code></li>
+<code>isStopped</code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/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 413f29d..5fe8358 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
@@ -630,11 +630,11 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMultiLogThreshold.ActionType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestMultiLogThreshold.ActionType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestRegionServerReadRequestMetrics.Metric</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/DataBlockEncodingTool.Manipulation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DataBlockEncodingTool.Manipulation</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/DataBlockEncodingTool.Manipulation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DataBlockEncodingTool.Manipulation</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMultiLogThreshold.ActionType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestMultiLogThreshold.ActionType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationProcedureRetry.MockHMaster.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationProcedureRetry.MockHMaster.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationProcedureRetry.MockHMaster.html
index 822786d..c3699b5 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationProcedureRetry.MockHMaster.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationProcedureRetry.MockHMaster.html
@@ -218,7 +218,7 @@ extends org.apache.hadoop.hbase.master.HMaster</pre>
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.HRegionServer</h3>
-<code>cacheConfig, cacheFlusher, clusterConnection, clusterStatusTracker, compactSplitThread, conf, configurationManager, csm, executorService, fs, fsOk, fsUtilizationChore, hMemManager, infoServer, leases, lock, MASTER_HOSTNAME_KEY, metaTableLocator, movedRegions, msgInterval, numRegionsToReport, onlineRegions, regionFavoredNodesMap, REGIONSERVER, regionsInTransitionInRS, replicationSinkHandler, replicationSourceHandler, rpcServices, secureBulkLoadManager, serverName, sleeper, startcode, tableDescriptors, TEST_SKIP_REPORTING_TRANSITION, threadWakeFrequency, useThisHostnameInstead, walFactory, walFs, walRoller, zooKeeper</code></li>
+<code>cacheConfig, cacheFlusher, clusterConnection, clusterId, clusterStatusTracker, compactSplitThread, conf, configurationManager, csm, executorService, fs, fsOk, fsUtilizationChore, hMemManager, infoServer, leases, lock, MASTER_HOSTNAME_KEY, metaTableLocator, movedRegions, msgInterval, numRegionsToReport, onlineRegions, regionFavoredNodesMap, REGIONSERVER, regionsInTransitionInRS, replicationSinkHandler, replicationSourceHandler, rpcServices, secureBulkLoadManager, serverName, sleeper, startcode, tableDescriptors, TEST_SKIP_REPORTING_TRANSITION, threadWakeFrequency, useThisHostnameInstead, walFactory, walFs, walRoller, zooKeeper</code></li>
 </ul>
 </li>
 </ul>
@@ -270,14 +270,14 @@ extends org.apache.hadoop.hbase.master.HMaster</pre>
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.master.HMaster</h3>
-<code>abort, abortProcedure, addColumn, addReplicationPeer, balance, balance, balanceSwitch, canCreateBaseZNode, canUpdateTableDescriptor, checkIfShouldMoveSystemRegionAsync, checkTableModifiable, configureInfoServer, constructMaster, createRpcServices, createSystemTable, createTable, decommissionRegionServers, deleteColumn, deleteTable, disableReplicationPeer, disableTable, enableReplicationPeer, enableTable, getAssignmentManager, getAverageLoad, getCatalogJanitor, getClientIdAuditPrefix, getClusterMetrics, getClusterMetrics, getClusterMetricsWithoutCoprocessor, getClusterMetricsWithoutCoprocessor, getClusterSchema, getDumpServlet, getFavoredNodesManager, getHFileCleaner, getInitializedEvent, getLastMajorCompactionTimestamp, getLastMajorCompactionTimestampForRegion, getLoadBalancer, getLoadBalancerClassName, getLoadedCoprocessors, getLockManager, getLocks, getLogCleaner, getMasterActiveTime, getMasterCoprocessorHost, getMasterCoprocessors, getMasterFileSystem, getMasterFinishedInit
 ializationTime, getMasterMetrics, getMasterProcedureExecutor, getMasterProcedureManagerHost, getMasterQuotaManager, getMasterRpcServices, getMasterStartTime, getMasterWalManager, getMergePlanCount, getMetaTableObserver, getMobCompactionState, getNumWALFiles, getProcedures, getProcessName, getQuotaObserverChore, getRegionNormalizer, getRegionNormalizerTracker, getRegionServerFatalLogBuffer, getRegionServerInfoPort, getRegionServerVersion, getReplicationPeerConfig, getServerCrashProcessingEnabledEvent, getServerManager, getServerName, getSnapshotManager, getSpaceQuotaSnapshotNotifier, getSplitOrMergeTracker, getSplitPlanCount, getTableDescriptors, getTableStateManager, getWalProcedureStore, getZooKeeper, isActiveMaster, isBalancerOn, isInitialized, isInMaintenanceMode, isNormalizerOn, isServerCrashProcessingEnabled, isSplitOrMergeEnabled, listDecommissionedRegionServers, listReplicationPeers, listTableDescriptors, listTableDescriptorsByNamespace, listTableNames, listTableNamesByNamesp
 ace, login, main, mergeRegions, modifyColumn, modifyTable, move, normalizeRegions, recommissionRegionServer, recoverMeta, registerService, remoteProcedureCompleted, remoteProcedureFailed, removeReplicationPeer, reportMobCompactionEnd, reportMobCompactionStart, requestMobCompaction, restoreSnapshot, run, setCatalogJanitorEnabled, setInitialized, setServerCrashProcessingEnabled, shutdown, splitRegion, stopMaster, stopServiceThreads, truncateTable, updateConfigurationForSpaceQuotaObserver, updateReplicationPeerConfig, waitForMasterActive</code></li>
+<code>abort, abortProcedure, addColumn, addReplicationPeer, balance, balance, balanceSwitch, canCreateBaseZNode, canUpdateTableDescriptor, checkIfShouldMoveSystemRegionAsync, checkTableModifiable, configureInfoServer, constructMaster, createRpcServices, createSystemTable, createTable, decommissionRegionServers, deleteColumn, deleteTable, disableReplicationPeer, disableTable, enableReplicationPeer, enableTable, getAssignmentManager, getAverageLoad, getCatalogJanitor, getClientIdAuditPrefix, getClusterMetrics, getClusterMetrics, getClusterMetricsWithoutCoprocessor, getClusterMetricsWithoutCoprocessor, getClusterSchema, getDumpServlet, getFavoredNodesManager, getHFileCleaner, getInitializedEvent, getLastMajorCompactionTimestamp, getLastMajorCompactionTimestampForRegion, getLoadBalancer, getLoadBalancerClassName, getLoadedCoprocessors, getLockManager, getLocks, getLogCleaner, getMasterActiveTime, getMasterCoprocessorHost, getMasterCoprocessors, getMasterFileSystem, getMasterFinishedInit
 ializationTime, getMasterMetrics, getMasterProcedureExecutor, getMasterProcedureManagerHost, getMasterQuotaManager, getMasterRpcServices, getMasterStartTime, getMasterWalManager, getMergePlanCount, getMetaTableObserver, getMobCompactionState, getNumWALFiles, getProcedures, getProcessName, getQuotaObserverChore, getRegionNormalizer, getRegionNormalizerTracker, getRegionServerFatalLogBuffer, getRegionServerInfoPort, getRegionServerVersion, getReplicationPeerConfig, getServerCrashProcessingEnabledEvent, getServerManager, getServerName, getSnapshotManager, getSpaceQuotaSnapshotNotifier, getSplitOrMergeTracker, getSplitPlanCount, getTableDescriptors, getTableStateManager, getWalProcedureStore, getZooKeeper, isActiveMaster, isBalancerOn, isInitialized, isInMaintenanceMode, isNormalizerOn, isServerCrashProcessingEnabled, isSplitOrMergeEnabled, listDecommissionedRegionServers, listReplicationPeers, listTableDescriptors, listTableDescriptorsByNamespace, listTableNames, listTableNamesByNamesp
 ace, login, main, mergeRegions, modifyColumn, modifyTable, move, normalizeRegions, recommissionRegionServer, recoverMeta, registerService, remoteProcedureCompleted, remoteProcedureFailed, removeReplicationPeer, reportMobCompactionEnd, reportMobCompactionStart, requestMobCompaction, restoreSnapshot, run, setCatalogJanitorEnabled, setInitialized, setServerCrashProcessingEnabled, shutdown, splitRegion, stop, stopMaster, stopServiceThreads, truncateTable, updateConfigurationForSpaceQuotaObserver, updateReplicationPeerConfig, waitForMasterActive</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.regionserver.HRegionServer">
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.HRegionServer</h3>
-<code>abort, addRegion, addToMovedRegions, checkFileSystem, cleanMovedRegions, clearRegionBlockCache, closeAllRegions, closeAndOfflineRegionForSplitOrMerge, closeRegion, constructRegionServer, convertThrowableToIOE, createClusterConnection, createConnection, createRegionLoad, createRegionServerStatusStub, createRegionServerStatusStub, execRegionServerService, executeProcedure, getCacheConfig, getChoreService, getClusterConnection, getClusterId, getCompactionPressure, getCompactionRequestor, getCompactSplitThread, getConfiguration, getConfigurationManager, getConnection, getCoordinatedStateManager, getEventLoopGroupConfig, getExecutorService, getFavoredNodesForRegion, getFileSystem, getFlushPressure, getFlushRequester, getFlushThroughputController, getFsTableDescriptors, getHeapMemoryManager, getInfoServer, getLastSequenceId, getLeases, getMasterAddressTracker, getMetaTableLocator, getMetrics, getMostLoadedRegions, getNonceManager, getNumberOfOnlineRegions, getOnlineRegion, getOnline
 RegionsLocalContext, getOnlineTables, getRegion, getRegion, getRegionBlockLocations, getRegionByEncodedName, getRegionByEncodedName, getRegions, getRegions, getRegionServerAccounting, getRegionServerCoprocessorHost, getRegionServerCoprocessors, getRegionServerMetrics, getRegionServerRpcQuotaManager, getRegionServerSpaceQuotaManager, getRegionsInTransitionInRS, getReplicationSourceService, getRootDir, getRpcServer, getRSRpcServices, getSecureBulkLoadManager, getStartcode, getThreadWakeFrequency, getWAL, getWALFileSystem, getWalRoller, getWALRootDir, getWALs, handleReportForDutyResponse, initializeMemStoreChunkCreator, isAborted, isOnline, isStopped, isStopping, kill, movedRegionCleanerPeriod, onConfigurationChange, postOpenDeployTasks, regionLock, remoteProcedureComplete, removeRegion, reportRegionSizesForQuotas, reportRegionStateTransition, sendShutdownInterrupt, setupClusterConnection, shouldUseThisHostnameInstead, stop, stop, toString, tryRegionServerReport, unassign, updateConfig
 uration, updateRegionFavoredNodesMapping, waitForServerOnline, walRollRequestFinished</code></li>
+<code>abort, addRegion, addToMovedRegions, checkFileSystem, cleanMovedRegions, clearRegionBlockCache, closeAllRegions, closeAndOfflineRegionForSplitOrMerge, closeRegion, constructRegionServer, convertThrowableToIOE, createClusterConnection, createConnection, createRegionLoad, createRegionServerStatusStub, createRegionServerStatusStub, execRegionServerService, executeProcedure, getCacheConfig, getChoreService, getClusterConnection, getClusterId, getCompactionPressure, getCompactionRequestor, getCompactSplitThread, getConfiguration, getConfigurationManager, getConnection, getCoordinatedStateManager, getEventLoopGroupConfig, getExecutorService, getFavoredNodesForRegion, getFileSystem, getFlushPressure, getFlushRequester, getFlushThroughputController, getFsTableDescriptors, getHeapMemoryManager, getInfoServer, getLastSequenceId, getLeases, getMasterAddressTracker, getMetaTableLocator, getMetrics, getMostLoadedRegions, getNonceManager, getNumberOfOnlineRegions, getOnlineRegion, getOnline
 RegionsLocalContext, getOnlineTables, getRegion, getRegion, getRegionBlockLocations, getRegionByEncodedName, getRegionByEncodedName, getRegions, getRegions, getRegionServerAccounting, getRegionServerCoprocessorHost, getRegionServerCoprocessors, getRegionServerMetrics, getRegionServerRpcQuotaManager, getRegionServerSpaceQuotaManager, getRegionsInTransitionInRS, getReplicationSourceService, getRootDir, getRpcServer, getRSRpcServices, getSecureBulkLoadManager, getStartcode, getThreadWakeFrequency, getWAL, getWALFileSystem, getWalRoller, getWALRootDir, getWALs, handleReportForDutyResponse, initializeMemStoreChunkCreator, isAborted, isOnline, isStopped, isStopping, kill, movedRegionCleanerPeriod, onConfigurationChange, postOpenDeployTasks, regionLock, remoteProcedureComplete, removeRegion, reportRegionSizesForQuotas, reportRegionStateTransition, sendShutdownInterrupt, setupClusterConnection, shouldUseThisHostnameInstead, stop, toString, tryRegionServerReport, unassign, updateConfiguratio
 n, updateRegionFavoredNodesMapping, waitForServerOnline, walRollRequestFinished</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.util.HasThread">
@@ -319,7 +319,7 @@ extends org.apache.hadoop.hbase.master.HMaster</pre>
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.Stoppable</h3>
-<code>isStopped, stop</code></li>
+<code>isStopped</code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationSource.ShutdownDelayRegionServer.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationSource.ShutdownDelayRegionServer.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationSource.ShutdownDelayRegionServer.html
index bc77511..57738d2 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationSource.ShutdownDelayRegionServer.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationSource.ShutdownDelayRegionServer.html
@@ -169,7 +169,7 @@ extends org.apache.hadoop.hbase.regionserver.HRegionServer</pre>
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.HRegionServer</h3>
-<code>cacheConfig, cacheFlusher, clusterConnection, clusterStatusTracker, compactSplitThread, conf, configurationManager, csm, executorService, fs, fsOk, fsUtilizationChore, hMemManager, infoServer, leases, lock, MASTER_HOSTNAME_KEY, metaTableLocator, movedRegions, msgInterval, numRegionsToReport, onlineRegions, regionFavoredNodesMap, REGIONSERVER, regionsInTransitionInRS, replicationSinkHandler, replicationSourceHandler, rpcServices, secureBulkLoadManager, serverName, sleeper, startcode, tableDescriptors, TEST_SKIP_REPORTING_TRANSITION, threadWakeFrequency, useThisHostnameInstead, walFactory, walFs, walRoller, zooKeeper</code></li>
+<code>cacheConfig, cacheFlusher, clusterConnection, clusterId, clusterStatusTracker, compactSplitThread, conf, configurationManager, csm, executorService, fs, fsOk, fsUtilizationChore, hMemManager, infoServer, leases, lock, MASTER_HOSTNAME_KEY, metaTableLocator, movedRegions, msgInterval, numRegionsToReport, onlineRegions, regionFavoredNodesMap, REGIONSERVER, regionsInTransitionInRS, replicationSinkHandler, replicationSourceHandler, rpcServices, secureBulkLoadManager, serverName, sleeper, startcode, tableDescriptors, TEST_SKIP_REPORTING_TRANSITION, threadWakeFrequency, useThisHostnameInstead, walFactory, walFs, walRoller, zooKeeper</code></li>
 </ul>
 </li>
 </ul>

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/org/apache/hadoop/hbase/zookeeper/TestZKMainServer.NoExitSecurityManager.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/zookeeper/TestZKMainServer.NoExitSecurityManager.html b/testdevapidocs/org/apache/hadoop/hbase/zookeeper/TestZKMainServer.NoExitSecurityManager.html
index 9c1401d..fa192c5 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/zookeeper/TestZKMainServer.NoExitSecurityManager.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/zookeeper/TestZKMainServer.NoExitSecurityManager.html
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/zookeeper/TestZKMainServer.ExitException.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/zookeeper/TestZKMetrics.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/zookeeper/TestZKMulti.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/zookeeper/TestZKMainServer.NoExitSecurityManager.html" target="_top">Frames</a></li>
@@ -300,7 +300,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/SecurityMana
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/zookeeper/TestZKMainServer.ExitException.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/zookeeper/TestZKMetrics.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/zookeeper/TestZKMulti.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/zookeeper/TestZKMainServer.NoExitSecurityManager.html" target="_top">Frames</a></li>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/src-html/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html
index 33e07d2..75687df 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html
@@ -6,7 +6,7 @@
 </head>
 <body>
 <div class="sourceContainer">
-<pre><span class="sourceLineNo">001</span>/**<a name="line.1"></a>
+<pre><span class="sourceLineNo">001</span>/*<a name="line.1"></a>
 <span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.2"></a>
 <span class="sourceLineNo">003</span> * or more contributor license agreements.  See the NOTICE file<a name="line.3"></a>
 <span class="sourceLineNo">004</span> * distributed with this work for additional information<a name="line.4"></a>
@@ -37,190 +37,193 @@
 <span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.util.Threads;<a name="line.29"></a>
 <span class="sourceLineNo">030</span>import org.junit.After;<a name="line.30"></a>
 <span class="sourceLineNo">031</span>import org.junit.Before;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.junit.Rule;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.junit.Test;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.junit.experimental.categories.Category;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.junit.rules.TestName;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.junit.rules.TestRule;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.slf4j.Logger;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.slf4j.LoggerFactory;<a name="line.38"></a>
-<span class="sourceLineNo">039</span><a name="line.39"></a>
-<span class="sourceLineNo">040</span>import java.util.List;<a name="line.40"></a>
-<span class="sourceLineNo">041</span><a name="line.41"></a>
-<span class="sourceLineNo">042</span>import static org.junit.Assert.assertEquals;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import static org.junit.Assert.assertTrue;<a name="line.43"></a>
-<span class="sourceLineNo">044</span><a name="line.44"></a>
-<span class="sourceLineNo">045</span>/**<a name="line.45"></a>
-<span class="sourceLineNo">046</span> * Test options for regions on master; none, system, or any (i.e. master is like any other<a name="line.46"></a>
-<span class="sourceLineNo">047</span> * regionserver). Checks how regions are deployed when each of the options are enabled.<a name="line.47"></a>
-<span class="sourceLineNo">048</span> * It then does kill combinations to make sure the distribution is more than just for startup.<a name="line.48"></a>
-<span class="sourceLineNo">049</span> */<a name="line.49"></a>
-<span class="sourceLineNo">050</span>@Category({MediumTests.class})<a name="line.50"></a>
-<span class="sourceLineNo">051</span>public class TestRegionsOnMasterOptions {<a name="line.51"></a>
-<span class="sourceLineNo">052</span>  private static final Logger LOG = LoggerFactory.getLogger(TestRegionsOnMasterOptions.class);<a name="line.52"></a>
-<span class="sourceLineNo">053</span>  @Rule public TestName name = new TestName();<a name="line.53"></a>
-<span class="sourceLineNo">054</span>  @Rule public final TestRule timeout = CategoryBasedTimeout.builder().withTimeout(this.getClass()).<a name="line.54"></a>
-<span class="sourceLineNo">055</span>    withLookingForStuckThread(true).build();<a name="line.55"></a>
-<span class="sourceLineNo">056</span>  private final static HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();<a name="line.56"></a>
-<span class="sourceLineNo">057</span>  private Configuration c;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>  private String tablesOnMasterOldValue;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>  private String systemTablesOnMasterOldValue;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>  private static final int SLAVES = 3;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>  private static final int MASTERS = 2;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>  // Make the count of REGIONS high enough so I can distingush case where master is only carrying<a name="line.62"></a>
-<span class="sourceLineNo">063</span>  // system regions from the case where it is carrying any region; i.e. 2 system regions vs more<a name="line.63"></a>
-<span class="sourceLineNo">064</span>  // if user + system.<a name="line.64"></a>
-<span class="sourceLineNo">065</span>  private static final int REGIONS = 12;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>  private static final int SYSTEM_REGIONS = 2; // ns and meta -- no acl unless enabled.<a name="line.66"></a>
-<span class="sourceLineNo">067</span><a name="line.67"></a>
-<span class="sourceLineNo">068</span>  @Before<a name="line.68"></a>
-<span class="sourceLineNo">069</span>  public void setup() {<a name="line.69"></a>
-<span class="sourceLineNo">070</span>    this.c = TEST_UTIL.getConfiguration();<a name="line.70"></a>
-<span class="sourceLineNo">071</span>    this.tablesOnMasterOldValue = c.get(LoadBalancer.TABLES_ON_MASTER);<a name="line.71"></a>
-<span class="sourceLineNo">072</span>    this.systemTablesOnMasterOldValue = c.get(LoadBalancer.SYSTEM_TABLES_ON_MASTER);<a name="line.72"></a>
-<span class="sourceLineNo">073</span>  }<a name="line.73"></a>
-<span class="sourceLineNo">074</span><a name="line.74"></a>
-<span class="sourceLineNo">075</span>  @After<a name="line.75"></a>
-<span class="sourceLineNo">076</span>  public void tearDown() {<a name="line.76"></a>
-<span class="sourceLineNo">077</span>    unset(LoadBalancer.TABLES_ON_MASTER, this.tablesOnMasterOldValue);<a name="line.77"></a>
-<span class="sourceLineNo">078</span>    unset(LoadBalancer.SYSTEM_TABLES_ON_MASTER, this.systemTablesOnMasterOldValue);<a name="line.78"></a>
-<span class="sourceLineNo">079</span>  }<a name="line.79"></a>
-<span class="sourceLineNo">080</span><a name="line.80"></a>
-<span class="sourceLineNo">081</span>  private void unset(final String key, final String value) {<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    if (value == null) {<a name="line.82"></a>
-<span class="sourceLineNo">083</span>      c.unset(key);<a name="line.83"></a>
-<span class="sourceLineNo">084</span>    } else {<a name="line.84"></a>
-<span class="sourceLineNo">085</span>      c.set(key, value);<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>  @Test<a name="line.89"></a>
-<span class="sourceLineNo">090</span>  public void testRegionsOnAllServers() throws Exception {<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    c.setBoolean(LoadBalancer.TABLES_ON_MASTER, true);<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    c.setBoolean(LoadBalancer.SYSTEM_TABLES_ON_MASTER, false);<a name="line.92"></a>
-<span class="sourceLineNo">093</span>    int rsCount = (REGIONS + SYSTEM_REGIONS)/(SLAVES + 1/*Master*/);<a name="line.93"></a>
-<span class="sourceLineNo">094</span>    checkBalance(rsCount, rsCount);<a name="line.94"></a>
-<span class="sourceLineNo">095</span>  }<a name="line.95"></a>
-<span class="sourceLineNo">096</span><a name="line.96"></a>
-<span class="sourceLineNo">097</span>  @Test<a name="line.97"></a>
-<span class="sourceLineNo">098</span>  public void testNoRegionOnMaster() throws Exception {<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    c.setBoolean(LoadBalancer.TABLES_ON_MASTER, false);<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    c.setBoolean(LoadBalancer.SYSTEM_TABLES_ON_MASTER, false);<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    int rsCount = (REGIONS + SYSTEM_REGIONS)/SLAVES;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    checkBalance(0, rsCount);<a name="line.102"></a>
-<span class="sourceLineNo">103</span>  }<a name="line.103"></a>
-<span class="sourceLineNo">104</span><a name="line.104"></a>
-<span class="sourceLineNo">105</span>  @Test<a name="line.105"></a>
-<span class="sourceLineNo">106</span>  public void testSystemTablesOnMaster() throws Exception {<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    c.setBoolean(LoadBalancer.TABLES_ON_MASTER, true);<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    c.setBoolean(LoadBalancer.SYSTEM_TABLES_ON_MASTER, true);<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    // IS THIS SHORT-CIRCUIT RPC? Yes. Here is how it looks currently if I have an exception<a name="line.109"></a>
-<span class="sourceLineNo">110</span>    // thrown in doBatchMutate inside a Region.<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    //<a name="line.111"></a>
-<span class="sourceLineNo">112</span>    //    java.lang.Exception<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    //    at org.apache.hadoop.hbase.regionserver.HRegion.doBatchMutate(HRegion.java:3845)<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    //    at org.apache.hadoop.hbase.regionserver.HRegion.put(HRegion.java:2972)<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    //    at org.apache.hadoop.hbase.regionserver.RSRpcServices.mutate(RSRpcServices.java:2751)<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    //    at org.apache.hadoop.hbase.client.ClientServiceCallable.doMutate(ClientServiceCallable.java:55)<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    //    at org.apache.hadoop.hbase.client.HTable$3.rpcCall(HTable.java:585)<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    //    at org.apache.hadoop.hbase.client.HTable$3.rpcCall(HTable.java:579)<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    //    at org.apache.hadoop.hbase.client.RegionServerCallable.call(RegionServerCallable.java:126)<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    //    at org.apache.hadoop.hbase.client.RpcRetryingCallerImpl.callWithRetries(RpcRetryingCallerImpl.java:106)<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    //    at org.apache.hadoop.hbase.client.HTable.put(HTable.java:589)<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    //    at org.apache.hadoop.hbase.master.TableNamespaceManager.insertIntoNSTable(TableNamespaceManager.java:156)<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    //    at org.apache.hadoop.hbase.master.procedure.CreateNamespaceProcedure.insertIntoNSTable(CreateNamespaceProcedure.java:222)<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    //    at org.apache.hadoop.hbase.master.procedure.CreateNamespaceProcedure.executeFromState(CreateNamespaceProcedure.java:76)<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    //    at org.apache.hadoop.hbase.master.procedure.CreateNamespaceProcedure.executeFromState(CreateNamespaceProcedure.java:40)<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    //    at org.apache.hadoop.hbase.procedure2.StateMachineProcedure.execute(StateMachineProcedure.java:181)<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    //    at org.apache.hadoop.hbase.procedure2.Procedure.doExecute(Procedure.java:847)<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    //    at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.execProcedure(ProcedureExecutor.java:1440)<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    //    at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.executeProcedure(ProcedureExecutor.java:1209)<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    //    at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.access$800(ProcedureExecutor.java:79)<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    //    at org.apache.hadoop.hbase.procedure2.ProcedureExecutor$WorkerThread.run(ProcedureExecutor.java:1719)<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    //<a name="line.132"></a>
-<span class="sourceLineNo">133</span>    // If I comment out the ConnectionUtils ConnectionImplementation content, I see this:<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    //<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    //    java.lang.Exception<a name="line.135"></a>
-<span class="sourceLineNo">136</span>    //    at org.apache.hadoop.hbase.regionserver.HRegion.doBatchMutate(HRegion.java:3845)<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    //    at org.apache.hadoop.hbase.regionserver.HRegion.put(HRegion.java:2972)<a name="line.137"></a>
-<span class="sourceLineNo">138</span>    //    at org.apache.hadoop.hbase.regionserver.RSRpcServices.mutate(RSRpcServices.java:2751)<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    //    at org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:41546)<a name="line.139"></a>
-<span class="sourceLineNo">140</span>    //    at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:406)<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    //    at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:133)<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    //    at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:278)<a name="line.142"></a>
-<span class="sourceLineNo">143</span>    //    at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:258)<a name="line.143"></a>
-<span class="sourceLineNo">144</span><a name="line.144"></a>
-<span class="sourceLineNo">145</span>    checkBalance(SYSTEM_REGIONS, REGIONS/SLAVES);<a name="line.145"></a>
-<span class="sourceLineNo">146</span>  }<a name="line.146"></a>
+<span class="sourceLineNo">032</span>import org.junit.Ignore;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.junit.Rule;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.junit.Test;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.junit.experimental.categories.Category;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.junit.rules.TestName;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.junit.rules.TestRule;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.slf4j.Logger;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.slf4j.LoggerFactory;<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>import java.util.List;<a name="line.41"></a>
+<span class="sourceLineNo">042</span><a name="line.42"></a>
+<span class="sourceLineNo">043</span>import static org.junit.Assert.assertEquals;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import static org.junit.Assert.assertTrue;<a name="line.44"></a>
+<span class="sourceLineNo">045</span><a name="line.45"></a>
+<span class="sourceLineNo">046</span>/**<a name="line.46"></a>
+<span class="sourceLineNo">047</span> * Test options for regions on master; none, system, or any (i.e. master is like any other<a name="line.47"></a>
+<span class="sourceLineNo">048</span> * regionserver). Checks how regions are deployed when each of the options are enabled.<a name="line.48"></a>
+<span class="sourceLineNo">049</span> * It then does kill combinations to make sure the distribution is more than just for startup.<a name="line.49"></a>
+<span class="sourceLineNo">050</span> */<a name="line.50"></a>
+<span class="sourceLineNo">051</span>@Category({MediumTests.class})<a name="line.51"></a>
+<span class="sourceLineNo">052</span>public class TestRegionsOnMasterOptions {<a name="line.52"></a>
+<span class="sourceLineNo">053</span>  private static final Logger LOG = LoggerFactory.getLogger(TestRegionsOnMasterOptions.class);<a name="line.53"></a>
+<span class="sourceLineNo">054</span>  @Rule public TestName name = new TestName();<a name="line.54"></a>
+<span class="sourceLineNo">055</span>  @Rule public final TestRule timeout = CategoryBasedTimeout.builder().withTimeout(this.getClass()).<a name="line.55"></a>
+<span class="sourceLineNo">056</span>    withLookingForStuckThread(true).build();<a name="line.56"></a>
+<span class="sourceLineNo">057</span>  private final static HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();<a name="line.57"></a>
+<span class="sourceLineNo">058</span>  private Configuration c;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>  private String tablesOnMasterOldValue;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>  private String systemTablesOnMasterOldValue;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>  private static final int SLAVES = 3;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>  private static final int MASTERS = 2;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>  // Make the count of REGIONS high enough so I can distingush case where master is only carrying<a name="line.63"></a>
+<span class="sourceLineNo">064</span>  // system regions from the case where it is carrying any region; i.e. 2 system regions vs more<a name="line.64"></a>
+<span class="sourceLineNo">065</span>  // if user + system.<a name="line.65"></a>
+<span class="sourceLineNo">066</span>  private static final int REGIONS = 12;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>  private static final int SYSTEM_REGIONS = 2; // ns and meta -- no acl unless enabled.<a name="line.67"></a>
+<span class="sourceLineNo">068</span><a name="line.68"></a>
+<span class="sourceLineNo">069</span>  @Before<a name="line.69"></a>
+<span class="sourceLineNo">070</span>  public void setup() {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>    this.c = TEST_UTIL.getConfiguration();<a name="line.71"></a>
+<span class="sourceLineNo">072</span>    this.tablesOnMasterOldValue = c.get(LoadBalancer.TABLES_ON_MASTER);<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    this.systemTablesOnMasterOldValue = c.get(LoadBalancer.SYSTEM_TABLES_ON_MASTER);<a name="line.73"></a>
+<span class="sourceLineNo">074</span>  }<a name="line.74"></a>
+<span class="sourceLineNo">075</span><a name="line.75"></a>
+<span class="sourceLineNo">076</span>  @After<a name="line.76"></a>
+<span class="sourceLineNo">077</span>  public void tearDown() {<a name="line.77"></a>
+<span class="sourceLineNo">078</span>    unset(LoadBalancer.TABLES_ON_MASTER, this.tablesOnMasterOldValue);<a name="line.78"></a>
+<span class="sourceLineNo">079</span>    unset(LoadBalancer.SYSTEM_TABLES_ON_MASTER, this.systemTablesOnMasterOldValue);<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  }<a name="line.80"></a>
+<span class="sourceLineNo">081</span><a name="line.81"></a>
+<span class="sourceLineNo">082</span>  private void unset(final String key, final String value) {<a name="line.82"></a>
+<span class="sourceLineNo">083</span>    if (value == null) {<a name="line.83"></a>
+<span class="sourceLineNo">084</span>      c.unset(key);<a name="line.84"></a>
+<span class="sourceLineNo">085</span>    } else {<a name="line.85"></a>
+<span class="sourceLineNo">086</span>      c.set(key, value);<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    }<a name="line.87"></a>
+<span class="sourceLineNo">088</span>  }<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>  @Test<a name="line.90"></a>
+<span class="sourceLineNo">091</span>  public void testRegionsOnAllServers() throws Exception {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>    c.setBoolean(LoadBalancer.TABLES_ON_MASTER, true);<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    c.setBoolean(LoadBalancer.SYSTEM_TABLES_ON_MASTER, false);<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    int rsCount = (REGIONS + SYSTEM_REGIONS)/(SLAVES + 1/*Master*/);<a name="line.94"></a>
+<span class="sourceLineNo">095</span>    checkBalance(rsCount, rsCount);<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<a name="line.98"></a>
+<span class="sourceLineNo">099</span>  public void testNoRegionOnMaster() throws Exception {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    c.setBoolean(LoadBalancer.TABLES_ON_MASTER, false);<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    c.setBoolean(LoadBalancer.SYSTEM_TABLES_ON_MASTER, false);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    int rsCount = (REGIONS + SYSTEM_REGIONS)/SLAVES;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    checkBalance(0, rsCount);<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>  @Ignore // Fix this. The Master startup doesn't allow Master reporting as a RegionServer, not<a name="line.106"></a>
+<span class="sourceLineNo">107</span>  // until way late after the Master startup finishes. Needs more work.<a name="line.107"></a>
+<span class="sourceLineNo">108</span>  @Test<a name="line.108"></a>
+<span class="sourceLineNo">109</span>  public void testSystemTablesOnMaster() throws Exception {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    c.setBoolean(LoadBalancer.TABLES_ON_MASTER, true);<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    c.setBoolean(LoadBalancer.SYSTEM_TABLES_ON_MASTER, true);<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    // IS THIS SHORT-CIRCUIT RPC? Yes. Here is how it looks currently if I have an exception<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    // thrown in doBatchMutate inside a Region.<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    //<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    //    java.lang.Exception<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    //    at org.apache.hadoop.hbase.regionserver.HRegion.doBatchMutate(HRegion.java:3845)<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    //    at org.apache.hadoop.hbase.regionserver.HRegion.put(HRegion.java:2972)<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    //    at org.apache.hadoop.hbase.regionserver.RSRpcServices.mutate(RSRpcServices.java:2751)<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    //    at org.apache.hadoop.hbase.client.ClientServiceCallable.doMutate(ClientServiceCallable.java:55)<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    //    at org.apache.hadoop.hbase.client.HTable$3.rpcCall(HTable.java:585)<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    //    at org.apache.hadoop.hbase.client.HTable$3.rpcCall(HTable.java:579)<a name="line.121"></a>
+<span class="sourceLineNo">122</span>    //    at org.apache.hadoop.hbase.client.RegionServerCallable.call(RegionServerCallable.java:126)<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    //    at org.apache.hadoop.hbase.client.RpcRetryingCallerImpl.callWithRetries(RpcRetryingCallerImpl.java:106)<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    //    at org.apache.hadoop.hbase.client.HTable.put(HTable.java:589)<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    //    at org.apache.hadoop.hbase.master.TableNamespaceManager.insertIntoNSTable(TableNamespaceManager.java:156)<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    //    at org.apache.hadoop.hbase.master.procedure.CreateNamespaceProcedure.insertIntoNSTable(CreateNamespaceProcedure.java:222)<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    //    at org.apache.hadoop.hbase.master.procedure.CreateNamespaceProcedure.executeFromState(CreateNamespaceProcedure.java:76)<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    //    at org.apache.hadoop.hbase.master.procedure.CreateNamespaceProcedure.executeFromState(CreateNamespaceProcedure.java:40)<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    //    at org.apache.hadoop.hbase.procedure2.StateMachineProcedure.execute(StateMachineProcedure.java:181)<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    //    at org.apache.hadoop.hbase.procedure2.Procedure.doExecute(Procedure.java:847)<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    //    at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.execProcedure(ProcedureExecutor.java:1440)<a name="line.131"></a>
+<span class="sourceLineNo">132</span>    //    at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.executeProcedure(ProcedureExecutor.java:1209)<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    //    at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.access$800(ProcedureExecutor.java:79)<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    //    at org.apache.hadoop.hbase.procedure2.ProcedureExecutor$WorkerThread.run(ProcedureExecutor.java:1719)<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    //<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    // If I comment out the ConnectionUtils ConnectionImplementation content, I see this:<a name="line.136"></a>
+<span class="sourceLineNo">137</span>    //<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    //    java.lang.Exception<a name="line.138"></a>
+<span class="sourceLineNo">139</span>    //    at org.apache.hadoop.hbase.regionserver.HRegion.doBatchMutate(HRegion.java:3845)<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    //    at org.apache.hadoop.hbase.regionserver.HRegion.put(HRegion.java:2972)<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    //    at org.apache.hadoop.hbase.regionserver.RSRpcServices.mutate(RSRpcServices.java:2751)<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    //    at org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:41546)<a name="line.142"></a>
+<span class="sourceLineNo">143</span>    //    at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:406)<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    //    at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:133)<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    //    at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:278)<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    //    at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:258)<a name="line.146"></a>
 <span class="sourceLineNo">147</span><a name="line.147"></a>
-<span class="sourceLineNo">148</span>  private void checkBalance(int masterCount, int rsCount) throws Exception {<a name="line.148"></a>
-<span class="sourceLineNo">149</span>    MiniHBaseCluster cluster = TEST_UTIL.startMiniCluster(MASTERS, SLAVES);<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    TableName tn = TableName.valueOf(this.name.getMethodName());<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    try {<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      Table t = TEST_UTIL.createMultiRegionTable(tn, HConstants.CATALOG_FAMILY, REGIONS);<a name="line.152"></a>
-<span class="sourceLineNo">153</span>      LOG.info("Server: " + cluster.getMaster().getServerManager().getOnlineServersList());<a name="line.153"></a>
-<span class="sourceLineNo">154</span>      List&lt;HRegion&gt; regions = cluster.getMaster().getRegions();<a name="line.154"></a>
-<span class="sourceLineNo">155</span>      int mActualCount = regions.size();<a name="line.155"></a>
-<span class="sourceLineNo">156</span>      if (masterCount == 0 || masterCount == SYSTEM_REGIONS) {<a name="line.156"></a>
-<span class="sourceLineNo">157</span>        // 0 means no regions on master.<a name="line.157"></a>
-<span class="sourceLineNo">158</span>        assertEquals(masterCount, mActualCount);<a name="line.158"></a>
-<span class="sourceLineNo">159</span>      } else {<a name="line.159"></a>
-<span class="sourceLineNo">160</span>        // This is master as a regionserver scenario.<a name="line.160"></a>
-<span class="sourceLineNo">161</span>        checkCount(masterCount, mActualCount);<a name="line.161"></a>
-<span class="sourceLineNo">162</span>      }<a name="line.162"></a>
-<span class="sourceLineNo">163</span>      // Allow that balance is not exact. FYI, getRegionServerThreads does not include master<a name="line.163"></a>
-<span class="sourceLineNo">164</span>      // thread though it is a regionserver so we have to check master and then below the<a name="line.164"></a>
-<span class="sourceLineNo">165</span>      // regionservers.<a name="line.165"></a>
-<span class="sourceLineNo">166</span>      for (JVMClusterUtil.RegionServerThread rst: cluster.getRegionServerThreads()) {<a name="line.166"></a>
-<span class="sourceLineNo">167</span>        regions = rst.getRegionServer().getRegions();<a name="line.167"></a>
-<span class="sourceLineNo">168</span>        int rsActualCount = regions.size();<a name="line.168"></a>
-<span class="sourceLineNo">169</span>        checkCount(rsActualCount, rsCount);<a name="line.169"></a>
-<span class="sourceLineNo">170</span>      }<a name="line.170"></a>
-<span class="sourceLineNo">171</span>      HMaster oldMaster = cluster.getMaster();<a name="line.171"></a>
-<span class="sourceLineNo">172</span>      cluster.killMaster(oldMaster.getServerName());<a name="line.172"></a>
-<span class="sourceLineNo">173</span>      oldMaster.join();<a name="line.173"></a>
-<span class="sourceLineNo">174</span>      while (cluster.getMaster() == null ||<a name="line.174"></a>
-<span class="sourceLineNo">175</span>          cluster.getMaster().getServerName().equals(oldMaster.getServerName())) {<a name="line.175"></a>
-<span class="sourceLineNo">176</span>        Threads.sleep(10);<a name="line.176"></a>
-<span class="sourceLineNo">177</span>      }<a name="line.177"></a>
-<span class="sourceLineNo">178</span>      while (!cluster.getMaster().isInitialized()) {<a name="line.178"></a>
+<span class="sourceLineNo">148</span>    checkBalance(SYSTEM_REGIONS, REGIONS/SLAVES);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>  }<a name="line.149"></a>
+<span class="sourceLineNo">150</span><a name="line.150"></a>
+<span class="sourceLineNo">151</span>  private void checkBalance(int masterCount, int rsCount) throws Exception {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    MiniHBaseCluster cluster = TEST_UTIL.startMiniCluster(MASTERS, SLAVES);<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    TableName tn = TableName.valueOf(this.name.getMethodName());<a name="line.153"></a>
+<span class="sourceLineNo">154</span>    try {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>      Table t = TEST_UTIL.createMultiRegionTable(tn, HConstants.CATALOG_FAMILY, REGIONS);<a name="line.155"></a>
+<span class="sourceLineNo">156</span>      LOG.info("Server: " + cluster.getMaster().getServerManager().getOnlineServersList());<a name="line.156"></a>
+<span class="sourceLineNo">157</span>      List&lt;HRegion&gt; regions = cluster.getMaster().getRegions();<a name="line.157"></a>
+<span class="sourceLineNo">158</span>      int mActualCount = regions.size();<a name="line.158"></a>
+<span class="sourceLineNo">159</span>      if (masterCount == 0 || masterCount == SYSTEM_REGIONS) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>        // 0 means no regions on master.<a name="line.160"></a>
+<span class="sourceLineNo">161</span>        assertEquals(masterCount, mActualCount);<a name="line.161"></a>
+<span class="sourceLineNo">162</span>      } else {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>        // This is master as a regionserver scenario.<a name="line.163"></a>
+<span class="sourceLineNo">164</span>        checkCount(masterCount, mActualCount);<a name="line.164"></a>
+<span class="sourceLineNo">165</span>      }<a name="line.165"></a>
+<span class="sourceLineNo">166</span>      // Allow that balance is not exact. FYI, getRegionServerThreads does not include master<a name="line.166"></a>
+<span class="sourceLineNo">167</span>      // thread though it is a regionserver so we have to check master and then below the<a name="line.167"></a>
+<span class="sourceLineNo">168</span>      // regionservers.<a name="line.168"></a>
+<span class="sourceLineNo">169</span>      for (JVMClusterUtil.RegionServerThread rst: cluster.getRegionServerThreads()) {<a name="line.169"></a>
+<span class="sourceLineNo">170</span>        regions = rst.getRegionServer().getRegions();<a name="line.170"></a>
+<span class="sourceLineNo">171</span>        int rsActualCount = regions.size();<a name="line.171"></a>
+<span class="sourceLineNo">172</span>        checkCount(rsActualCount, rsCount);<a name="line.172"></a>
+<span class="sourceLineNo">173</span>      }<a name="line.173"></a>
+<span class="sourceLineNo">174</span>      HMaster oldMaster = cluster.getMaster();<a name="line.174"></a>
+<span class="sourceLineNo">175</span>      cluster.killMaster(oldMaster.getServerName());<a name="line.175"></a>
+<span class="sourceLineNo">176</span>      oldMaster.join();<a name="line.176"></a>
+<span class="sourceLineNo">177</span>      while (cluster.getMaster() == null ||<a name="line.177"></a>
+<span class="sourceLineNo">178</span>          cluster.getMaster().getServerName().equals(oldMaster.getServerName())) {<a name="line.178"></a>
 <span class="sourceLineNo">179</span>        Threads.sleep(10);<a name="line.179"></a>
 <span class="sourceLineNo">180</span>      }<a name="line.180"></a>
-<span class="sourceLineNo">181</span>      while (cluster.getMaster().getAssignmentManager().<a name="line.181"></a>
-<span class="sourceLineNo">182</span>          computeRegionInTransitionStat().getTotalRITs() &gt; 0) {<a name="line.182"></a>
-<span class="sourceLineNo">183</span>        Threads.sleep(100);<a name="line.183"></a>
-<span class="sourceLineNo">184</span>        LOG.info("Waiting on RIT to go to zero before calling balancer...");<a name="line.184"></a>
-<span class="sourceLineNo">185</span>      }<a name="line.185"></a>
-<span class="sourceLineNo">186</span>      LOG.info("Cluster is up; running balancer");<a name="line.186"></a>
-<span class="sourceLineNo">187</span>      cluster.getMaster().balance();<a name="line.187"></a>
-<span class="sourceLineNo">188</span>      regions = cluster.getMaster().getRegions();<a name="line.188"></a>
-<span class="sourceLineNo">189</span>      int mNewActualCount = regions.size();<a name="line.189"></a>
-<span class="sourceLineNo">190</span>      if (masterCount == 0 || masterCount == SYSTEM_REGIONS) {<a name="line.190"></a>
-<span class="sourceLineNo">191</span>        // 0 means no regions on master. After crash, should still be no regions on master.<a name="line.191"></a>
-<span class="sourceLineNo">192</span>        // If masterCount == SYSTEM_REGIONS, means master only carrying system regions and should<a name="line.192"></a>
-<span class="sourceLineNo">193</span>        // still only carry system regions post crash.<a name="line.193"></a>
-<span class="sourceLineNo">194</span>        assertEquals(masterCount, mNewActualCount);<a name="line.194"></a>
-<span class="sourceLineNo">195</span>      }<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      // Disable balancer and wait till RIT done else cluster won't go down.<a name="line.196"></a>
-<span class="sourceLineNo">197</span>      TEST_UTIL.getAdmin().balancerSwitch(false, true);<a name="line.197"></a>
-<span class="sourceLineNo">198</span>      while (true) {<a name="line.198"></a>
-<span class="sourceLineNo">199</span>        if (!TEST_UTIL.getHBaseCluster().getMaster().getAssignmentManager().<a name="line.199"></a>
-<span class="sourceLineNo">200</span>            isMetaRegionInTransition()) {<a name="line.200"></a>
-<span class="sourceLineNo">201</span>          break;<a name="line.201"></a>
-<span class="sourceLineNo">202</span>        }<a name="line.202"></a>
-<span class="sourceLineNo">203</span>        Threads.sleep(10);<a name="line.203"></a>
-<span class="sourceLineNo">204</span>      }<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    } finally {<a name="line.205"></a>
-<span class="sourceLineNo">206</span>      LOG.info("Running shutdown of cluster");<a name="line.206"></a>
-<span class="sourceLineNo">207</span>      TEST_UTIL.shutdownMiniCluster();<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><a name="line.210"></a>
-<span class="sourceLineNo">211</span>  private void checkCount(int actual, int expected) {<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    assertTrue("Actual=" + actual + ", expected=" + expected,<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    actual &gt;= (expected - 2) &amp;&amp; actual &lt;= (expected + 2)); // Lots of slop +/- 2<a name="line.213"></a>
-<span class="sourceLineNo">214</span>  }<a name="line.214"></a>
-<span class="sourceLineNo">215</span>}<a name="line.215"></a>
+<span class="sourceLineNo">181</span>      while (!cluster.getMaster().isInitialized()) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>        Threads.sleep(10);<a name="line.182"></a>
+<span class="sourceLineNo">183</span>      }<a name="line.183"></a>
+<span class="sourceLineNo">184</span>      while (cluster.getMaster().getAssignmentManager().<a name="line.184"></a>
+<span class="sourceLineNo">185</span>          computeRegionInTransitionStat().getTotalRITs() &gt; 0) {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>        Threads.sleep(100);<a name="line.186"></a>
+<span class="sourceLineNo">187</span>        LOG.info("Waiting on RIT to go to zero before calling balancer...");<a name="line.187"></a>
+<span class="sourceLineNo">188</span>      }<a name="line.188"></a>
+<span class="sourceLineNo">189</span>      LOG.info("Cluster is up; running balancer");<a name="line.189"></a>
+<span class="sourceLineNo">190</span>      cluster.getMaster().balance();<a name="line.190"></a>
+<span class="sourceLineNo">191</span>      regions = cluster.getMaster().getRegions();<a name="line.191"></a>
+<span class="sourceLineNo">192</span>      int mNewActualCount = regions.size();<a name="line.192"></a>
+<span class="sourceLineNo">193</span>      if (masterCount == 0 || masterCount == SYSTEM_REGIONS) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>        // 0 means no regions on master. After crash, should still be no regions on master.<a name="line.194"></a>
+<span class="sourceLineNo">195</span>        // If masterCount == SYSTEM_REGIONS, means master only carrying system regions and should<a name="line.195"></a>
+<span class="sourceLineNo">196</span>        // still only carry system regions post crash.<a name="line.196"></a>
+<span class="sourceLineNo">197</span>        assertEquals(masterCount, mNewActualCount);<a name="line.197"></a>
+<span class="sourceLineNo">198</span>      }<a name="line.198"></a>
+<span class="sourceLineNo">199</span>      // Disable balancer and wait till RIT done else cluster won't go down.<a name="line.199"></a>
+<span class="sourceLineNo">200</span>      TEST_UTIL.getAdmin().balancerSwitch(false, true);<a name="line.200"></a>
+<span class="sourceLineNo">201</span>      while (true) {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>        if (!TEST_UTIL.getHBaseCluster().getMaster().getAssignmentManager().<a name="line.202"></a>
+<span class="sourceLineNo">203</span>            isMetaRegionInTransition()) {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>          break;<a name="line.204"></a>
+<span class="sourceLineNo">205</span>        }<a name="line.205"></a>
+<span class="sourceLineNo">206</span>        Threads.sleep(10);<a name="line.206"></a>
+<span class="sourceLineNo">207</span>      }<a name="line.207"></a>
+<span class="sourceLineNo">208</span>    } finally {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>      LOG.info("Running shutdown of cluster");<a name="line.209"></a>
+<span class="sourceLineNo">210</span>      TEST_UTIL.shutdownMiniCluster();<a name="line.210"></a>
+<span class="sourceLineNo">211</span>    }<a name="line.211"></a>
+<span class="sourceLineNo">212</span>  }<a name="line.212"></a>
+<span class="sourceLineNo">213</span><a name="line.213"></a>
+<span class="sourceLineNo">214</span>  private void checkCount(int actual, int expected) {<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    assertTrue("Actual=" + actual + ", expected=" + expected,<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    actual &gt;= (expected - 2) &amp;&amp; actual &lt;= (expected + 2)); // Lots of slop +/- 2<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>
 
 
 


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/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 1fc3ca7..ec25b93 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.html
@@ -62,3477 +62,3486 @@
 <span class="sourceLineNo">054</span>import javax.servlet.http.HttpServletResponse;<a name="line.54"></a>
 <span class="sourceLineNo">055</span>import org.apache.hadoop.conf.Configuration;<a name="line.55"></a>
 <span class="sourceLineNo">056</span>import org.apache.hadoop.fs.Path;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.ClusterMetrics;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.ClusterMetrics.Option;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.ClusterMetricsBuilder;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.CoordinatedStateException;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.DoNotRetryIOException;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.HBaseIOException;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.HBaseInterfaceAudience;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.HConstants;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.InvalidFamilyOperationException;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.MasterNotRunningException;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.PleaseHoldException;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.ReplicationPeerNotFoundException;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.ServerLoad;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.ServerMetricsBuilder;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.ServerName;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.TableDescriptors;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.TableName;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.TableNotDisabledException;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.client.MasterSwitchType;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.client.RegionInfo;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.client.Result;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.client.TableDescriptor;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.client.TableDescriptorBuilder;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.client.TableState;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.coprocessor.CoprocessorHost;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.exceptions.MergeRegionException;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.executor.ExecutorType;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.favored.FavoredNodesManager;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.favored.FavoredNodesPromoter;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.http.InfoServer;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.ipc.RpcServer;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.ipc.ServerNotRunningYetException;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.log.HBaseMarkers;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.master.MasterRpcServices.BalanceSwitchMode;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.master.assignment.AssignmentManager;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.master.assignment.MergeTableRegionsProcedure;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.master.assignment.RegionStates;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.master.assignment.RegionStates.RegionStateNode;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.master.balancer.BalancerChore;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.master.balancer.ClusterStatusChore;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.master.balancer.LoadBalancerFactory;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.master.cleaner.HFileCleaner;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.master.cleaner.LogCleaner;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.master.cleaner.ReplicationMetaCleaner;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.master.locking.LockManager;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.master.normalizer.NormalizationPlan;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.master.normalizer.NormalizationPlan.PlanType;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizer;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizerChore;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizerFactory;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.master.procedure.CreateTableProcedure;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.master.procedure.DeleteTableProcedure;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.master.procedure.DisableTableProcedure;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.master.procedure.EnableTableProcedure;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureConstants;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureUtil;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.master.procedure.ModifyTableProcedure;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.master.procedure.ProcedurePrepareLatch;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.master.procedure.RecoverMetaProcedure;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.master.procedure.TruncateTableProcedure;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.master.replication.AddPeerProcedure;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.master.replication.DisablePeerProcedure;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.master.replication.EnablePeerProcedure;<a name="line.130"></a>
-<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.master.replication.ModifyPeerProcedure;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.master.replication.RemovePeerProcedure;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.master.replication.ReplicationPeerManager;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.master.replication.UpdatePeerConfigProcedure;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.master.snapshot.SnapshotManager;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.mob.MobConstants;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.monitoring.MemoryBoundedLogMessageBuffer;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.monitoring.MonitoredTask;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.monitoring.TaskMonitor;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.procedure.MasterProcedureManagerHost;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.procedure.flush.MasterFlushTableProcedureManager;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.procedure2.LockedResource;<a name="line.142"></a>
-<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.procedure2.Procedure;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.procedure2.ProcedureEvent;<a name="line.144"></a>
-<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.procedure2.ProcedureExecutor;<a name="line.145"></a>
-<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.procedure2.RemoteProcedureDispatcher.RemoteProcedure;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.procedure2.RemoteProcedureException;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.procedure2.store.wal.WALProcedureStore;<a name="line.148"></a>
-<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.quotas.MasterQuotaManager;<a name="line.149"></a>
-<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.quotas.MasterSpaceQuotaObserver;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.quotas.QuotaObserverChore;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.quotas.QuotaUtil;<a name="line.152"></a>
-<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.quotas.SnapshotQuotaObserverChore;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.quotas.SpaceQuotaSnapshotNotifier;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.quotas.SpaceQuotaSnapshotNotifierFactory;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.regionserver.DefaultStoreEngine;<a name="line.156"></a>
-<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.regionserver.HRegionServer;<a name="line.157"></a>
-<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.regionserver.HStore;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.regionserver.RSRpcServices;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost;<a name="line.160"></a>
-<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.regionserver.RegionSplitPolicy;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.regionserver.compactions.ExploringCompactionPolicy;<a name="line.162"></a>
-<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.regionserver.compactions.FIFOCompactionPolicy;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.164"></a>
-<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.replication.master.ReplicationPeerConfigUpgrader;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.replication.regionserver.Replication;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.security.AccessDeniedException;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.security.UserProvider;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.trace.TraceUtil;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.util.Addressing;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.173"></a>
-<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.util.CompressionTest;<a name="line.174"></a>
-<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.util.EncryptionTest;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.util.HFileArchiveUtil;<a name="line.176"></a>
-<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.util.HasThread;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.util.IdLock;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.util.ModifyRegionUtils;<a name="line.179"></a>
-<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.180"></a>
-<span class="sourceLineNo">181</span>import org.apache.hadoop.hbase.util.Threads;<a name="line.181"></a>
-<span class="sourceLineNo">182</span>import org.apache.hadoop.hbase.util.VersionInfo;<a name="line.182"></a>
-<span class="sourceLineNo">183</span>import org.apache.hadoop.hbase.util.ZKDataMigrator;<a name="line.183"></a>
-<span class="sourceLineNo">184</span>import org.apache.hadoop.hbase.zookeeper.LoadBalancerTracker;<a name="line.184"></a>
-<span class="sourceLineNo">185</span>import org.apache.hadoop.hbase.zookeeper.MasterAddressTracker;<a name="line.185"></a>
-<span class="sourceLineNo">186</span>import org.apache.hadoop.hbase.zookeeper.MasterMaintenanceModeTracker;<a name="line.186"></a>
-<span class="sourceLineNo">187</span>import org.apache.hadoop.hbase.zookeeper.RegionNormalizerTracker;<a name="line.187"></a>
-<span class="sourceLineNo">188</span>import org.apache.hadoop.hbase.zookeeper.ZKClusterId;<a name="line.188"></a>
-<span class="sourceLineNo">189</span>import org.apache.hadoop.hbase.zookeeper.ZKUtil;<a name="line.189"></a>
-<span class="sourceLineNo">190</span>import org.apache.hadoop.hbase.zookeeper.ZKWatcher;<a name="line.190"></a>
-<span class="sourceLineNo">191</span>import org.apache.hadoop.hbase.zookeeper.ZNodePaths;<a name="line.191"></a>
-<span class="sourceLineNo">192</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.192"></a>
-<span class="sourceLineNo">193</span>import org.apache.zookeeper.KeeperException;<a name="line.193"></a>
-<span class="sourceLineNo">194</span>import org.eclipse.jetty.server.Server;<a name="line.194"></a>
-<span class="sourceLineNo">195</span>import org.eclipse.jetty.server.ServerConnector;<a name="line.195"></a>
-<span class="sourceLineNo">196</span>import org.eclipse.jetty.servlet.ServletHolder;<a name="line.196"></a>
-<span class="sourceLineNo">197</span>import org.eclipse.jetty.webapp.WebAppContext;<a name="line.197"></a>
-<span class="sourceLineNo">198</span>import org.slf4j.Logger;<a name="line.198"></a>
-<span class="sourceLineNo">199</span>import org.slf4j.LoggerFactory;<a name="line.199"></a>
-<span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>import org.apache.hbase.thirdparty.com.google.common.annotations.VisibleForTesting;<a name="line.201"></a>
-<span class="sourceLineNo">202</span>import org.apache.hbase.thirdparty.com.google.common.collect.Lists;<a name="line.202"></a>
-<span class="sourceLineNo">203</span>import org.apache.hbase.thirdparty.com.google.common.collect.Maps;<a name="line.203"></a>
-<span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.205"></a>
-<span class="sourceLineNo">206</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetRegionInfoResponse.CompactionState;<a name="line.206"></a>
-<span class="sourceLineNo">207</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionServerInfo;<a name="line.207"></a>
-<span class="sourceLineNo">208</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.Quotas;<a name="line.208"></a>
-<span class="sourceLineNo">209</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.SpaceViolationPolicy;<a name="line.209"></a>
-<span class="sourceLineNo">210</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription;<a name="line.210"></a>
-<span class="sourceLineNo">211</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos;<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> * HMaster is the "master server" for HBase. An HBase cluster has one active<a name="line.214"></a>
-<span class="sourceLineNo">215</span> * master.  If many masters are started, all compete.  Whichever wins goes on to<a name="line.215"></a>
-<span class="sourceLineNo">216</span> * run the cluster.  All others park themselves in their constructor until<a name="line.216"></a>
-<span class="sourceLineNo">217</span> * master or cluster shutdown or until the active master loses its lease in<a name="line.217"></a>
-<span class="sourceLineNo">218</span> * zookeeper.  Thereafter, all running master jostle to take over master role.<a name="line.218"></a>
-<span class="sourceLineNo">219</span> *<a name="line.219"></a>
-<span class="sourceLineNo">220</span> * &lt;p&gt;The Master can be asked shutdown the cluster. See {@link #shutdown()}.  In<a name="line.220"></a>
-<span class="sourceLineNo">221</span> * this case it will tell all regionservers to go down and then wait on them<a name="line.221"></a>
-<span class="sourceLineNo">222</span> * all reporting in that they are down.  This master will then shut itself down.<a name="line.222"></a>
-<span class="sourceLineNo">223</span> *<a name="line.223"></a>
-<span class="sourceLineNo">224</span> * &lt;p&gt;You can also shutdown just this master.  Call {@link #stopMaster()}.<a name="line.224"></a>
-<span class="sourceLineNo">225</span> *<a name="line.225"></a>
-<span class="sourceLineNo">226</span> * @see org.apache.zookeeper.Watcher<a name="line.226"></a>
-<span class="sourceLineNo">227</span> */<a name="line.227"></a>
-<span class="sourceLineNo">228</span>@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.TOOLS)<a name="line.228"></a>
-<span class="sourceLineNo">229</span>@SuppressWarnings("deprecation")<a name="line.229"></a>
-<span class="sourceLineNo">230</span>public class HMaster extends HRegionServer implements MasterServices {<a name="line.230"></a>
-<span class="sourceLineNo">231</span>  private static Logger LOG = LoggerFactory.getLogger(HMaster.class.getName());<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>   * Protection against zombie master. Started once Master accepts active responsibility and<a name="line.234"></a>
-<span class="sourceLineNo">235</span>   * starts taking over responsibilities. Allows a finite time window before giving up ownership.<a name="line.235"></a>
-<span class="sourceLineNo">236</span>   */<a name="line.236"></a>
-<span class="sourceLineNo">237</span>  private static class InitializationMonitor extends HasThread {<a name="line.237"></a>
-<span class="sourceLineNo">238</span>    /** The amount of time in milliseconds to sleep before checking initialization status. */<a name="line.238"></a>
-<span class="sourceLineNo">239</span>    public static final String TIMEOUT_KEY = "hbase.master.initializationmonitor.timeout";<a name="line.239"></a>
-<span class="sourceLineNo">240</span>    public static final long TIMEOUT_DEFAULT = TimeUnit.MILLISECONDS.convert(15, TimeUnit.MINUTES);<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>     * When timeout expired and initialization has not complete, call {@link System#exit(int)} when<a name="line.243"></a>
-<span class="sourceLineNo">244</span>     * true, do nothing otherwise.<a name="line.244"></a>
-<span class="sourceLineNo">245</span>     */<a name="line.245"></a>
-<span class="sourceLineNo">246</span>    public static final String HALT_KEY = "hbase.master.initializationmonitor.haltontimeout";<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    public static final boolean HALT_DEFAULT = false;<a name="line.247"></a>
-<span class="sourceLineNo">248</span><a name="line.248"></a>
-<span class="sourceLineNo">249</span>    private final HMaster master;<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    private final long timeout;<a name="line.250"></a>
-<span class="sourceLineNo">251</span>    private final boolean haltOnTimeout;<a name="line.251"></a>
-<span class="sourceLineNo">252</span><a name="line.252"></a>
-<span class="sourceLineNo">253</span>    /** Creates a Thread that monitors the {@link #isInitialized()} state. */<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    InitializationMonitor(HMaster master) {<a name="line.254"></a>
-<span class="sourceLineNo">255</span>      super("MasterInitializationMonitor");<a name="line.255"></a>
-<span class="sourceLineNo">256</span>      this.master = master;<a name="line.256"></a>
-<span class="sourceLineNo">257</span>      this.timeout = master.getConfiguration().getLong(TIMEOUT_KEY, TIMEOUT_DEFAULT);<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      this.haltOnTimeout = master.getConfiguration().getBoolean(HALT_KEY, HALT_DEFAULT);<a name="line.258"></a>
-<span class="sourceLineNo">259</span>      this.setDaemon(true);<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>    @Override<a name="line.262"></a>
-<span class="sourceLineNo">263</span>    public void run() {<a name="line.263"></a>
-<span class="sourceLineNo">264</span>      try {<a name="line.264"></a>
-<span class="sourceLineNo">265</span>        while (!master.isStopped() &amp;&amp; master.isActiveMaster()) {<a name="line.265"></a>
-<span class="sourceLineNo">266</span>          Thread.sleep(timeout);<a name="line.266"></a>
-<span class="sourceLineNo">267</span>          if (master.isInitialized()) {<a name="line.267"></a>
-<span class="sourceLineNo">268</span>            LOG.debug("Initialization completed within allotted tolerance. Monitor exiting.");<a name="line.268"></a>
-<span class="sourceLineNo">269</span>          } else {<a name="line.269"></a>
-<span class="sourceLineNo">270</span>            LOG.error("Master failed to complete initialization after " + timeout + "ms. Please"<a name="line.270"></a>
-<span class="sourceLineNo">271</span>                + " consider submitting a bug report including a thread dump of this process.");<a name="line.271"></a>
-<span class="sourceLineNo">272</span>            if (haltOnTimeout) {<a name="line.272"></a>
-<span class="sourceLineNo">273</span>              LOG.error("Zombie Master exiting. Thread dump to stdout");<a name="line.273"></a>
-<span class="sourceLineNo">274</span>              Threads.printThreadInfo(System.out, "Zombie HMaster");<a name="line.274"></a>
-<span class="sourceLineNo">275</span>              System.exit(-1);<a name="line.275"></a>
-<span class="sourceLineNo">276</span>            }<a name="line.276"></a>
-<span class="sourceLineNo">277</span>          }<a name="line.277"></a>
-<span class="sourceLineNo">278</span>        }<a name="line.278"></a>
-<span class="sourceLineNo">279</span>      } catch (InterruptedException ie) {<a name="line.279"></a>
-<span class="sourceLineNo">280</span>        LOG.trace("InitMonitor thread interrupted. Existing.");<a name="line.280"></a>
-<span class="sourceLineNo">281</span>      }<a name="line.281"></a>
-<span class="sourceLineNo">282</span>    }<a name="line.282"></a>
-<span class="sourceLineNo">283</span>  }<a name="line.283"></a>
-<span class="sourceLineNo">284</span><a name="line.284"></a>
-<span class="sourceLineNo">285</span>  // MASTER is name of the webapp and the attribute name used stuffing this<a name="line.285"></a>
-<span class="sourceLineNo">286</span>  //instance into web context.<a name="line.286"></a>
-<span class="sourceLineNo">287</span>  public static final String MASTER = "master";<a name="line.287"></a>
-<span class="sourceLineNo">288</span><a name="line.288"></a>
-<span class="sourceLineNo">289</span>  // Manager and zk listener for master election<a name="line.289"></a>
-<span class="sourceLineNo">290</span>  private final ActiveMasterManager activeMasterManager;<a name="line.290"></a>
-<span class="sourceLineNo">291</span>  // Region server tracker<a name="line.291"></a>
-<span class="sourceLineNo">292</span>  RegionServerTracker regionServerTracker;<a name="line.292"></a>
-<span class="sourceLineNo">293</span>  // Draining region server tracker<a name="line.293"></a>
-<span class="sourceLineNo">294</span>  private DrainingServerTracker drainingServerTracker;<a name="line.294"></a>
-<span class="sourceLineNo">295</span>  // Tracker for load balancer state<a name="line.295"></a>
-<span class="sourceLineNo">296</span>  LoadBalancerTracker loadBalancerTracker;<a name="line.296"></a>
-<span class="sourceLineNo">297</span><a name="line.297"></a>
-<span class="sourceLineNo">298</span>  // Tracker for split and merge state<a name="line.298"></a>
-<span class="sourceLineNo">299</span>  private SplitOrMergeTracker splitOrMergeTracker;<a name="line.299"></a>
-<span class="sourceLineNo">300</span><a name="line.300"></a>
-<span class="sourceLineNo">301</span>  // Tracker for region normalizer state<a name="line.301"></a>
-<span class="sourceLineNo">302</span>  private RegionNormalizerTracker regionNormalizerTracker;<a name="line.302"></a>
-<span class="sourceLineNo">303</span><a name="line.303"></a>
-<span class="sourceLineNo">304</span>  //Tracker for master maintenance mode setting<a name="line.304"></a>
-<span class="sourceLineNo">305</span>  private MasterMaintenanceModeTracker maintenanceModeTracker;<a name="line.305"></a>
-<span class="sourceLineNo">306</span><a name="line.306"></a>
-<span class="sourceLineNo">307</span>  private ClusterSchemaService clusterSchemaService;<a name="line.307"></a>
-<span class="sourceLineNo">308</span><a name="line.308"></a>
-<span class="sourceLineNo">309</span>  public static final String HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS =<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    "hbase.master.wait.on.service.seconds";<a name="line.310"></a>
-<span class="sourceLineNo">311</span>  public static final int DEFAULT_HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS = 5 * 60;<a name="line.311"></a>
-<span class="sourceLineNo">312</span><a name="line.312"></a>
-<span class="sourceLineNo">313</span>  // Metrics for the HMaster<a name="line.313"></a>
-<span class="sourceLineNo">314</span>  final MetricsMaster metricsMaster;<a name="line.314"></a>
-<span class="sourceLineNo">315</span>  // file system manager for the master FS operations<a name="line.315"></a>
-<span class="sourceLineNo">316</span>  private MasterFileSystem fileSystemManager;<a name="line.316"></a>
-<span class="sourceLineNo">317</span>  private MasterWalManager walManager;<a name="line.317"></a>
-<span class="sourceLineNo">318</span><a name="line.318"></a>
-<span class="sourceLineNo">319</span>  // server manager to deal with region server info<a name="line.319"></a>
-<span class="sourceLineNo">320</span>  private volatile ServerManager serverManager;<a name="line.320"></a>
-<span class="sourceLineNo">321</span><a name="line.321"></a>
-<span class="sourceLineNo">322</span>  // manager of assignment nodes in zookeeper<a name="line.322"></a>
-<span class="sourceLineNo">323</span>  private AssignmentManager assignmentManager;<a name="line.323"></a>
-<span class="sourceLineNo">324</span><a name="line.324"></a>
-<span class="sourceLineNo">325</span>  // manager of replication<a name="line.325"></a>
-<span class="sourceLineNo">326</span>  private ReplicationPeerManager replicationPeerManager;<a name="line.326"></a>
-<span class="sourceLineNo">327</span><a name="line.327"></a>
-<span class="sourceLineNo">328</span>  // buffer for "fatal error" notices from region servers<a name="line.328"></a>
-<span class="sourceLineNo">329</span>  // in the cluster. This is only used for assisting<a name="line.329"></a>
-<span class="sourceLineNo">330</span>  // operations/debugging.<a name="line.330"></a>
-<span class="sourceLineNo">331</span>  MemoryBoundedLogMessageBuffer rsFatals;<a name="line.331"></a>
-<span class="sourceLineNo">332</span><a name="line.332"></a>
-<span class="sourceLineNo">333</span>  // flag set after we become the active master (used for testing)<a name="line.333"></a>
-<span class="sourceLineNo">334</span>  private volatile boolean activeMaster = false;<a name="line.334"></a>
-<span class="sourceLineNo">335</span><a name="line.335"></a>
-<span class="sourceLineNo">336</span>  // flag set after we complete initialization once active<a name="line.336"></a>
-<span class="sourceLineNo">337</span>  private final ProcedureEvent&lt;?&gt; initialized = new ProcedureEvent&lt;&gt;("master initialized");<a name="line.337"></a>
-<span class="sourceLineNo">338</span><a name="line.338"></a>
-<span class="sourceLineNo">339</span>  // flag set after master services are started,<a name="line.339"></a>
-<span class="sourceLineNo">340</span>  // initialization may have not completed yet.<a name="line.340"></a>
-<span class="sourceLineNo">341</span>  volatile boolean serviceStarted = false;<a name="line.341"></a>
-<span class="sourceLineNo">342</span><a name="line.342"></a>
-<span class="sourceLineNo">343</span>  // flag set after we complete assignMeta.<a name="line.343"></a>
-<span class="sourceLineNo">344</span>  private final ProcedureEvent&lt;?&gt; serverCrashProcessingEnabled =<a name="line.344"></a>
-<span class="sourceLineNo">345</span>    new ProcedureEvent&lt;&gt;("server crash processing");<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>  // Maximum time we should run balancer for<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  private final int maxBlancingTime;<a name="line.348"></a>
-<span class="sourceLineNo">349</span>  // Maximum percent of regions in transition when balancing<a name="line.349"></a>
-<span class="sourceLineNo">350</span>  private final double maxRitPercent;<a name="line.350"></a>
-<span class="sourceLineNo">351</span><a name="line.351"></a>
-<span class="sourceLineNo">352</span>  private final LockManager lockManager = new LockManager(this);<a name="line.352"></a>
-<span class="sourceLineNo">353</span><a name="line.353"></a>
-<span class="sourceLineNo">354</span>  private LoadBalancer balancer;<a name="line.354"></a>
-<span class="sourceLineNo">355</span>  private RegionNormalizer normalizer;<a name="line.355"></a>
-<span class="sourceLineNo">356</span>  private BalancerChore balancerChore;<a name="line.356"></a>
-<span class="sourceLineNo">357</span>  private RegionNormalizerChore normalizerChore;<a name="line.357"></a>
-<span class="sourceLineNo">358</span>  private ClusterStatusChore clusterStatusChore;<a name="line.358"></a>
-<span class="sourceLineNo">359</span>  private ClusterStatusPublisher clusterStatusPublisherChore = null;<a name="line.359"></a>
-<span class="sourceLineNo">360</span><a name="line.360"></a>
-<span class="sourceLineNo">361</span>  CatalogJanitor catalogJanitorChore;<a name="line.361"></a>
-<span class="sourceLineNo">362</span>  private ReplicationMetaCleaner replicationMetaCleaner;<a name="line.362"></a>
-<span class="sourceLineNo">363</span>  private LogCleaner logCleaner;<a name="line.363"></a>
-<span class="sourceLineNo">364</span>  private HFileCleaner hfileCleaner;<a name="line.364"></a>
-<span class="sourceLineNo">365</span>  private ExpiredMobFileCleanerChore expiredMobFileCleanerChore;<a name="line.365"></a>
-<span class="sourceLineNo">366</span>  private MobCompactionChore mobCompactChore;<a name="line.366"></a>
-<span class="sourceLineNo">367</span>  private MasterMobCompactionThread mobCompactThread;<a name="line.367"></a>
-<span class="sourceLineNo">368</span>  // used to synchronize the mobCompactionStates<a name="line.368"></a>
-<span class="sourceLineNo">369</span>  private final IdLock mobCompactionLock = new IdLock();<a name="line.369"></a>
-<span class="sourceLineNo">370</span>  // save the information of mob compactions in tables.<a name="line.370"></a>
-<span class="sourceLineNo">371</span>  // the key is table name, the value is the number of compactions in that table.<a name="line.371"></a>
-<span class="sourceLineNo">372</span>  private Map&lt;TableName, AtomicInteger&gt; mobCompactionStates = Maps.newConcurrentMap();<a name="line.372"></a>
-<span class="sourceLineNo">373</span><a name="line.373"></a>
-<span class="sourceLineNo">374</span>  MasterCoprocessorHost cpHost;<a name="line.374"></a>
-<span class="sourceLineNo">375</span><a name="line.375"></a>
-<span class="sourceLineNo">376</span>  private final boolean preLoadTableDescriptors;<a name="line.376"></a>
-<span class="sourceLineNo">377</span><a name="line.377"></a>
-<span class="sourceLineNo">378</span>  // Time stamps for when a hmaster became active<a name="line.378"></a>
-<span class="sourceLineNo">379</span>  private long masterActiveTime;<a name="line.379"></a>
-<span class="sourceLineNo">380</span><a name="line.380"></a>
-<span class="sourceLineNo">381</span>  // Time stamp for when HMaster finishes becoming Active Master<a name="line.381"></a>
-<span class="sourceLineNo">382</span>  private long masterFinishedInitializationTime;<a name="line.382"></a>
-<span class="sourceLineNo">383</span><a name="line.383"></a>
-<span class="sourceLineNo">384</span>  //should we check the compression codec type at master side, default true, HBASE-6370<a name="line.384"></a>
-<span class="sourceLineNo">385</span>  private final boolean masterCheckCompression;<a name="line.385"></a>
-<span class="sourceLineNo">386</span><a name="line.386"></a>
-<span class="sourceLineNo">387</span>  //should we check encryption settings at master side, default true<a name="line.387"></a>
-<span class="sourceLineNo">388</span>  private final boolean masterCheckEncryption;<a name="line.388"></a>
-<span class="sourceLineNo">389</span><a name="line.389"></a>
-<span class="sourceLineNo">390</span>  Map&lt;String, Service&gt; coprocessorServiceHandlers = Maps.newHashMap();<a name="line.390"></a>
-<span class="sourceLineNo">391</span><a name="line.391"></a>
-<span class="sourceLineNo">392</span>  // monitor for snapshot of hbase tables<a name="line.392"></a>
-<span class="sourceLineNo">393</span>  SnapshotManager snapshotManager;<a name="line.393"></a>
-<span class="sourceLineNo">394</span>  // monitor for distributed procedures<a name="line.394"></a>
-<span class="sourceLineNo">395</span>  private MasterProcedureManagerHost mpmHost;<a name="line.395"></a>
-<span class="sourceLineNo">396</span><a name="line.396"></a>
-<span class="sourceLineNo">397</span>  // it is assigned after 'initialized' guard set to true, so should be volatile<a name="line.397"></a>
-<span class="sourceLineNo">398</span>  private volatile MasterQuotaManager quotaManager;<a name="line.398"></a>
-<span class="sourceLineNo">399</span>  private SpaceQuotaSnapshotNotifier spaceQuotaSnapshotNotifier;<a name="line.399"></a>
-<span class="sourceLineNo">400</span>  private QuotaObserverChore quotaObserverChore;<a name="line.400"></a>
-<span class="sourceLineNo">401</span>  private SnapshotQuotaObserverChore snapshotQuotaChore;<a name="line.401"></a>
-<span class="sourceLineNo">402</span><a name="line.402"></a>
-<span class="sourceLineNo">403</span>  private ProcedureExecutor&lt;MasterProcedureEnv&gt; procedureExecutor;<a name="line.403"></a>
-<span class="sourceLineNo">404</span>  private WALProcedureStore procedureStore;<a name="line.404"></a>
-<span class="sourceLineNo">405</span><a name="line.405"></a>
-<span class="sourceLineNo">406</span>  // handle table states<a name="line.406"></a>
-<span class="sourceLineNo">407</span>  private TableStateManager tableStateManager;<a name="line.407"></a>
-<span class="sourceLineNo">408</span><a name="line.408"></a>
-<span class="sourceLineNo">409</span>  private long splitPlanCount;<a name="line.409"></a>
-<span class="sourceLineNo">410</span>  private long mergePlanCount;<a name="line.410"></a>
-<span class="sourceLineNo">411</span><a name="line.411"></a>
-<span class="sourceLineNo">412</span>  /* Handle favored nodes information */<a name="line.412"></a>
-<span class="sourceLineNo">413</span>  private FavoredNodesManager favoredNodesManager;<a name="line.413"></a>
-<span class="sourceLineNo">414</span><a name="line.414"></a>
-<span class="sourceLineNo">415</span>  /** jetty server for master to redirect requests to regionserver infoServer */<a name="line.415"></a>
-<span class="sourceLineNo">416</span>  private Server masterJettyServer;<a name="line.416"></a>
-<span class="sourceLineNo">417</span><a name="line.417"></a>
-<span class="sourceLineNo">418</span>  public static class RedirectServlet extends HttpServlet {<a name="line.418"></a>
-<span class="sourceLineNo">419</span>    private static final long serialVersionUID = 2894774810058302473L;<a name="line.419"></a>
-<span class="sourceLineNo">420</span>    private final int regionServerInfoPort;<a name="line.420"></a>
-<span class="sourceLineNo">421</span>    private final String regionServerHostname;<a name="line.421"></a>
-<span class="sourceLineNo">422</span><a name="line.422"></a>
-<span class="sourceLineNo">423</span>    /**<a name="line.423"></a>
-<span class="sourceLineNo">424</span>     * @param infoServer that we're trying to send all requests to<a name="line.424"></a>
-<span class="sourceLineNo">425</span>     * @param hostname may be null. if given, will be used for redirects instead of host from client.<a name="line.425"></a>
-<span class="sourceLineNo">426</span>     */<a name="line.426"></a>
-<span class="sourceLineNo">427</span>    public RedirectServlet(InfoServer infoServer, String hostname) {<a name="line.427"></a>
-<span class="sourceLineNo">428</span>       regionServerInfoPort = infoServer.getPort();<a name="line.428"></a>
-<span class="sourceLineNo">429</span>       regionServerHostname = hostname;<a name="line.429"></a>
-<span class="sourceLineNo">430</span>    }<a name="line.430"></a>
-<span class="sourceLineNo">431</span><a name="line.431"></a>
-<span class="sourceLineNo">432</span>    @Override<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    public void doGet(HttpServletRequest request,<a name="line.433"></a>
-<span class="sourceLineNo">434</span>        HttpServletResponse response) throws ServletException, IOException {<a name="line.434"></a>
-<span class="sourceLineNo">435</span>      String redirectHost = regionServerHostname;<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      if(redirectHost == null) {<a name="line.436"></a>
-<span class="sourceLineNo">437</span>        redirectHost = request.getServerName();<a name="line.437"></a>
-<span class="sourceLineNo">438</span>        if(!Addressing.isLocalAddress(InetAddress.getByName(redirectHost))) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>          LOG.warn("Couldn't resolve '" + redirectHost + "' as an address local to this node and '" +<a name="line.439"></a>
-<span class="sourceLineNo">440</span>              MASTER_HOSTNAME_KEY + "' is not set; client will get a HTTP 400 response. If " +<a name="line.440"></a>
-<span class="sourceLineNo">441</span>              "your HBase deployment relies on client accessible names that the region server process " +<a name="line.441"></a>
-<span class="sourceLineNo">442</span>              "can't resolve locally, then you should set the previously mentioned configuration variable " +<a name="line.442"></a>
-<span class="sourceLineNo">443</span>              "to an appropriate hostname.");<a name="line.443"></a>
-<span class="sourceLineNo">444</span>          // no sending client provided input back to the client, so the goal host is just in the logs.<a name="line.444"></a>
-<span class="sourceLineNo">445</span>          response.sendError(400, "Request was to a host that I can't resolve for any of the network interfaces on " +<a name="line.445"></a>
-<span class="sourceLineNo">446</span>              "this node. If this is due to an intermediary such as an HTTP load balancer or other proxy, your HBase " +<a name="line.446"></a>
-<span class="sourceLineNo">447</span>              "administrator can set '" + MASTER_HOSTNAME_KEY + "' to point to the correct hostname.");<a name="line.447"></a>
-<span class="sourceLineNo">448</span>          return;<a name="line.448"></a>
-<span class="sourceLineNo">449</span>        }<a name="line.449"></a>
-<span class="sourceLineNo">450</span>      }<a name="line.450"></a>
-<span class="sourceLineNo">451</span>      // TODO this scheme should come from looking at the scheme registered in the infoserver's http server for the<a name="line.451"></a>
-<span class="sourceLineNo">452</span>      // host and port we're using, but it's buried way too deep to do that ATM.<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      String redirectUrl = request.getScheme() + "://"<a name="line.453"></a>
-<span class="sourceLineNo">454</span>        + redirectHost + ":" + regionServerInfoPort<a name="line.454"></a>
-<span class="sourceLineNo">455</span>        + request.getRequestURI();<a name="line.455"></a>
-<span class="sourceLineNo">456</span>      response.sendRedirect(redirectUrl);<a name="line.456"></a>
-<span class="sourceLineNo">457</span>    }<a name="line.457"></a>
-<span class="sourceLineNo">458</span>  }<a name="line.458"></a>
-<span class="sourceLineNo">459</span><a name="line.459"></a>
-<span class="sourceLineNo">460</span>  /**<a name="line.460"></a>
-<span class="sourceLineNo">461</span>   * Initializes the HMaster. The steps are as follows:<a name="line.461"></a>
-<span class="sourceLineNo">462</span>   * &lt;p&gt;<a name="line.462"></a>
-<span class="sourceLineNo">463</span>   * &lt;ol&gt;<a name="line.463"></a>
-<span class="sourceLineNo">464</span>   * &lt;li&gt;Initialize the local HRegionServer<a name="line.464"></a>
-<span class="sourceLineNo">465</span>   * &lt;li&gt;Start the ActiveMasterManager.<a name="line.465"></a>
-<span class="sourceLineNo">466</span>   * &lt;/ol&gt;<a name="line.466"></a>
-<span class="sourceLineNo">467</span>   * &lt;p&gt;<a name="line.467"></a>
-<span class="sourceLineNo">468</span>   * Remaining steps of initialization occur in<a name="line.468"></a>
-<span class="sourceLineNo">469</span>   * #finishActiveMasterInitialization(MonitoredTask) after<a name="line.469"></a>
-<span class="sourceLineNo">470</span>   * the master becomes the active one.<a name="line.470"></a>
-<span class="sourceLineNo">471</span>   */<a name="line.471"></a>
-<span class="sourceLineNo">472</span>  public HMaster(final Configuration conf)<a name="line.472"></a>
-<span class="sourceLineNo">473</span>      throws IOException, KeeperException {<a name="line.473"></a>
-<span class="sourceLineNo">474</span>    super(conf);<a name="line.474"></a>
-<span class="sourceLineNo">475</span>    TraceUtil.initTracer(conf);<a name="line.475"></a>
-<span class="sourceLineNo">476</span>    try {<a name="line.476"></a>
-<span class="sourceLineNo">477</span>      this.rsFatals = new MemoryBoundedLogMessageBuffer(<a name="line.477"></a>
-<span class="sourceLineNo">478</span>          conf.getLong("hbase.master.buffer.for.rs.fatals", 1 * 1024 * 1024));<a name="line.478"></a>
-<span class="sourceLineNo">479</span>      LOG.info("hbase.rootdir=" + getRootDir() +<a name="line.479"></a>
-<span class="sourceLineNo">480</span>          ", hbase.cluster.distributed=" + this.conf.getBoolean(HConstants.CLUSTER_DISTRIBUTED, false));<a name="line.480"></a>
-<span class="sourceLineNo">481</span><a name="line.481"></a>
-<span class="sourceLineNo">482</span>      // Disable usage of meta replicas in the master<a name="line.482"></a>
-<span class="sourceLineNo">483</span>      this.conf.setBoolean(HConstants.USE_META_REPLICAS, false);<a name="line.483"></a>
-<span class="sourceLineNo">484</span><a name="line.484"></a>
-<span class="sourceLineNo">485</span>      Replication.decorateMasterConfiguration(this.conf);<a name="line.485"></a>
-<span class="sourceLineNo">486</span><a name="line.486"></a>
-<span class="sourceLineNo">487</span>      // Hack! Maps DFSClient =&gt; Master for logs.  HDFS made this<a name="line.487"></a>
-<span class="sourceLineNo">488</span>      // config param for task trackers, but we can piggyback off of it.<a name="line.488"></a>
-<span class="sourceLineNo">489</span>      if (this.conf.get("mapreduce.task.attempt.id") == null) {<a name="line.489"></a>
-<span class="sourceLineNo">490</span>        this.conf.set("mapreduce.task.attempt.id", "hb_m_" + this.serverName.toString());<a name="line.490"></a>
-<span class="sourceLineNo">491</span>      }<a name="line.491"></a>
-<span class="sourceLineNo">492</span><a name="line.492"></a>
-<span class="sourceLineNo">493</span>      // should we check the compression codec type at master side, default true, HBASE-6370<a name="line.493"></a>
-<span class="sourceLineNo">494</span>      this.masterCheckCompression = conf.getBoolean("hbase.master.check.compression", true);<a name="line.494"></a>
-<span class="sourceLineNo">495</span><a name="line.495"></a>
-<span class="sourceLineNo">496</span>      // should we check encryption settings at master side, default true<a name="line.496"></a>
-<span class="sourceLineNo">497</span>      this.masterCheckEncryption = conf.getBoolean("hbase.master.check.encryption", true);<a name="line.497"></a>
-<span class="sourceLineNo">498</span><a name="line.498"></a>
-<span class="sourceLineNo">499</span>      this.metricsMaster = new MetricsMaster(new MetricsMasterWrapperImpl(this));<a name="line.499"></a>
-<span class="sourceLineNo">500</span><a name="line.500"></a>
-<span class="sourceLineNo">501</span>      // preload table descriptor at startup<a name="line.501"></a>
-<span class="sourceLineNo">502</span>      this.preLoadTableDescriptors = conf.getBoolean("hbase.master.preload.tabledescriptors", true);<a name="line.502"></a>
-<span class="sourceLineNo">503</span><a name="line.503"></a>
-<span class="sourceLineNo">504</span>      this.maxBlancingTime = getMaxBalancingTime();<a name="line.504"></a>
-<span class="sourceLineNo">505</span>      this.maxRitPercent = conf.getDouble(HConstants.HBASE_MASTER_BALANCER_MAX_RIT_PERCENT,<a name="line.505"></a>
-<span class="sourceLineNo">506</span>          HConstants.DEFAULT_HBASE_MASTER_BALANCER_MAX_RIT_PERCENT);<a name="line.506"></a>
-<span class="sourceLineNo">507</span><a name="line.507"></a>
-<span class="sourceLineNo">508</span>      // Do we publish the status?<a name="line.508"></a>
-<span class="sourceLineNo">509</span><a name="line.509"></a>
-<span class="sourceLineNo">510</span>      boolean shouldPublish = conf.getBoolean(HConstants.STATUS_PUBLISHED,<a name="line.510"></a>
-<span class="sourceLineNo">511</span>          HConstants.STATUS_PUBLISHED_DEFAULT);<a name="line.511"></a>
-<span class="sourceLineNo">512</span>      Class&lt;? extends ClusterStatusPublisher.Publisher&gt; publisherClass =<a name="line.512"></a>
-<span class="sourceLineNo">513</span>          conf.getClass(ClusterStatusPublisher.STATUS_PUBLISHER_CLASS,<a name="line.513"></a>
-<span class="sourceLineNo">514</span>              ClusterStatusPublisher.DEFAULT_STATUS_PUBLISHER_CLASS,<a name="line.514"></a>
-<span class="sourceLineNo">515</span>              ClusterStatusPublisher.Publisher.class);<a name="line.515"></a>
-<span class="sourceLineNo">516</span><a name="line.516"></a>
-<span class="sourceLineNo">517</span>      if (shouldPublish) {<a name="line.517"></a>
-<span class="sourceLineNo">518</span>        if (publisherClass == null) {<a name="line.518"></a>
-<span class="sourceLineNo">519</span>          LOG.warn(HConstants.STATUS_PUBLISHED + " is true, but " +<a name="line.519"></a>
-<span class="sourceLineNo">520</span>              ClusterStatusPublisher.DEFAULT_STATUS_PUBLISHER_CLASS +<a name="line.520"></a>
-<span class="sourceLineNo">521</span>              " is not set - not publishing status");<a name="line.521"></a>
-<span class="sourceLineNo">522</span>        } else {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>          clusterStatusPublisherChore = new ClusterStatusPublisher(this, conf, publisherClass);<a name="line.523"></a>
-<span class="sourceLineNo">524</span>          getChoreService().scheduleChore(clusterStatusPublisherChore);<a name="line.524"></a>
-<span class="sourceLineNo">525</span>        }<a name="line.525"></a>
-<span class="sourceLineNo">526</span>      }<a name="line.526"></a>
-<span class="sourceLineNo">527</span><a name="line.527"></a>
-<span class="sourceLineNo">528</span>      // Some unit tests don't need a cluster, so no zookeeper at all<a name="line.528"></a>
-<span class="sourceLineNo">529</span>      if (!conf.getBoolean("hbase.testing.nocluster", false)) {<a name="line.529"></a>
-<span class="sourceLineNo">530</span>        this.activeMasterManager = new ActiveMasterManager(zooKeeper, this.serverName, this);<a name="line.530"></a>
-<span class="sourceLineNo">531</span>      } else {<a name="line.531"></a>
-<span class="sourceLineNo">532</span>        this.activeMasterManager = null;<a name="line.532"></a>
-<span class="sourceLineNo">533</span>      }<a name="line.533"></a>
-<span class="sourceLineNo">534</span>    } catch (Throwable t) {<a name="line.534"></a>
-<span class="sourceLineNo">535</span>      // Make sure we log the exception. HMaster is often started via reflection and the<a name="line.535"></a>
-<span class="sourceLineNo">536</span>      // cause of failed startup is lost.<a name="line.536"></a>
-<span class="sourceLineNo">537</span>      LOG.error("Failed construction of Master", t);<a name="line.537"></a>
-<span class="sourceLineNo">538</span>      throw t;<a name="line.538"></a>
-<span class="sourceLineNo">539</span>    }<a name="line.539"></a>
-<span class="sourceLineNo">540</span>  }<a name="line.540"></a>
-<span class="sourceLineNo">541</span><a name="line.541"></a>
-<span class="sourceLineNo">542</span>  // Main run loop. Calls through to the regionserver run loop AFTER becoming active Master; will<a name="line.542"></a>
-<span class="sourceLineNo">543</span>  // block in here until then.<a name="line.543"></a>
-<span class="sourceLineNo">544</span>  @Override<a name="line.544"></a>
-<span class="sourceLineNo">545</span>  public void run() {<a name="line.545"></a>
-<span class="sourceLineNo">546</span>    try {<a name="line.546"></a>
-<span class="sourceLineNo">547</span>      if (!conf.getBoolean("hbase.testing.nocluster", false)) {<a name="line.547"></a>
-<span class="sourceLineNo">548</span>        try {<a name="line.548"></a>
-<span class="sourceLineNo">549</span>          int infoPort = putUpJettyServer();<a name="line.549"></a>
-<span class="sourceLineNo">550</span>          startActiveMasterManager(infoPort);<a name="line.550"></a>
-<span class="sourceLineNo">551</span>        } catch (Throwable t) {<a name="line.551"></a>
-<span class="sourceLineNo">552</span>          // Make sure we log the exception.<a name="line.552"></a>
-<span class="sourceLineNo">553</span>          String error = "Failed to become Active Master";<a name="line.553"></a>
-<span class="sourceLineNo">554</span>          LOG.error(error, t);<a name="line.554"></a>
-<span class="sourceLineNo">555</span>          // Abort should have been called already.<a name="line.555"></a>
-<span class="sourceLineNo">556</span>          if (!isAborted()) {<a name="line.556"></a>
-<span class="sourceLineNo">557</span>            abort(error, t);<a name="line.557"></a>
-<span class="sourceLineNo">558</span>          }<a name="line.558"></a>
-<span class="sourceLineNo">559</span>        }<a name="line.559"></a>
-<span class="sourceLineNo">560</span>      }<a name="line.560"></a>
-<span class="sourceLineNo">561</span>      // Fall in here even if we have been aborted. Need to run the shutdown services and<a name="line.561"></a>
-<span class="sourceLineNo">562</span>      // the super run call will do this for us.<a name="line.562"></a>
-<span class="sourceLineNo">563</span>      super.run();<a name="line.563"></a>
-<span class="sourceLineNo">564</span>    } finally {<a name="line.564"></a>
-<span class="sourceLineNo">565</span>      if (this.clusterSchemaService != null) {<a name="line.565"></a>
-<span class="sourceLineNo">566</span>        // If on way out, then we are no longer active master.<a name="line.566"></a>
-<span class="sourceLineNo">567</span>        this.clusterSchemaService.stopAsync();<a name="line.567"></a>
-<span class="sourceLineNo">568</span>        try {<a name="line.568"></a>
-<span class="sourceLineNo">569</span>          this.clusterSchemaService.awaitTerminated(<a name="line.569"></a>
-<span class="sourceLineNo">570</span>              getConfiguration().getInt(HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS,<a name="line.570"></a>
-<span class="sourceLineNo">571</span>              DEFAULT_HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS), TimeUnit.SECONDS);<a name="line.571"></a>
-<span class="sourceLineNo">572</span>        } catch (TimeoutException te) {<a name="line.572"></a>
-<span class="sourceLineNo">573</span>          LOG.warn("Failed shutdown of clusterSchemaService", te);<a name="line.573"></a>
-<span class="sourceLineNo">574</span>        }<a name="line.574"></a>
-<span class="sourceLineNo">575</span>      }<a name="line.575"></a>
-<span class="sourceLineNo">576</span>      this.activeMaster = false;<a name="line.576"></a>
-<span class="sourceLineNo">577</span>    }<a name="line.577"></a>
-<span class="sourceLineNo">578</span>  }<a name="line.578"></a>
-<span class="sourceLineNo">579</span><a name="line.579"></a>
-<span class="sourceLineNo">580</span>  // return the actual infoPort, -1 means disable info server.<a name="line.580"></a>
-<span class="sourceLineNo">581</span>  private int putUpJettyServer() throws IOException {<a name="line.581"></a>
-<span class="sourceLineNo">582</span>    if (!conf.getBoolean("hbase.master.infoserver.redirect", true)) {<a name="line.582"></a>
-<span class="sourceLineNo">583</span>      return -1;<a name="line.583"></a>
-<span class="sourceLineNo">584</span>    }<a name="line.584"></a>
-<span class="sourceLineNo">585</span>    final int infoPort = conf.getInt("hbase.master.info.port.orig",<a name="line.585"></a>
-<span class="sourceLineNo">586</span>      HConstants.DEFAULT_MASTER_INFOPORT);<a name="line.586"></a>
-<span class="sourceLineNo">587</span>    // -1 is for disabling info server, so no redirecting<a name="line.587"></a>
-<span class="sourceLineNo">588</span>    if (infoPort &lt; 0 || infoServer == null) {<a name="line.588"></a>
-<span class="sourceLineNo">589</span>      return -1;<a name="line.589"></a>
-<span class="sourceLineNo">590</span>    }<a name="line.590"></a>
-<span class="sourceLineNo">591</span>    if(infoPort == infoServer.getPort()) {<a name="line.591"></a>
-<span class="sourceLineNo">592</span>      return infoPort;<a name="line.592"></a>
-<span class="sourceLineNo">593</span>    }<a name="line.593"></a>
-<span class="sourceLineNo">594</span>    final String addr = conf.get("hbase.master.info.bindAddress", "0.0.0.0");<a name="line.594"></a>
-<span class="sourceLineNo">595</span>    if (!Addressing.isLocalAddress(InetAddress.getByName(addr))) {<a name="line.595"></a>
-<span class="sourceLineNo">596</span>      String msg =<a name="line.596"></a>
-<span class="sourceLineNo">597</span>          "Failed to start redirecting jetty server. Address " + addr<a name="line.597"></a>
-<span class="sourceLineNo">598</span>              + " does not belong to this host. Correct configuration parameter: "<a name="line.598"></a>
-<span class="sourceLineNo">599</span>              + "hbase.master.info.bindAddress";<a name="line.599"></a>
-<span class="sourceLineNo">600</span>      LOG.error(msg);<a name="line.600"></a>
-<span class="sourceLineNo">601</span>      throw new IOException(msg);<a name="line.601"></a>
-<span class="sourceLineNo">602</span>    }<a name="line.602"></a>
-<span class="sourceLineNo">603</span><a name="line.603"></a>
-<span class="sourceLineNo">604</span>    // TODO I'm pretty sure we could just add another binding to the InfoServer run by<a name="line.604"></a>
-<span class="sourceLineNo">605</span>    // the RegionServer and have it run the RedirectServlet instead of standing up<a name="line.605"></a>
-<span class="sourceLineNo">606</span>    // a second entire stack here.<a name="line.606"></a>
-<span class="sourceLineNo">607</span>    masterJettyServer = new Server();<a name="line.607"></a>
-<span class="sourceLineNo">608</span>    final ServerConnector connector = new ServerConnector(masterJettyServer);<a name="line.608"></a>
-<span class="sourceLineNo">609</span>    connector.setHost(addr);<a name="line.609"></a>
-<span class="sourceLineNo">610</span>    connector.setPort(infoPort);<a name="line.610"></a>
-<span class="sourceLineNo">611</span>    masterJettyServer.addConnector(connector);<a name="line.611"></a>
-<span class="sourceLineNo">612</span>    masterJettyServer.setStopAtShutdown(true);<a name="line.612"></a>
-<span class="sourceLineNo">613</span><a name="line.613"></a>
-<span class="sourceLineNo">614</span>    final String redirectHostname = shouldUseThisHostnameInstead() ? useThisHostnameInstead : null;<a name="line.614"></a>
-<span class="sourceLineNo">615</span><a name="line.615"></a>
-<span class="sourceLineNo">616</span>    final RedirectServlet redirect = new RedirectServlet(infoServer, redirectHostname);<a name="line.616"></a>
-<span class="sourceLineNo">617</span>    final WebAppContext context = new WebAppContext(null, "/", null, null, null, null, WebAppContext.NO_SESSIONS);<a name="line.617"></a>
-<span class="sourceLineNo">618</span>    context.addServlet(new ServletHolder(redirect), "/*");<a name="line.618"></a>
-<span class="sourceLineNo">619</span>    context.setServer(masterJettyServer);<a name="line.619"></a>
-<span class="sourceLineNo">620</span><a name="line.620"></a>
-<span class="sourceLineNo">621</span>    try {<a name="line.621"></a>
-<span class="sourceLineNo">622</span>      masterJettyServer.start();<a name="line.622"></a>
-<span class="sourceLineNo">623</span>    } catch (Exception e) {<a name="line.623"></a>
-<span class="sourceLineNo">624</span>      throw new IOException("Failed to start redirecting jetty server", e);<a name="line.624"></a>
-<span class="sourceLineNo">625</span>    }<a name="line.625"></a>
-<span class="sourceLineNo">626</span>    return connector.getLocalPort();<a name="line.626"></a>
-<span class="sourceLineNo">627</span>  }<a name="line.627"></a>
-<span class="sourceLineNo">628</span><a name="line.628"></a>
-<span class="sourceLineNo">629</span>  @Override<a name="line.629"></a>
-<span class="sourceLineNo">630</span>  protected Function&lt;TableDescriptorBuilder, TableDescriptorBuilder&gt; getMetaTableObserver() {<a name="line.630"></a>
-<span class="sourceLineNo">631</span>    return builder -&gt; builder.setRegionReplication(conf.getInt(HConstants.META_REPLICAS_NUM, HConstants.DEFAULT_META_REPLICA_NUM));<a name="line.631"></a>
-<span class="sourceLineNo">632</span>  }<a name="line.632"></a>
-<span class="sourceLineNo">633</span>  /**<a name="line.633"></a>
-<span class="sourceLineNo">634</span>   * For compatibility, if failed with regionserver credentials, try the master one<a name="line.634"></a>
-<span class="sourceLineNo">635</span>   */<a name="line.635"></a>
-<span class="sourceLineNo">636</span>  @Override<a name="line.636"></a>
-<span class="sourceLineNo">637</span>  protected void login(UserProvider user, String host) throws IOException {<a name="line.637"></a>
-<span class="sourceLineNo">638</span>    try {<a name="line.638"></a>
-<span class="sourceLineNo">639</span>      super.login(user, host);<a name="line.639"></a>
-<span class="sourceLineNo">640</span>    } catch (IOException ie) {<a name="line.640"></a>
-<span class="sourceLineNo">641</span>      user.login("hbase.master.keytab.file",<a name="line.641"></a>
-<span class="sourceLineNo">642</span>        "hbase.master.kerberos.principal", host);<a name="line.642"></a>
-<span class="sourceLineNo">643</span>    }<a name="line.643"></a>
-<span class="sourceLineNo">644</span>  }<a name="line.644"></a>
-<span class="sourceLineNo">645</span><a name="line.645"></a>
-<span class="sourceLineNo">646</span>  /**<a name="line.646"></a>
-<span class="sourceLineNo">647</span>   * If configured to put regions on active master,<a name="line.647"></a>
-<span class="sourceLineNo">648</span>   * wait till a backup master becomes active.<a name="line.648"></a>
-<span class="sourceLineNo">649</span>   * Otherwise, loop till the server is stopped or aborted.<a name="line.649"></a>
-<span class="sourceLineNo">650</span>   */<a name="line.650"></a>
-<span class="sourceLineNo">651</span>  @Override<a name="line.651"></a>
-<span class="sourceLineNo">652</span>  protected void waitForMasterActive(){<a name="line.652"></a>
-<span class="sourceLineNo">653</span>    boolean tablesOnMaster = LoadBalancer.isTablesOnMaster(conf);<a name="line.653"></a>
-<span class="sourceLineNo">654</span>    while (!(tablesOnMaster &amp;&amp; activeMaster) &amp;&amp; !isStopped() &amp;&amp; !isAborted()) {<a name="line.654"></a>
-<span class="sourceLineNo">655</span>      sleeper.sleep();<a name="line.655"></a>
-<span class="sourceLineNo">656</span>    }<a name="line.656"></a>
-<span class="sourceLineNo">657</span>  }<a name="line.657"></a>
-<span class="sourceLineNo">658</span><a name="line.658"></a>
-<span class="sourceLineNo">659</span>  @VisibleForTesting<a name="line.659"></a>
-<span class="sourceLineNo">660</span>  public MasterRpcServices getMasterRpcServices() {<a name="line.660"></a>
-<span class="sourceLineNo">661</span>    return (MasterRpcServices)rpcServices;<a name="line.661"></a>
-<span class="sourceLineNo">662</span>  }<a name="line.662"></a>
-<span class="sourceLineNo">663</span><a name="line.663"></a>
-<span class="sourceLineNo">664</span>  public boolean balanceSwitch(final boolean b) throws IOException {<a name="line.664"></a>
-<span class="sourceLineNo">665</span>    return getMasterRpcServices().switchBalancer(b, BalanceSwitchMode.ASYNC);<a name="line.665"></a>
-<span class="sourceLineNo">666</span>  }<a name="line.666"></a>
-<span class="sourceLineNo">667</span><a name="line.667"></a>
-<span class="sourceLineNo">668</span>  @Override<a name="line.668"></a>
-<span class="sourceLineNo">669</span>  protected String getProcessName() {<a name="line.669"></a>
-<span class="sourceLineNo">670</span>    return MASTER;<a name="line.670"></a>
-<span class="sourceLineNo">671</span>  }<a name="line.671"></a>
-<span class="sourceLineNo">672</span><a name="line.672"></a>
-<span class="sourceLineNo">673</span>  @Override<a name="line.673"></a>
-<span class="sourceLineNo">674</span>  protected boolean canCreateBaseZNode() {<a name="line.674"></a>
-<span class="sourceLineNo">675</span>    return true;<a name="line.675"></a>
-<span class="sourceLineNo">676</span>  }<a name="line.676"></a>
-<span class="sourceLineNo">677</span><a name="line.677"></a>
-<span class="sourceLineNo">678</span>  @Override<a name="line.678"></a>
-<span class="sourceLineNo">679</span>  protected boolean canUpdateTableDescriptor() {<a name="line.679"></a>
-<span class="sourceLineNo">680</span>    return true;<a name="line.680"></a>
-<span class="sourceLineNo">681</span>  }<a name="line.681"></a>
-<span class="sourceLineNo">682</span><a name="line.682"></a>
-<span class="sourceLineNo">683</span>  @Override<a name="line.683"></a>
-<span class="sourceLineNo">684</span>  protected RSRpcServices createRpcServices() throws IOException {<a name="line.684"></a>
-<span class="sourceLineNo">685</span>    return new MasterRpcServices(this);<a name="line.685"></a>
-<span class="sourceLineNo">686</span>  }<a name="line.686"></a>
-<span class="sourceLineNo">687</span><a name="line.687"></a>
-<span class="sourceLineNo">688</span>  @Override<a name="line.688"></a>
-<span class="sourceLineNo">689</span>  protected void configureInfoServer() {<a name="line.689"></a>
-<span class="sourceLineNo">690</span>    infoServer.addServlet("master-status", "/master-status", MasterStatusServlet.class);<a name="line.690"></a>
-<span class="sourceLineNo">691</span>    infoServer.setAttribute(MASTER, this);<a name="line.691"></a>
-<span class="sourceLineNo">692</span>    if (LoadBalancer.isTablesOnMaster(conf)) {<a name="line.692"></a>
-<span class="sourceLineNo">693</span>      super.configureInfoServer();<a name="line.693"></a>
-<span class="sourceLineNo">694</span>    }<a name="line.694"></a>
-<span class="sourceLineNo">695</span>  }<a name="line.695"></a>
-<span class="sourceLineNo">696</span><a name="line.696"></a>
-<span class="sourceLineNo">697</span>  @Override<a name="line.697"></a>
-<span class="sourceLineNo">698</span>  protected Class&lt;? extends HttpServlet&gt; getDumpServlet() {<a name="line.698"></a>
-<span class="sourceLineNo">699</span>    return MasterDumpServlet.class;<a name="line.699"></a>
-<span class="sourceLineNo">700</span>  }<a name="line.700"></a>
-<span class="sourceLineNo">701</span><a name="line.701"></a>
-<span class="sourceLineNo">702</span>  @Override<a name="line.702"></a>
-<span class="sourceLineNo">703</span>  public MetricsMaster getMasterMetrics() {<a name="line.703"></a>
-<span class="sourceLineNo">704</span>    return metricsMaster;<a name="line.704"></a>
-<span class="sourceLineNo">705</span>  }<a name="line.705"></a>
-<span class="sourceLineNo">706</span><a name="line.706"></a>
-<span class="sourceLineNo">707</span>  /**<a name="line.707"></a>
-<span class="sourceLineNo">708</span>   * Initialize all ZK based system trackers.<a name="line.708"></a>
-<span class="sourceLineNo">709</span>   */<a name="line.709"></a>
-<span class="sourceLineNo">710</span>  void initializeZKBasedSystemTrackers() throws IOException, InterruptedException, KeeperException,<a name="line.710"></a>
-<span class="sourceLineNo">711</span>      CoordinatedStateException, ReplicationException {<a name="line.711"></a>
-<span class="sourceLineNo">712</span>    this.balancer = LoadBalancerFactory.getLoadBalancer(conf);<a name="line.712"></a>
-<span class="sourceLineNo">713</span>    this.normalizer = RegionNormalizerFactory.getRegionNormalizer(conf);<a name="line.713"></a>
-<span class="sourceLineNo">714</span>    this.normalizer.setMasterServices(this);<a name="line.714"></a>
-<span class="sourceLineNo">715</span>    this.normalizer.setMasterRpcServices((MasterRpcServices)rpcServices);<a name="line.715"></a>
-<span class="sourceLineNo">716</span>    this.loadBalancerTracker = new LoadBalancerTracker(zooKeeper, this);<a name="line.716"></a>
-<span class="sourceLineNo">717</span>    this.loadBalancerTracker.start();<a name="line.717"></a>
-<span class="sourceLineNo">718</span><a name="line.718"></a>
-<span class="sourceLineNo">719</span>    this.regionNormalizerTracker = new RegionNormalizerTracker(zooKeeper, this);<a name="line.719"></a>
-<span class="sourceLineNo">720</span>    this.regionNormalizerTracker.start();<a name="line.720"></a>
-<span class="sourceLineNo">721</span><a name="line.721"></a>
-<span class="sourceLineNo">722</span>    this.splitOrMergeTracker = new SplitOrMergeTracker(zooKeeper, conf, this);<a name="line.722"></a>
-<span class="sourceLineNo">723</span>    this.splitOrMergeTracker.start();<a name="line.723"></a>
-<span class="sourceLineNo">724</span><a name="line.724"></a>
-<span class="sourceLineNo">725</span>    // Create Assignment Manager<a name="line.725"></a>
-<span class="sourceLineNo">726</span>    this.assignmentManager = new AssignmentManager(this);<a name="line.726"></a>
-<span class="sourceLineNo">727</span>    this.assignmentManager.start();<a name="line.727"></a>
-<span class="sourceLineNo">728</span><a name="line.728"></a>
-<span class="sourceLineNo">729</span>    this.replicationPeerManager = ReplicationPeerManager.create(zooKeeper, conf);<a name="line.729"></a>
-<span class="sourceLineNo">730</span><a name="line.730"></a>
-<span class="sourceLineNo">731</span>    this.regionServerTracker = new RegionServerTracker(zooKeeper, this, this.serverManager);<a name="line.731"></a>
-<span class="sourceLineNo">732</span>    this.regionServerTracker.start();<a name="line.732"></a>
-<span class="sourceLineNo">733</span><a name="line.733"></a>
-<span class="sourceLineNo">734</span>    this.drainingServerTracker = new DrainingServerTracker(zooKeeper, this, this.serverManager);<a name="line.734"></a>
-<span class="sourceLineNo">735</span>    this.drainingServerTracker.start();<a name="line.735"></a>
-<span class="sourceLineNo">736</span><a name="line.736"></a>
-<span class="sourceLineNo">737</span>    this.maintenanceModeTracker = new MasterMaintenanceModeTracker(zooKeeper);<a name="line.737"></a>
-<span class="sourceLineNo">738</span>    this.maintenanceModeTracker.start();<a name="line.738"></a>
-<span class="sourceLineNo">739</span><a name="line.739"></a>
-<span class="sourceLineNo">740</span>    // Set the cluster as up.  If new RSs, they'll be waiting on this before<a name="line.740"></a>
-<span class="sourceLineNo">741</span>    // going ahead with their startup.<a name="line.741"></a>
-<span class="sourceLineNo">742</span>    boolean wasUp = this.clusterStatusTracker.isClusterUp();<a name="line.742"></a>
-<span class="sourceLineNo">743</span>    if (!wasUp) this.clusterStatusTracker.setClusterUp();<a name="line.743"></a>
-<span class="sourceLineNo">744</span><a name="line.744"></a>
-<span class="sourceLineNo">745</span>    LOG.info("Server active/primary master=" + this.serverName +<a name="line.745"></a>
-<span class="sourceLineNo">746</span>        ", sessionid=0x" +<a name="line.746"></a>
-<span class="sourceLineNo">747</span>        Long.toHexString(this.zooKeeper.getRecoverableZooKeeper().getSessionId()) +<a name="line.747"></a>
-<span class="sourceLineNo">748</span>        ", setting cluster-up flag (Was=" + wasUp + ")");<a name="line.748"></a>
-<span class="sourceLineNo">749</span><a name="line.749"></a>
-<span class="sourceLineNo">750</span>    // create/initialize the snapshot manager and other procedure managers<a name="line.750"></a>
-<span class="sourceLineNo">751</span>    this.snapshotManager = new SnapshotManager();<a name="line.751"></a>
-<span class="sourceLineNo">752</span>    this.mpmHost = new MasterProcedureManagerHost();<a name="line.752"></a>
-<span class="sourceLineNo">753</span>    this.mpmHost.register(this.snapshotManager);<a name="line.753"></a>
-<span class="sourceLineNo">754</span>    this.mpmHost.register(new MasterFlushTableProcedureManager());<a name="line.754"></a>
-<span class="sourceLineNo">755</span>    this.mpmHost.loadProcedures(conf);<a name="line.755"></a>
-<span class="sourceLineNo">756</span>    this.mpmHost.initialize(this, this.metricsMaster);<a name="line.756"></a>
-<span class="sourceLineNo">757</span>  }<a name="line.757"></a>
-<span class="sourceLineNo">758</span><a name="line.758"></a>
-<span class="sourceLineNo">759</span>  /**<a name="line.759"></a>
-<span class="sourceLineNo">760</span>   * Finish initialization of HMaster after becoming the primary master.<a name="line.760"></a>
-<span class="sourceLineNo">761</span>   *<a name="line.761"></a>
-<span class="sourceLineNo">762</span>   * &lt;ol&gt;<a name="line.762"></a>
-<span class="sourceLineNo">763</span>   * &lt;li&gt;Initialize master components - file system manager, server manager,<a name="line.763"></a>
-<span class="sourceLineNo">764</span>   *     assignment manager, region server tracker, etc&lt;/li&gt;<a name="line.764"></a>
-<span class="sourceLineNo">765</span>   * &lt;li&gt;Start necessary service threads - balancer, catalog janior,<a name="line.765"></a>
-<span class="sourceLineNo">766</span>   *     executor services, etc&lt;/li&gt;<a name="line.766"></a>
-<span class="sourceLineNo">767</span>   * &lt;li&gt;Set cluster as UP in ZooKeeper&lt;/li&gt;<a name="line.767"></a>
-<span class="sourceLineNo">768</span>   * &lt;li&gt;Wait for RegionServers to check-in&lt;/li&gt;<a name="line.768"></a>
-<span class="sourceLineNo">769</span>   * &lt;li&gt;Split logs and perform data recovery, if necessary&lt;/li&gt;<a name="line.769"></a>
-<span class="sourceLineNo">770</span>   * &lt;li&gt;Ensure assignment of meta/namespace regions&lt;li&gt;<a name="line.770"></a>
-<span class="sourceLineNo">771</span>   * &lt;li&gt;Handle either fresh cluster start or master failover&lt;/li&gt;<a name="line.771"></a>
-<span class="sourceLineNo">772</span>   * &lt;/ol&gt;<a name="line.772"></a>
-<span class="sourceLineNo">773</span>   */<a name="line.773"></a>
-<span class="sourceLineNo">774</span>  private void finishActiveMasterInitialization(MonitoredTask status) throws IOException,<a name="line.774"></a>
-<span class="sourceLineNo">775</span>          InterruptedException, KeeperException, CoordinatedStateException, ReplicationException {<a name="line.775"></a>
-<span class="sourceLineNo">776</span>    Thread zombieDetector = new Thread(new InitializationMonitor(this),<a name="line.776"></a>
-<span class="sourceLineNo">777</span>        "ActiveMasterInitializationMonitor-" + System.currentTimeMillis());<a name="line.777"></a>
-<span class="sourceLineNo">778</span>    zombieDetector.setDaemon(true);<a name="line.778"></a>
-<span class="sourceLineNo">779</span>    zombieDetector.start();<a name="line.779"></a>
-<span class="sourceLineNo">780</span><a name="line.780"></a>
-<span class="sourceLineNo">781</span>    /*<a name="line.781"></a>
-<span class="sourceLineNo">782</span>     * We are active master now... go initialize components we need to run.<a name="line.782"></a>
-<span class="sourceLineNo">783</span>     */<a name="line.783"></a>
-<span class="sourceLineNo">784</span>    status.setStatus("Initializing Master file system");<a name="line.784"></a>
-<span class="sourceLineNo">785</span><a name="line.785"></a>
-<span class="sourceLineNo">786</span>    this.masterActiveTime = System.currentTimeMillis();<a name="line.786"></a>
-<span class="sourceLineNo">787</span>    // TODO: Do this using Dependency Injection, using PicoContainer, Guice or Spring.<a name="line.787"></a>
-<span class="sourceLineNo">788</span>    // Initialize the chunkCreator<a name="line.788"></a>
-<span class="sourceLineNo">789</span>    initializeMemStoreChunkCreator();<a name="line.789"></a>
-<span class="sourceLineNo">790</span>    this.fileSystemManager = new MasterFileSystem(this);<a name="line.790"></a>
-<span class="sourceLineNo">791</span>    this.walManager = new MasterWalManager(this);<a name="line.791"></a>
-<span class="sourceLineNo">792</span><a name="line.792"></a>
-<span class="sourceLineNo">793</span>    // enable table descriptors cache<a name="line.793"></a>
-<span class="sourceLineNo">794</span>    this.tableDescriptors.setCacheOn();<a name="line.794"></a>
-<span class="sourceLineNo">795</span><a name="line.795"></a>
-<span class="sourceLineNo">796</span>    // warm-up HTDs cache on master initialization<a name="line.796"></a>
-<span class="sourceLineNo">797</span>    if (preLoadTableDescriptors) {<a name="line.797"></a>
-<span class="sourceLineNo">798</span>      status.setStatus("Pre-loading table descriptors");<a name="line.798"></a>
-<span class="sourceLineNo">799</span>      this.tableDescriptors.getAll();<a name="line.799"></a>
-<span class="sourceLineNo">800</span>    }<a name="line.800"></a>
-<span class="sourceLineNo">801</span><a name="line.801"></a>
-<span class="sourceLineNo">802</span>    // Publish cluster ID<a name="line.802"></a>
-<span class="sourceLineNo">803</span>    status.setStatus("Publishing Cluster ID in ZooKeeper");<a name="line.803"></a>
-<span class="sourceLineNo">804</span>    ZKClusterId.setClusterId(this.zooKeeper, fileSystemManager.getClusterId());<a name="line.804"></a>
-<span class="sourceLineNo">805</span><a name="line.805"></a>
-<span class="sourceLineNo">806</span>    this.serverManager = createServerManager(this);<a name="line.806"></a>
-<span class="sourceLineNo">807</span><a name="line.807"></a>
-<span class="sourceLineNo">808</span>    this.tableStateManager = new TableStateManager(this);<a name="line.808"></a>
-<span class="sourceLineNo">809</span><a name="line.809"></a>
-<span class="sourceLineNo">810</span>    status.setStatus("Initializing ZK system trackers");<a name="line.810"></a>
-<span class="sourceLineNo">811</span>    initializeZKBasedSystemTrackers();<a name="line.811"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.ClusterId;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.ClusterMetrics;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.ClusterMetrics.Option;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.ClusterMetricsBuilder;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.CoordinatedStateException;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.DoNotRetryIOException;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.HBaseIOException;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.HBaseInterfaceAudience;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.HConstants;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.InvalidFamilyOperationException;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.MasterNotRunningException;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.PleaseHoldException;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.ReplicationPeerNotFoundException;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.ServerLoad;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.ServerMetricsBuilder;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.ServerName;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.TableDescriptors;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.TableName;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.TableNotDisabledException;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.client.MasterSwitchType;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.client.RegionInfo;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.client.Result;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.client.TableDescriptor;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.client.TableDescriptorBuilder;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.client.TableState;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.coprocessor.CoprocessorHost;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.exceptions.MergeRegionException;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.executor.ExecutorType;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.favored.FavoredNodesManager;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.favored.FavoredNodesPromoter;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.http.InfoServer;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.ipc.RpcServer;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.ipc.ServerNotRunningYetException;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.log.HBaseMarkers;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.master.MasterRpcServices.BalanceSwitchMode;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.master.assignment.AssignmentManager;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.master.assignment.MergeTableRegionsProcedure;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.master.assignment.RegionStates;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.master.assignment.RegionStates.RegionStateNode;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.master.balancer.BalancerChore;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.master.balancer.ClusterStatusChore;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.master.balancer.LoadBalancerFactory;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.master.cleaner.HFileCleaner;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.master.cleaner.LogCleaner;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.master.cleaner.ReplicationMetaCleaner;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.master.locking.LockManager;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.master.normalizer.NormalizationPlan;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.master.normalizer.NormalizationPlan.PlanType;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizer;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizerChore;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizerFactory;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.master.procedure.CreateTableProcedure;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.master.procedure.DeleteTableProcedure;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.master.procedure.DisableTableProcedure;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.master.procedure.EnableTableProcedure;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureConstants;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureUtil;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.master.procedure.ModifyTableProcedure;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.master.procedure.ProcedurePrepareLatch;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.master.procedure.RecoverMetaProcedure;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.master.procedure.TruncateTableProcedure;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.master.replication.AddPeerProcedure;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.master.replication.DisablePeerProcedure;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>import org.apache.hadoop.hba

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/TableBackupClient.Stage.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/TableBackupClient.Stage.html b/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/TableBackupClient.Stage.html
index 8479197..add44d1 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/TableBackupClient.Stage.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/TableBackupClient.Stage.html
@@ -77,293 +77,293 @@
 <span class="sourceLineNo">069</span><a name="line.69"></a>
 <span class="sourceLineNo">070</span>  protected BackupManager backupManager;<a name="line.70"></a>
 <span class="sourceLineNo">071</span>  protected BackupInfo backupInfo;<a name="line.71"></a>
-<span class="sourceLineNo">072</span><a name="line.72"></a>
-<span class="sourceLineNo">073</span>  public TableBackupClient() {<a name="line.73"></a>
-<span class="sourceLineNo">074</span>  }<a name="line.74"></a>
-<span class="sourceLineNo">075</span><a name="line.75"></a>
-<span class="sourceLineNo">076</span>  public TableBackupClient(final Connection conn, final String backupId, BackupRequest request)<a name="line.76"></a>
-<span class="sourceLineNo">077</span>      throws IOException {<a name="line.77"></a>
-<span class="sourceLineNo">078</span>    init(conn, backupId, request);<a name="line.78"></a>
-<span class="sourceLineNo">079</span>  }<a name="line.79"></a>
-<span class="sourceLineNo">080</span><a name="line.80"></a>
-<span class="sourceLineNo">081</span>  public void init(final Connection conn, final String backupId, BackupRequest request)<a name="line.81"></a>
-<span class="sourceLineNo">082</span>      throws IOException<a name="line.82"></a>
-<span class="sourceLineNo">083</span>  {<a name="line.83"></a>
-<span class="sourceLineNo">084</span>    if (request.getBackupType() == BackupType.FULL) {<a name="line.84"></a>
-<span class="sourceLineNo">085</span>      backupManager = new BackupManager(conn, conn.getConfiguration());<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    } else {<a name="line.86"></a>
-<span class="sourceLineNo">087</span>      backupManager = new IncrementalBackupManager(conn, conn.getConfiguration());<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    }<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    this.backupId = backupId;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    this.tableList = request.getTableList();<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    this.conn = conn;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    this.conf = conn.getConfiguration();<a name="line.92"></a>
-<span class="sourceLineNo">093</span>    backupInfo =<a name="line.93"></a>
-<span class="sourceLineNo">094</span>        backupManager.createBackupInfo(backupId, request.getBackupType(), tableList,<a name="line.94"></a>
-<span class="sourceLineNo">095</span>          request.getTargetRootDir(), request.getTotalTasks(), request.getBandwidth());<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    if (tableList == null || tableList.isEmpty()) {<a name="line.96"></a>
-<span class="sourceLineNo">097</span>      this.tableList = new ArrayList&lt;&gt;(backupInfo.getTables());<a name="line.97"></a>
-<span class="sourceLineNo">098</span>    }<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    // Start new session<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    backupManager.startBackupSession();<a name="line.100"></a>
-<span class="sourceLineNo">101</span>  }<a name="line.101"></a>
-<span class="sourceLineNo">102</span><a name="line.102"></a>
-<span class="sourceLineNo">103</span>  /**<a name="line.103"></a>
-<span class="sourceLineNo">104</span>   * Begin the overall backup.<a name="line.104"></a>
-<span class="sourceLineNo">105</span>   * @param backupInfo backup info<a name="line.105"></a>
-<span class="sourceLineNo">106</span>   * @throws IOException exception<a name="line.106"></a>
-<span class="sourceLineNo">107</span>   */<a name="line.107"></a>
-<span class="sourceLineNo">108</span>  protected void beginBackup(BackupManager backupManager, BackupInfo backupInfo)<a name="line.108"></a>
-<span class="sourceLineNo">109</span>      throws IOException {<a name="line.109"></a>
-<span class="sourceLineNo">110</span><a name="line.110"></a>
-<span class="sourceLineNo">111</span>    BackupSystemTable.snapshot(conn);<a name="line.111"></a>
-<span class="sourceLineNo">112</span>    backupManager.setBackupInfo(backupInfo);<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    // set the start timestamp of the overall backup<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    long startTs = EnvironmentEdgeManager.currentTime();<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    backupInfo.setStartTs(startTs);<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    // set overall backup status: ongoing<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    backupInfo.setState(BackupState.RUNNING);<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    backupInfo.setPhase(BackupPhase.REQUEST);<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    LOG.info("Backup " + backupInfo.getBackupId() + " started at " + startTs + ".");<a name="line.119"></a>
-<span class="sourceLineNo">120</span><a name="line.120"></a>
-<span class="sourceLineNo">121</span>    backupManager.updateBackupInfo(backupInfo);<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    if (LOG.isDebugEnabled()) {<a name="line.122"></a>
-<span class="sourceLineNo">123</span>      LOG.debug("Backup session " + backupInfo.getBackupId() + " has been started.");<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    }<a name="line.124"></a>
-<span class="sourceLineNo">125</span>  }<a name="line.125"></a>
-<span class="sourceLineNo">126</span><a name="line.126"></a>
-<span class="sourceLineNo">127</span>  protected String getMessage(Exception e) {<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    String msg = e.getMessage();<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    if (msg == null || msg.equals("")) {<a name="line.129"></a>
-<span class="sourceLineNo">130</span>      msg = e.getClass().getName();<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    }<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    return msg;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>  }<a name="line.133"></a>
-<span class="sourceLineNo">134</span><a name="line.134"></a>
-<span class="sourceLineNo">135</span>  /**<a name="line.135"></a>
-<span class="sourceLineNo">136</span>   * Delete HBase snapshot for backup.<a name="line.136"></a>
-<span class="sourceLineNo">137</span>   * @param backupInfo backup info<a name="line.137"></a>
-<span class="sourceLineNo">138</span>   * @throws Exception exception<a name="line.138"></a>
-<span class="sourceLineNo">139</span>   */<a name="line.139"></a>
-<span class="sourceLineNo">140</span>  protected static void deleteSnapshots(final Connection conn, BackupInfo backupInfo, Configuration conf)<a name="line.140"></a>
-<span class="sourceLineNo">141</span>      throws IOException {<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    LOG.debug("Trying to delete snapshot for full backup.");<a name="line.142"></a>
-<span class="sourceLineNo">143</span>    for (String snapshotName : backupInfo.getSnapshotNames()) {<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      if (snapshotName == null) {<a name="line.144"></a>
-<span class="sourceLineNo">145</span>        continue;<a name="line.145"></a>
-<span class="sourceLineNo">146</span>      }<a name="line.146"></a>
-<span class="sourceLineNo">147</span>      LOG.debug("Trying to delete snapshot: " + snapshotName);<a name="line.147"></a>
-<span class="sourceLineNo">148</span><a name="line.148"></a>
-<span class="sourceLineNo">149</span>      try (Admin admin = conn.getAdmin()) {<a name="line.149"></a>
-<span class="sourceLineNo">150</span>        admin.deleteSnapshot(snapshotName);<a name="line.150"></a>
-<span class="sourceLineNo">151</span>      }<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      LOG.debug("Deleting the snapshot " + snapshotName + " for backup " + backupInfo.getBackupId()<a name="line.152"></a>
-<span class="sourceLineNo">153</span>          + " succeeded.");<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    }<a name="line.154"></a>
-<span class="sourceLineNo">155</span>  }<a name="line.155"></a>
-<span class="sourceLineNo">156</span><a name="line.156"></a>
-<span class="sourceLineNo">157</span>  /**<a name="line.157"></a>
-<span class="sourceLineNo">158</span>   * Clean up directories with prefix "exportSnapshot-", which are generated when exporting<a name="line.158"></a>
-<span class="sourceLineNo">159</span>   * snapshots.<a name="line.159"></a>
-<span class="sourceLineNo">160</span>   * @throws IOException exception<a name="line.160"></a>
-<span class="sourceLineNo">161</span>   */<a name="line.161"></a>
-<span class="sourceLineNo">162</span>  protected static void cleanupExportSnapshotLog(Configuration conf) throws IOException {<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    FileSystem fs = FSUtils.getCurrentFileSystem(conf);<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    Path stagingDir =<a name="line.164"></a>
-<span class="sourceLineNo">165</span>        new Path(conf.get(BackupRestoreConstants.CONF_STAGING_ROOT, fs.getWorkingDirectory()<a name="line.165"></a>
-<span class="sourceLineNo">166</span>            .toString()));<a name="line.166"></a>
-<span class="sourceLineNo">167</span>    FileStatus[] files = FSUtils.listStatus(fs, stagingDir);<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    if (files == null) {<a name="line.168"></a>
-<span class="sourceLineNo">169</span>      return;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    }<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    for (FileStatus file : files) {<a name="line.171"></a>
-<span class="sourceLineNo">172</span>      if (file.getPath().getName().startsWith("exportSnapshot-")) {<a name="line.172"></a>
-<span class="sourceLineNo">173</span>        LOG.debug("Delete log files of exporting snapshot: " + file.getPath().getName());<a name="line.173"></a>
-<span class="sourceLineNo">174</span>        if (FSUtils.delete(fs, file.getPath(), true) == false) {<a name="line.174"></a>
-<span class="sourceLineNo">175</span>          LOG.warn("Can not delete " + file.getPath());<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>    }<a name="line.178"></a>
-<span class="sourceLineNo">179</span>  }<a name="line.179"></a>
-<span class="sourceLineNo">180</span><a name="line.180"></a>
-<span class="sourceLineNo">181</span>  /**<a name="line.181"></a>
-<span class="sourceLineNo">182</span>   * Clean up the uncompleted data at target directory if the ongoing backup has already entered<a name="line.182"></a>
-<span class="sourceLineNo">183</span>   * the copy phase.<a name="line.183"></a>
-<span class="sourceLineNo">184</span>   */<a name="line.184"></a>
-<span class="sourceLineNo">185</span>  protected static void cleanupTargetDir(BackupInfo backupInfo, Configuration conf) {<a name="line.185"></a>
-<span class="sourceLineNo">186</span>    try {<a name="line.186"></a>
-<span class="sourceLineNo">187</span>      // clean up the uncompleted data at target directory if the ongoing backup has already entered<a name="line.187"></a>
-<span class="sourceLineNo">188</span>      // the copy phase<a name="line.188"></a>
-<span class="sourceLineNo">189</span>      LOG.debug("Trying to cleanup up target dir. Current backup phase: "<a name="line.189"></a>
-<span class="sourceLineNo">190</span>          + backupInfo.getPhase());<a name="line.190"></a>
-<span class="sourceLineNo">191</span>      if (backupInfo.getPhase().equals(BackupPhase.SNAPSHOTCOPY)<a name="line.191"></a>
-<span class="sourceLineNo">192</span>          || backupInfo.getPhase().equals(BackupPhase.INCREMENTAL_COPY)<a name="line.192"></a>
-<span class="sourceLineNo">193</span>          || backupInfo.getPhase().equals(BackupPhase.STORE_MANIFEST)) {<a name="line.193"></a>
-<span class="sourceLineNo">194</span>        FileSystem outputFs =<a name="line.194"></a>
-<span class="sourceLineNo">195</span>            FileSystem.get(new Path(backupInfo.getBackupRootDir()).toUri(), conf);<a name="line.195"></a>
-<span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span>        // now treat one backup as a transaction, clean up data that has been partially copied at<a name="line.197"></a>
-<span class="sourceLineNo">198</span>        // table level<a name="line.198"></a>
-<span class="sourceLineNo">199</span>        for (TableName table : backupInfo.getTables()) {<a name="line.199"></a>
-<span class="sourceLineNo">200</span>          Path targetDirPath =<a name="line.200"></a>
-<span class="sourceLineNo">201</span>              new Path(HBackupFileSystem.getTableBackupDir(backupInfo.getBackupRootDir(),<a name="line.201"></a>
-<span class="sourceLineNo">202</span>                backupInfo.getBackupId(), table));<a name="line.202"></a>
-<span class="sourceLineNo">203</span>          if (outputFs.delete(targetDirPath, true)) {<a name="line.203"></a>
-<span class="sourceLineNo">204</span>            LOG.debug("Cleaning up uncompleted backup data at " + targetDirPath.toString()<a name="line.204"></a>
-<span class="sourceLineNo">205</span>                + " done.");<a name="line.205"></a>
-<span class="sourceLineNo">206</span>          } else {<a name="line.206"></a>
-<span class="sourceLineNo">207</span>            LOG.debug("No data has been copied to " + targetDirPath.toString() + ".");<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>          Path tableDir = targetDirPath.getParent();<a name="line.210"></a>
-<span class="sourceLineNo">211</span>          FileStatus[] backups = FSUtils.listStatus(outputFs, tableDir);<a name="line.211"></a>
-<span class="sourceLineNo">212</span>          if (backups == null || backups.length == 0) {<a name="line.212"></a>
-<span class="sourceLineNo">213</span>            outputFs.delete(tableDir, true);<a name="line.213"></a>
-<span class="sourceLineNo">214</span>            LOG.debug(tableDir.toString() + " is empty, remove it.");<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>      }<a name="line.217"></a>
-<span class="sourceLineNo">218</span><a name="line.218"></a>
-<span class="sourceLineNo">219</span>    } catch (IOException e1) {<a name="line.219"></a>
-<span class="sourceLineNo">220</span>      LOG.error("Cleaning up uncompleted backup data of " + backupInfo.getBackupId() + " at "<a name="line.220"></a>
-<span class="sourceLineNo">221</span>          + backupInfo.getBackupRootDir() + " failed due to " + e1.getMessage() + ".");<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    }<a name="line.222"></a>
-<span class="sourceLineNo">223</span>  }<a name="line.223"></a>
-<span class="sourceLineNo">224</span><a name="line.224"></a>
-<span class="sourceLineNo">225</span>  /**<a name="line.225"></a>
-<span class="sourceLineNo">226</span>   * Fail the overall backup.<a name="line.226"></a>
-<span class="sourceLineNo">227</span>   * @param backupInfo backup info<a name="line.227"></a>
-<span class="sourceLineNo">228</span>   * @param e exception<a name="line.228"></a>
-<span class="sourceLineNo">229</span>   * @throws Exception exception<a name="line.229"></a>
-<span class="sourceLineNo">230</span>   */<a name="line.230"></a>
-<span class="sourceLineNo">231</span>  protected void failBackup(Connection conn, BackupInfo backupInfo, BackupManager backupManager,<a name="line.231"></a>
-<span class="sourceLineNo">232</span>      Exception e, String msg, BackupType type, Configuration conf) throws IOException {<a name="line.232"></a>
-<span class="sourceLineNo">233</span><a name="line.233"></a>
-<span class="sourceLineNo">234</span>    try {<a name="line.234"></a>
-<span class="sourceLineNo">235</span>      LOG.error(msg + getMessage(e), e);<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      // If this is a cancel exception, then we've already cleaned.<a name="line.236"></a>
-<span class="sourceLineNo">237</span>      // set the failure timestamp of the overall backup<a name="line.237"></a>
-<span class="sourceLineNo">238</span>      backupInfo.setCompleteTs(EnvironmentEdgeManager.currentTime());<a name="line.238"></a>
-<span class="sourceLineNo">239</span>      // set failure message<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      backupInfo.setFailedMsg(e.getMessage());<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      // set overall backup status: failed<a name="line.241"></a>
-<span class="sourceLineNo">242</span>      backupInfo.setState(BackupState.FAILED);<a name="line.242"></a>
-<span class="sourceLineNo">243</span>      // compose the backup failed data<a name="line.243"></a>
-<span class="sourceLineNo">244</span>      String backupFailedData =<a name="line.244"></a>
-<span class="sourceLineNo">245</span>          "BackupId=" + backupInfo.getBackupId() + ",startts=" + backupInfo.getStartTs()<a name="line.245"></a>
-<span class="sourceLineNo">246</span>              + ",failedts=" + backupInfo.getCompleteTs() + ",failedphase=" + backupInfo.getPhase()<a name="line.246"></a>
-<span class="sourceLineNo">247</span>              + ",failedmessage=" + backupInfo.getFailedMsg();<a name="line.247"></a>
-<span class="sourceLineNo">248</span>      LOG.error(backupFailedData);<a name="line.248"></a>
-<span class="sourceLineNo">249</span>      cleanupAndRestoreBackupSystem(conn, backupInfo, conf);<a name="line.249"></a>
-<span class="sourceLineNo">250</span>      // If backup session is updated to FAILED state - means we<a name="line.250"></a>
-<span class="sourceLineNo">251</span>      // processed recovery already.<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      backupManager.updateBackupInfo(backupInfo);<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      backupManager.finishBackupSession();<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      LOG.error("Backup " + backupInfo.getBackupId() + " failed.");<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    } catch (IOException ee) {<a name="line.255"></a>
-<span class="sourceLineNo">256</span>      LOG.error("Please run backup repair tool manually to restore backup system integrity");<a name="line.256"></a>
-<span class="sourceLineNo">257</span>      throw ee;<a name="line.257"></a>
-<span class="sourceLineNo">258</span>    }<a name="line.258"></a>
-<span class="sourceLineNo">259</span>  }<a name="line.259"></a>
-<span class="sourceLineNo">260</span><a name="line.260"></a>
-<span class="sourceLineNo">261</span>  public static void cleanupAndRestoreBackupSystem (Connection conn, BackupInfo backupInfo,<a name="line.261"></a>
-<span class="sourceLineNo">262</span>      Configuration conf) throws IOException<a name="line.262"></a>
-<span class="sourceLineNo">263</span>  {<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    BackupType type = backupInfo.getType();<a name="line.264"></a>
-<span class="sourceLineNo">265</span>     // if full backup, then delete HBase snapshots if there already are snapshots taken<a name="line.265"></a>
-<span class="sourceLineNo">266</span>     // and also clean up export snapshot log files if exist<a name="line.266"></a>
-<span class="sourceLineNo">267</span>     if (type == BackupType.FULL) {<a name="line.267"></a>
-<span class="sourceLineNo">268</span>       deleteSnapshots(conn, backupInfo, conf);<a name="line.268"></a>
-<span class="sourceLineNo">269</span>       cleanupExportSnapshotLog(conf);<a name="line.269"></a>
-<span class="sourceLineNo">270</span>     }<a name="line.270"></a>
-<span class="sourceLineNo">271</span>     BackupSystemTable.restoreFromSnapshot(conn);<a name="line.271"></a>
-<span class="sourceLineNo">272</span>     BackupSystemTable.deleteSnapshot(conn);<a name="line.272"></a>
-<span class="sourceLineNo">273</span>     // clean up the uncompleted data at target directory if the ongoing backup has already entered<a name="line.273"></a>
-<span class="sourceLineNo">274</span>     // the copy phase<a name="line.274"></a>
-<span class="sourceLineNo">275</span>     // For incremental backup, DistCp logs will be cleaned with the targetDir.<a name="line.275"></a>
-<span class="sourceLineNo">276</span>     cleanupTargetDir(backupInfo, conf);<a name="line.276"></a>
-<span class="sourceLineNo">277</span>  }<a name="line.277"></a>
-<span class="sourceLineNo">278</span><a name="line.278"></a>
+<span class="sourceLineNo">072</span>  protected FileSystem fs;<a name="line.72"></a>
+<span class="sourceLineNo">073</span><a name="line.73"></a>
+<span class="sourceLineNo">074</span>  public TableBackupClient() {<a name="line.74"></a>
+<span class="sourceLineNo">075</span>  }<a name="line.75"></a>
+<span class="sourceLineNo">076</span><a name="line.76"></a>
+<span class="sourceLineNo">077</span>  public TableBackupClient(final Connection conn, final String backupId, BackupRequest request)<a name="line.77"></a>
+<span class="sourceLineNo">078</span>      throws IOException {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>    init(conn, backupId, request);<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  }<a name="line.80"></a>
+<span class="sourceLineNo">081</span><a name="line.81"></a>
+<span class="sourceLineNo">082</span>  public void init(final Connection conn, final String backupId, BackupRequest request)<a name="line.82"></a>
+<span class="sourceLineNo">083</span>      throws IOException<a name="line.83"></a>
+<span class="sourceLineNo">084</span>  {<a name="line.84"></a>
+<span class="sourceLineNo">085</span>    if (request.getBackupType() == BackupType.FULL) {<a name="line.85"></a>
+<span class="sourceLineNo">086</span>      backupManager = new BackupManager(conn, conn.getConfiguration());<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    } else {<a name="line.87"></a>
+<span class="sourceLineNo">088</span>      backupManager = new IncrementalBackupManager(conn, conn.getConfiguration());<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    }<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    this.backupId = backupId;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    this.tableList = request.getTableList();<a name="line.91"></a>
+<span class="sourceLineNo">092</span>    this.conn = conn;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    this.conf = conn.getConfiguration();<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    this.fs = FSUtils.getCurrentFileSystem(conf);<a name="line.94"></a>
+<span class="sourceLineNo">095</span>    backupInfo =<a name="line.95"></a>
+<span class="sourceLineNo">096</span>        backupManager.createBackupInfo(backupId, request.getBackupType(), tableList,<a name="line.96"></a>
+<span class="sourceLineNo">097</span>          request.getTargetRootDir(), request.getTotalTasks(), request.getBandwidth());<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    if (tableList == null || tableList.isEmpty()) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>      this.tableList = new ArrayList&lt;&gt;(backupInfo.getTables());<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    }<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    // Start new session<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    backupManager.startBackupSession();<a name="line.102"></a>
+<span class="sourceLineNo">103</span>  }<a name="line.103"></a>
+<span class="sourceLineNo">104</span><a name="line.104"></a>
+<span class="sourceLineNo">105</span>  /**<a name="line.105"></a>
+<span class="sourceLineNo">106</span>   * Begin the overall backup.<a name="line.106"></a>
+<span class="sourceLineNo">107</span>   * @param backupInfo backup info<a name="line.107"></a>
+<span class="sourceLineNo">108</span>   * @throws IOException exception<a name="line.108"></a>
+<span class="sourceLineNo">109</span>   */<a name="line.109"></a>
+<span class="sourceLineNo">110</span>  protected void beginBackup(BackupManager backupManager, BackupInfo backupInfo)<a name="line.110"></a>
+<span class="sourceLineNo">111</span>      throws IOException {<a name="line.111"></a>
+<span class="sourceLineNo">112</span><a name="line.112"></a>
+<span class="sourceLineNo">113</span>    BackupSystemTable.snapshot(conn);<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    backupManager.setBackupInfo(backupInfo);<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    // set the start timestamp of the overall backup<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    long startTs = EnvironmentEdgeManager.currentTime();<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    backupInfo.setStartTs(startTs);<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    // set overall backup status: ongoing<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    backupInfo.setState(BackupState.RUNNING);<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    backupInfo.setPhase(BackupPhase.REQUEST);<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    LOG.info("Backup " + backupInfo.getBackupId() + " started at " + startTs + ".");<a name="line.121"></a>
+<span class="sourceLineNo">122</span><a name="line.122"></a>
+<span class="sourceLineNo">123</span>    backupManager.updateBackupInfo(backupInfo);<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    if (LOG.isDebugEnabled()) {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>      LOG.debug("Backup session " + backupInfo.getBackupId() + " has been started.");<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    }<a name="line.126"></a>
+<span class="sourceLineNo">127</span>  }<a name="line.127"></a>
+<span class="sourceLineNo">128</span><a name="line.128"></a>
+<span class="sourceLineNo">129</span>  protected String getMessage(Exception e) {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    String msg = e.getMessage();<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    if (msg == null || msg.equals("")) {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>      msg = e.getClass().getName();<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    }<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    return msg;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>  }<a name="line.135"></a>
+<span class="sourceLineNo">136</span><a name="line.136"></a>
+<span class="sourceLineNo">137</span>  /**<a name="line.137"></a>
+<span class="sourceLineNo">138</span>   * Delete HBase snapshot for backup.<a name="line.138"></a>
+<span class="sourceLineNo">139</span>   * @param backupInfo backup info<a name="line.139"></a>
+<span class="sourceLineNo">140</span>   * @throws Exception exception<a name="line.140"></a>
+<span class="sourceLineNo">141</span>   */<a name="line.141"></a>
+<span class="sourceLineNo">142</span>  protected static void deleteSnapshots(final Connection conn, BackupInfo backupInfo, Configuration conf)<a name="line.142"></a>
+<span class="sourceLineNo">143</span>      throws IOException {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    LOG.debug("Trying to delete snapshot for full backup.");<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    for (String snapshotName : backupInfo.getSnapshotNames()) {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>      if (snapshotName == null) {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>        continue;<a name="line.147"></a>
+<span class="sourceLineNo">148</span>      }<a name="line.148"></a>
+<span class="sourceLineNo">149</span>      LOG.debug("Trying to delete snapshot: " + snapshotName);<a name="line.149"></a>
+<span class="sourceLineNo">150</span><a name="line.150"></a>
+<span class="sourceLineNo">151</span>      try (Admin admin = conn.getAdmin()) {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>        admin.deleteSnapshot(snapshotName);<a name="line.152"></a>
+<span class="sourceLineNo">153</span>      }<a name="line.153"></a>
+<span class="sourceLineNo">154</span>      LOG.debug("Deleting the snapshot " + snapshotName + " for backup " + backupInfo.getBackupId()<a name="line.154"></a>
+<span class="sourceLineNo">155</span>          + " succeeded.");<a name="line.155"></a>
+<span class="sourceLineNo">156</span>    }<a name="line.156"></a>
+<span class="sourceLineNo">157</span>  }<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>  /**<a name="line.159"></a>
+<span class="sourceLineNo">160</span>   * Clean up directories with prefix "exportSnapshot-", which are generated when exporting<a name="line.160"></a>
+<span class="sourceLineNo">161</span>   * snapshots.<a name="line.161"></a>
+<span class="sourceLineNo">162</span>   * @throws IOException exception<a name="line.162"></a>
+<span class="sourceLineNo">163</span>   */<a name="line.163"></a>
+<span class="sourceLineNo">164</span>  protected static void cleanupExportSnapshotLog(Configuration conf) throws IOException {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    FileSystem fs = FSUtils.getCurrentFileSystem(conf);<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    Path stagingDir =<a name="line.166"></a>
+<span class="sourceLineNo">167</span>        new Path(conf.get(BackupRestoreConstants.CONF_STAGING_ROOT, fs.getWorkingDirectory()<a name="line.167"></a>
+<span class="sourceLineNo">168</span>            .toString()));<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    FileStatus[] files = FSUtils.listStatus(fs, stagingDir);<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    if (files == null) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>      return;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    }<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    for (FileStatus file : files) {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>      if (file.getPath().getName().startsWith("exportSnapshot-")) {<a name="line.174"></a>
+<span class="sourceLineNo">175</span>        LOG.debug("Delete log files of exporting snapshot: " + file.getPath().getName());<a name="line.175"></a>
+<span class="sourceLineNo">176</span>        if (FSUtils.delete(fs, file.getPath(), true) == false) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>          LOG.warn("Can not delete " + file.getPath());<a name="line.177"></a>
+<span class="sourceLineNo">178</span>        }<a name="line.178"></a>
+<span class="sourceLineNo">179</span>      }<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    }<a name="line.180"></a>
+<span class="sourceLineNo">181</span>  }<a name="line.181"></a>
+<span class="sourceLineNo">182</span><a name="line.182"></a>
+<span class="sourceLineNo">183</span>  /**<a name="line.183"></a>
+<span class="sourceLineNo">184</span>   * Clean up the uncompleted data at target directory if the ongoing backup has already entered<a name="line.184"></a>
+<span class="sourceLineNo">185</span>   * the copy phase.<a name="line.185"></a>
+<span class="sourceLineNo">186</span>   */<a name="line.186"></a>
+<span class="sourceLineNo">187</span>  protected static void cleanupTargetDir(BackupInfo backupInfo, Configuration conf) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>    try {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>      // clean up the uncompleted data at target directory if the ongoing backup has already entered<a name="line.189"></a>
+<span class="sourceLineNo">190</span>      // the copy phase<a name="line.190"></a>
+<span class="sourceLineNo">191</span>      LOG.debug("Trying to cleanup up target dir. Current backup phase: "<a name="line.191"></a>
+<span class="sourceLineNo">192</span>          + backupInfo.getPhase());<a name="line.192"></a>
+<span class="sourceLineNo">193</span>      if (backupInfo.getPhase().equals(BackupPhase.SNAPSHOTCOPY)<a name="line.193"></a>
+<span class="sourceLineNo">194</span>          || backupInfo.getPhase().equals(BackupPhase.INCREMENTAL_COPY)<a name="line.194"></a>
+<span class="sourceLineNo">195</span>          || backupInfo.getPhase().equals(BackupPhase.STORE_MANIFEST)) {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>        FileSystem outputFs =<a name="line.196"></a>
+<span class="sourceLineNo">197</span>            FileSystem.get(new Path(backupInfo.getBackupRootDir()).toUri(), conf);<a name="line.197"></a>
+<span class="sourceLineNo">198</span><a name="line.198"></a>
+<span class="sourceLineNo">199</span>        // now treat one backup as a transaction, clean up data that has been partially copied at<a name="line.199"></a>
+<span class="sourceLineNo">200</span>        // table level<a name="line.200"></a>
+<span class="sourceLineNo">201</span>        for (TableName table : backupInfo.getTables()) {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>          Path targetDirPath =<a name="line.202"></a>
+<span class="sourceLineNo">203</span>              new Path(HBackupFileSystem.getTableBackupDir(backupInfo.getBackupRootDir(),<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                backupInfo.getBackupId(), table));<a name="line.204"></a>
+<span class="sourceLineNo">205</span>          if (outputFs.delete(targetDirPath, true)) {<a name="line.205"></a>
+<span class="sourceLineNo">206</span>            LOG.debug("Cleaning up uncompleted backup data at " + targetDirPath.toString()<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                + " done.");<a name="line.207"></a>
+<span class="sourceLineNo">208</span>          } else {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>            LOG.debug("No data has been copied to " + targetDirPath.toString() + ".");<a name="line.209"></a>
+<span class="sourceLineNo">210</span>          }<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span>          Path tableDir = targetDirPath.getParent();<a name="line.212"></a>
+<span class="sourceLineNo">213</span>          FileStatus[] backups = FSUtils.listStatus(outputFs, tableDir);<a name="line.213"></a>
+<span class="sourceLineNo">214</span>          if (backups == null || backups.length == 0) {<a name="line.214"></a>
+<span class="sourceLineNo">215</span>            outputFs.delete(tableDir, true);<a name="line.215"></a>
+<span class="sourceLineNo">216</span>            LOG.debug(tableDir.toString() + " is empty, remove it.");<a name="line.216"></a>
+<span class="sourceLineNo">217</span>          }<a name="line.217"></a>
+<span class="sourceLineNo">218</span>        }<a name="line.218"></a>
+<span class="sourceLineNo">219</span>      }<a name="line.219"></a>
+<span class="sourceLineNo">220</span><a name="line.220"></a>
+<span class="sourceLineNo">221</span>    } catch (IOException e1) {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>      LOG.error("Cleaning up uncompleted backup data of " + backupInfo.getBackupId() + " at "<a name="line.222"></a>
+<span class="sourceLineNo">223</span>          + backupInfo.getBackupRootDir() + " failed due to " + e1.getMessage() + ".");<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    }<a name="line.224"></a>
+<span class="sourceLineNo">225</span>  }<a name="line.225"></a>
+<span class="sourceLineNo">226</span><a name="line.226"></a>
+<span class="sourceLineNo">227</span>  /**<a name="line.227"></a>
+<span class="sourceLineNo">228</span>   * Fail the overall backup.<a name="line.228"></a>
+<span class="sourceLineNo">229</span>   * @param backupInfo backup info<a name="line.229"></a>
+<span class="sourceLineNo">230</span>   * @param e exception<a name="line.230"></a>
+<span class="sourceLineNo">231</span>   * @throws Exception exception<a name="line.231"></a>
+<span class="sourceLineNo">232</span>   */<a name="line.232"></a>
+<span class="sourceLineNo">233</span>  protected void failBackup(Connection conn, BackupInfo backupInfo, BackupManager backupManager,<a name="line.233"></a>
+<span class="sourceLineNo">234</span>      Exception e, String msg, BackupType type, Configuration conf) throws IOException {<a name="line.234"></a>
+<span class="sourceLineNo">235</span><a name="line.235"></a>
+<span class="sourceLineNo">236</span>    try {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>      LOG.error(msg + getMessage(e), e);<a name="line.237"></a>
+<span class="sourceLineNo">238</span>      // If this is a cancel exception, then we've already cleaned.<a name="line.238"></a>
+<span class="sourceLineNo">239</span>      // set the failure timestamp of the overall backup<a name="line.239"></a>
+<span class="sourceLineNo">240</span>      backupInfo.setCompleteTs(EnvironmentEdgeManager.currentTime());<a name="line.240"></a>
+<span class="sourceLineNo">241</span>      // set failure message<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      backupInfo.setFailedMsg(e.getMessage());<a name="line.242"></a>
+<span class="sourceLineNo">243</span>      // set overall backup status: failed<a name="line.243"></a>
+<span class="sourceLineNo">244</span>      backupInfo.setState(BackupState.FAILED);<a name="line.244"></a>
+<span class="sourceLineNo">245</span>      // compose the backup failed data<a name="line.245"></a>
+<span class="sourceLineNo">246</span>      String backupFailedData =<a name="line.246"></a>
+<span class="sourceLineNo">247</span>          "BackupId=" + backupInfo.getBackupId() + ",startts=" + backupInfo.getStartTs()<a name="line.247"></a>
+<span class="sourceLineNo">248</span>              + ",failedts=" + backupInfo.getCompleteTs() + ",failedphase=" + backupInfo.getPhase()<a name="line.248"></a>
+<span class="sourceLineNo">249</span>              + ",failedmessage=" + backupInfo.getFailedMsg();<a name="line.249"></a>
+<span class="sourceLineNo">250</span>      LOG.error(backupFailedData);<a name="line.250"></a>
+<span class="sourceLineNo">251</span>      cleanupAndRestoreBackupSystem(conn, backupInfo, conf);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>      // If backup session is updated to FAILED state - means we<a name="line.252"></a>
+<span class="sourceLineNo">253</span>      // processed recovery already.<a name="line.253"></a>
+<span class="sourceLineNo">254</span>      backupManager.updateBackupInfo(backupInfo);<a name="line.254"></a>
+<span class="sourceLineNo">255</span>      backupManager.finishBackupSession();<a name="line.255"></a>
+<span class="sourceLineNo">256</span>      LOG.error("Backup " + backupInfo.getBackupId() + " failed.");<a name="line.256"></a>
+<span class="sourceLineNo">257</span>    } catch (IOException ee) {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>      LOG.error("Please run backup repair tool manually to restore backup system integrity");<a name="line.258"></a>
+<span class="sourceLineNo">259</span>      throw ee;<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>  public static void cleanupAndRestoreBackupSystem(Connection conn, BackupInfo backupInfo,<a name="line.263"></a>
+<span class="sourceLineNo">264</span>      Configuration conf) throws IOException {<a name="line.264"></a>
+<span class="sourceLineNo">265</span>    BackupType type = backupInfo.getType();<a name="line.265"></a>
+<span class="sourceLineNo">266</span>    // if full backup, then delete HBase snapshots if there already are snapshots taken<a name="line.266"></a>
+<span class="sourceLineNo">267</span>    // and also clean up export snapshot log files if exist<a name="line.267"></a>
+<span class="sourceLineNo">268</span>    if (type == BackupType.FULL) {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>      deleteSnapshots(conn, backupInfo, conf);<a name="line.269"></a>
+<span class="sourceLineNo">270</span>      cleanupExportSnapshotLog(conf);<a name="line.270"></a>
+<span class="sourceLineNo">271</span>    }<a name="line.271"></a>
+<span class="sourceLineNo">272</span>    BackupSystemTable.restoreFromSnapshot(conn);<a name="line.272"></a>
+<span class="sourceLineNo">273</span>    BackupSystemTable.deleteSnapshot(conn);<a name="line.273"></a>
+<span class="sourceLineNo">274</span>    // clean up the uncompleted data at target directory if the ongoing backup has already entered<a name="line.274"></a>
+<span class="sourceLineNo">275</span>    // the copy phase<a name="line.275"></a>
+<span class="sourceLineNo">276</span>    // For incremental backup, DistCp logs will be cleaned with the targetDir.<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    cleanupTargetDir(backupInfo, conf);<a name="line.277"></a>
+<span class="sourceLineNo">278</span>  }<a name="line.278"></a>
 <span class="sourceLineNo">279</span><a name="line.279"></a>
 <span class="sourceLineNo">280</span><a name="line.280"></a>
-<span class="sourceLineNo">281</span>  /**<a name="line.281"></a>
-<span class="sourceLineNo">282</span>   * Add manifest for the current backup. The manifest is stored within the table backup directory.<a name="line.282"></a>
-<span class="sourceLineNo">283</span>   * @param backupInfo The current backup info<a name="line.283"></a>
-<span class="sourceLineNo">284</span>   * @throws IOException exception<a name="line.284"></a>
-<span class="sourceLineNo">285</span>   * @throws BackupException exception<a name="line.285"></a>
-<span class="sourceLineNo">286</span>   */<a name="line.286"></a>
-<span class="sourceLineNo">287</span>  protected void addManifest(BackupInfo backupInfo, BackupManager backupManager, BackupType type,<a name="line.287"></a>
-<span class="sourceLineNo">288</span>      Configuration conf) throws IOException, BackupException {<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    // set the overall backup phase : store manifest<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    backupInfo.setPhase(BackupPhase.STORE_MANIFEST);<a name="line.290"></a>
-<span class="sourceLineNo">291</span><a name="line.291"></a>
-<span class="sourceLineNo">292</span>    BackupManifest manifest;<a name="line.292"></a>
-<span class="sourceLineNo">293</span><a name="line.293"></a>
-<span class="sourceLineNo">294</span>    // Since we have each table's backup in its own directory structure,<a name="line.294"></a>
-<span class="sourceLineNo">295</span>    // we'll store its manifest with the table directory.<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    for (TableName table : backupInfo.getTables()) {<a name="line.296"></a>
-<span class="sourceLineNo">297</span>      manifest = new BackupManifest(backupInfo, table);<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      ArrayList&lt;BackupImage&gt; ancestors = backupManager.getAncestors(backupInfo, table);<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      for (BackupImage image : ancestors) {<a name="line.299"></a>
-<span class="sourceLineNo">300</span>        manifest.addDependentImage(image);<a name="line.300"></a>
-<span class="sourceLineNo">301</span>      }<a name="line.301"></a>
-<span class="sourceLineNo">302</span><a name="line.302"></a>
-<span class="sourceLineNo">303</span>      if (type == BackupType.INCREMENTAL) {<a name="line.303"></a>
-<span class="sourceLineNo">304</span>        // We'll store the log timestamps for this table only in its manifest.<a name="line.304"></a>
-<span class="sourceLineNo">305</span>        HashMap&lt;TableName, HashMap&lt;String, Long&gt;&gt; tableTimestampMap =<a name="line.305"></a>
-<span class="sourceLineNo">306</span>            new HashMap&lt;TableName, HashMap&lt;String, Long&gt;&gt;();<a name="line.306"></a>
-<span class="sourceLineNo">307</span>        tableTimestampMap.put(table, backupInfo.getIncrTimestampMap().get(table));<a name="line.307"></a>
-<span class="sourceLineNo">308</span>        manifest.setIncrTimestampMap(tableTimestampMap);<a name="line.308"></a>
-<span class="sourceLineNo">309</span>        ArrayList&lt;BackupImage&gt; ancestorss = backupManager.getAncestors(backupInfo);<a name="line.309"></a>
-<span class="sourceLineNo">310</span>        for (BackupImage image : ancestorss) {<a name="line.310"></a>
-<span class="sourceLineNo">311</span>          manifest.addDependentImage(image);<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>      manifest.store(conf);<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    }<a name="line.315"></a>
-<span class="sourceLineNo">316</span><a name="line.316"></a>
-<span class="sourceLineNo">317</span>    // For incremental backup, we store a overall manifest in<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    // &lt;backup-root-dir&gt;/WALs/&lt;backup-id&gt;<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    // This is used when created the next incremental backup<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    if (type == BackupType.INCREMENTAL) {<a name="line.320"></a>
-<span class="sourceLineNo">321</span>      manifest = new BackupManifest(backupInfo);<a name="line.321"></a>
-<span class="sourceLineNo">322</span>      // set the table region server start and end timestamps for incremental backup<a name="line.322"></a>
-<span class="sourceLineNo">323</span>      manifest.setIncrTimestampMap(backupInfo.getIncrTimestampMap());<a name="line.323"></a>
-<span class="sourceLineNo">324</span>      ArrayList&lt;BackupImage&gt; ancestors = backupManager.getAncestors(backupInfo);<a name="line.324"></a>
-<span class="sourceLineNo">325</span>      for (BackupImage image : ancestors) {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>        manifest.addDependentImage(image);<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      }<a name="line.327"></a>
-<span class="sourceLineNo">328</span>      manifest.store(conf);<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    }<a name="line.329"></a>
-<span class="sourceLineNo">330</span>  }<a name="line.330"></a>
-<span class="sourceLineNo">331</span><a name="line.331"></a>
-<span class="sourceLineNo">332</span>  /**<a name="line.332"></a>
-<span class="sourceLineNo">333</span>   * Get backup request meta data dir as string.<a name="line.333"></a>
-<span class="sourceLineNo">334</span>   * @param backupInfo backup info<a name="line.334"></a>
-<span class="sourceLineNo">335</span>   * @return meta data dir<a name="line.335"></a>
-<span class="sourceLineNo">336</span>   */<a name="line.336"></a>
-<span class="sourceLineNo">337</span>  protected String obtainBackupMetaDataStr(BackupInfo backupInfo) {<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    StringBuffer sb = new StringBuffer();<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    sb.append("type=" + backupInfo.getType() + ",tablelist=");<a name="line.339"></a>
-<span class="sourceLineNo">340</span>    for (TableName table : backupInfo.getTables()) {<a name="line.340"></a>
-<span class="sourceLineNo">341</span>      sb.append(table + ";");<a name="line.341"></a>
-<span class="sourceLineNo">342</span>    }<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    if (sb.lastIndexOf(";") &gt; 0) {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>      sb.delete(sb.lastIndexOf(";"), sb.lastIndexOf(";") + 1);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>    }<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    sb.append(",targetRootDir=" + backupInfo.getBackupRootDir());<a name="line.346"></a>
-<span class="sourceLineNo">347</span><a name="line.347"></a>
-<span class="sourceLineNo">348</span>    return sb.toString();<a name="line.348"></a>
-<span class="sourceLineNo">349</span>  }<a name="line.349"></a>
-<span class="sourceLineNo">350</span><a name="line.350"></a>
-<span class="sourceLineNo">351</span>  /**<a name="line.351"></a>
-<span class="sourceLineNo">352</span>   * Clean up directories with prefix "_distcp_logs-", which are generated when DistCp copying<a name="line.352"></a>
-<span class="sourceLineNo">353</span>   * hlogs.<a name="line.353"></a>
-<span class="sourceLineNo">354</span>   * @throws IOException exception<a name="line.354"></a>
-<span class="sourceLineNo">355</span>   */<a name="line.355"></a>
-<span class="sourceLineNo">356</span>  protected void cleanupDistCpLog(BackupInfo backupInfo, Configuration conf) throws IOException {<a name="line.356"></a>
-<span class="sourceLineNo">357</span>    Path rootPath = new Path(backupInfo.getHLogTargetDir()).getParent();<a name="line.357"></a>
-<span class="sourceLineNo">358</span>    FileSystem fs = FileSystem.get(rootPath.toUri(), conf);<a name="line.358"></a>
+<span class="sourceLineNo">281</span><a name="line.281"></a>
+<span class="sourceLineNo">282</span>  /**<a name="line.282"></a>
+<span class="sourceLineNo">283</span>   * Add manifest for the current backup. The manifest is stored within the table backup directory.<a name="line.283"></a>
+<span class="sourceLineNo">284</span>   * @param backupInfo The current backup info<a name="line.284"></a>
+<span class="sourceLineNo">285</span>   * @throws IOException exception<a name="line.285"></a>
+<span class="sourceLineNo">286</span>   * @throws BackupException exception<a name="line.286"></a>
+<span class="sourceLineNo">287</span>   */<a name="line.287"></a>
+<span class="sourceLineNo">288</span>  protected void addManifest(BackupInfo backupInfo, BackupManager backupManager, BackupType type,<a name="line.288"></a>
+<span class="sourceLineNo">289</span>      Configuration conf) throws IOException, BackupException {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>    // set the overall backup phase : store manifest<a name="line.290"></a>
+<span class="sourceLineNo">291</span>    backupInfo.setPhase(BackupPhase.STORE_MANIFEST);<a name="line.291"></a>
+<span class="sourceLineNo">292</span><a name="line.292"></a>
+<span class="sourceLineNo">293</span>    BackupManifest manifest;<a name="line.293"></a>
+<span class="sourceLineNo">294</span><a name="line.294"></a>
+<span class="sourceLineNo">295</span>    // Since we have each table's backup in its own directory structure,<a name="line.295"></a>
+<span class="sourceLineNo">296</span>    // we'll store its manifest with the table directory.<a name="line.296"></a>
+<span class="sourceLineNo">297</span>    for (TableName table : backupInfo.getTables()) {<a name="line.297"></a>
+<span class="sourceLineNo">298</span>      manifest = new BackupManifest(backupInfo, table);<a name="line.298"></a>
+<span class="sourceLineNo">299</span>      ArrayList&lt;BackupImage&gt; ancestors = backupManager.getAncestors(backupInfo, table);<a name="line.299"></a>
+<span class="sourceLineNo">300</span>      for (BackupImage image : ancestors) {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>        manifest.addDependentImage(image);<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>      if (type == BackupType.INCREMENTAL) {<a name="line.304"></a>
+<span class="sourceLineNo">305</span>        // We'll store the log timestamps for this table only in its manifest.<a name="line.305"></a>
+<span class="sourceLineNo">306</span>        HashMap&lt;TableName, HashMap&lt;String, Long&gt;&gt; tableTimestampMap =<a name="line.306"></a>
+<span class="sourceLineNo">307</span>            new HashMap&lt;TableName, HashMap&lt;String, Long&gt;&gt;();<a name="line.307"></a>
+<span class="sourceLineNo">308</span>        tableTimestampMap.put(table, backupInfo.getIncrTimestampMap().get(table));<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        manifest.setIncrTimestampMap(tableTimestampMap);<a name="line.309"></a>
+<span class="sourceLineNo">310</span>        ArrayList&lt;BackupImage&gt; ancestorss = backupManager.getAncestors(backupInfo);<a name="line.310"></a>
+<span class="sourceLineNo">311</span>        for (BackupImage image : ancestorss) {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>          manifest.addDependentImage(image);<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>      manifest.store(conf);<a name="line.315"></a>
+<span class="sourceLineNo">316</span>    }<a name="line.316"></a>
+<span class="sourceLineNo">317</span><a name="line.317"></a>
+<span class="sourceLineNo">318</span>    // For incremental backup, we store a overall manifest in<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    // &lt;backup-root-dir&gt;/WALs/&lt;backup-id&gt;<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    // This is used when created the next incremental backup<a name="line.320"></a>
+<span class="sourceLineNo">321</span>    if (type == BackupType.INCREMENTAL) {<a name="line.321"></a>
+<span class="sourceLineNo">322</span>      manifest = new BackupManifest(backupInfo);<a name="line.322"></a>
+<span class="sourceLineNo">323</span>      // set the table region server start and end timestamps for incremental backup<a name="line.323"></a>
+<span class="sourceLineNo">324</span>      manifest.setIncrTimestampMap(backupInfo.getIncrTimestampMap());<a name="line.324"></a>
+<span class="sourceLineNo">325</span>      ArrayList&lt;BackupImage&gt; ancestors = backupManager.getAncestors(backupInfo);<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      for (BackupImage image : ancestors) {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>        manifest.addDependentImage(image);<a name="line.327"></a>
+<span class="sourceLineNo">328</span>      }<a name="line.328"></a>
+<span class="sourceLineNo">329</span>      manifest.store(conf);<a name="line.329"></a>
+<span class="sourceLineNo">330</span>    }<a name="line.330"></a>
+<span class="sourceLineNo">331</span>  }<a name="line.331"></a>
+<span class="sourceLineNo">332</span><a name="line.332"></a>
+<span class="sourceLineNo">333</span>  /**<a name="line.333"></a>
+<span class="sourceLineNo">334</span>   * Get backup request meta data dir as string.<a name="line.334"></a>
+<span class="sourceLineNo">335</span>   * @param backupInfo backup info<a name="line.335"></a>
+<span class="sourceLineNo">336</span>   * @return meta data dir<a name="line.336"></a>
+<span class="sourceLineNo">337</span>   */<a name="line.337"></a>
+<span class="sourceLineNo">338</span>  protected String obtainBackupMetaDataStr(BackupInfo backupInfo) {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>    StringBuffer sb = new StringBuffer();<a name="line.339"></a>
+<span class="sourceLineNo">340</span>    sb.append("type=" + backupInfo.getType() + ",tablelist=");<a name="line.340"></a>
+<span class="sourceLineNo">341</span>    for (TableName table : backupInfo.getTables()) {<a name="line.341"></a>
+<span class="sourceLineNo">342</span>      sb.append(table + ";");<a name="line.342"></a>
+<span class="sourceLineNo">343</span>    }<a name="line.343"></a>
+<span class="sourceLineNo">344</span>    if (sb.lastIndexOf(";") &gt; 0) {<a name="line.344"></a>
+<span class="sourceLineNo">345</span>      sb.delete(sb.lastIndexOf(";"), sb.lastIndexOf(";") + 1);<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    }<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    sb.append(",targetRootDir=" + backupInfo.getBackupRootDir());<a name="line.347"></a>
+<span class="sourceLineNo">348</span><a name="line.348"></a>
+<span class="sourceLineNo">349</span>    return sb.toString();<a name="line.349"></a>
+<span class="sourceLineNo">350</span>  }<a name="line.350"></a>
+<span class="sourceLineNo">351</span><a name="line.351"></a>
+<span class="sourceLineNo">352</span>  /**<a name="line.352"></a>
+<span class="sourceLineNo">353</span>   * Clean up directories with prefix "_distcp_logs-", which are generated when DistCp copying<a name="line.353"></a>
+<span class="sourceLineNo">354</span>   * hlogs.<a name="line.354"></a>
+<span class="sourceLineNo">355</span>   * @throws IOException exception<a name="line.355"></a>
+<span class="sourceLineNo">356</span>   */<a name="line.356"></a>
+<span class="sourceLineNo">357</span>  protected void cleanupDistCpLog(BackupInfo backupInfo, Configuration conf) throws IOException {<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    Path rootPath = new Path(backupInfo.getHLogTargetDir()).getParent();<a name="line.358"></a>
 <span class="sourceLineNo">359</span>    FileStatus[] files = FSUtils.listStatus(fs, rootPath);<a name="line.359"></a>
 <span class="sourceLineNo">360</span>    if (files == null) {<a name="line.360"></a>
 <span class="sourceLineNo">361</span>      return;<a name="line.361"></a>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/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 1fc3ca7..ec25b93 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
@@ -62,3477 +62,3486 @@
 <span class="sourceLineNo">054</span>import javax.servlet.http.HttpServletResponse;<a name="line.54"></a>
 <span class="sourceLineNo">055</span>import org.apache.hadoop.conf.Configuration;<a name="line.55"></a>
 <span class="sourceLineNo">056</span>import org.apache.hadoop.fs.Path;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.ClusterMetrics;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.ClusterMetrics.Option;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.ClusterMetricsBuilder;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.CoordinatedStateException;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.DoNotRetryIOException;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.HBaseIOException;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.HBaseInterfaceAudience;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.HConstants;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.InvalidFamilyOperationException;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.MasterNotRunningException;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.PleaseHoldException;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.ReplicationPeerNotFoundException;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.ServerLoad;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.ServerMetricsBuilder;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.ServerName;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.TableDescriptors;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.TableName;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.TableNotDisabledException;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.client.MasterSwitchType;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.client.RegionInfo;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.client.Result;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.client.TableDescriptor;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.client.TableDescriptorBuilder;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.client.TableState;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.coprocessor.CoprocessorHost;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.exceptions.MergeRegionException;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.executor.ExecutorType;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.favored.FavoredNodesManager;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.favored.FavoredNodesPromoter;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.http.InfoServer;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.ipc.RpcServer;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.ipc.ServerNotRunningYetException;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.log.HBaseMarkers;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.master.MasterRpcServices.BalanceSwitchMode;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.master.assignment.AssignmentManager;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.master.assignment.MergeTableRegionsProcedure;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.master.assignment.RegionStates;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.master.assignment.RegionStates.RegionStateNode;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.master.balancer.BalancerChore;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.master.balancer.ClusterStatusChore;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.master.balancer.LoadBalancerFactory;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.master.cleaner.HFileCleaner;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.master.cleaner.LogCleaner;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.master.cleaner.ReplicationMetaCleaner;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.master.locking.LockManager;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.master.normalizer.NormalizationPlan;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.master.normalizer.NormalizationPlan.PlanType;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizer;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizerChore;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizerFactory;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.master.procedure.CreateTableProcedure;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.master.procedure.DeleteTableProcedure;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.master.procedure.DisableTableProcedure;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.master.procedure.EnableTableProcedure;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureConstants;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureUtil;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.master.procedure.ModifyTableProcedure;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.master.procedure.ProcedurePrepareLatch;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.master.procedure.RecoverMetaProcedure;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.master.procedure.TruncateTableProcedure;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.master.replication.AddPeerProcedure;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.master.replication.DisablePeerProcedure;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.master.replication.EnablePeerProcedure;<a name="line.130"></a>
-<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.master.replication.ModifyPeerProcedure;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.master.replication.RemovePeerProcedure;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.master.replication.ReplicationPeerManager;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.master.replication.UpdatePeerConfigProcedure;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.master.snapshot.SnapshotManager;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.mob.MobConstants;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.monitoring.MemoryBoundedLogMessageBuffer;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.monitoring.MonitoredTask;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.monitoring.TaskMonitor;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.procedure.MasterProcedureManagerHost;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.procedure.flush.MasterFlushTableProcedureManager;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.procedure2.LockedResource;<a name="line.142"></a>
-<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.procedure2.Procedure;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.procedure2.ProcedureEvent;<a name="line.144"></a>
-<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.procedure2.ProcedureExecutor;<a name="line.145"></a>
-<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.procedure2.RemoteProcedureDispatcher.RemoteProcedure;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.procedure2.RemoteProcedureException;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.procedure2.store.wal.WALProcedureStore;<a name="line.148"></a>
-<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.quotas.MasterQuotaManager;<a name="line.149"></a>
-<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.quotas.MasterSpaceQuotaObserver;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.quotas.QuotaObserverChore;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.quotas.QuotaUtil;<a name="line.152"></a>
-<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.quotas.SnapshotQuotaObserverChore;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.quotas.SpaceQuotaSnapshotNotifier;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.quotas.SpaceQuotaSnapshotNotifierFactory;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.regionserver.DefaultStoreEngine;<a name="line.156"></a>
-<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.regionserver.HRegionServer;<a name="line.157"></a>
-<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.regionserver.HStore;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.regionserver.RSRpcServices;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost;<a name="line.160"></a>
-<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.regionserver.RegionSplitPolicy;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.regionserver.compactions.ExploringCompactionPolicy;<a name="line.162"></a>
-<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.regionserver.compactions.FIFOCompactionPolicy;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.164"></a>
-<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.replication.master.ReplicationPeerConfigUpgrader;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.replication.regionserver.Replication;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.security.AccessDeniedException;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.security.UserProvider;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.trace.TraceUtil;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.util.Addressing;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.173"></a>
-<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.util.CompressionTest;<a name="line.174"></a>
-<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.util.EncryptionTest;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.util.HFileArchiveUtil;<a name="line.176"></a>
-<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.util.HasThread;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.util.IdLock;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.util.ModifyRegionUtils;<a name="line.179"></a>
-<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.180"></a>
-<span class="sourceLineNo">181</span>import org.apache.hadoop.hbase.util.Threads;<a name="line.181"></a>
-<span class="sourceLineNo">182</span>import org.apache.hadoop.hbase.util.VersionInfo;<a name="line.182"></a>
-<span class="sourceLineNo">183</span>import org.apache.hadoop.hbase.util.ZKDataMigrator;<a name="line.183"></a>
-<span class="sourceLineNo">184</span>import org.apache.hadoop.hbase.zookeeper.LoadBalancerTracker;<a name="line.184"></a>
-<span class="sourceLineNo">185</span>import org.apache.hadoop.hbase.zookeeper.MasterAddressTracker;<a name="line.185"></a>
-<span class="sourceLineNo">186</span>import org.apache.hadoop.hbase.zookeeper.MasterMaintenanceModeTracker;<a name="line.186"></a>
-<span class="sourceLineNo">187</span>import org.apache.hadoop.hbase.zookeeper.RegionNormalizerTracker;<a name="line.187"></a>
-<span class="sourceLineNo">188</span>import org.apache.hadoop.hbase.zookeeper.ZKClusterId;<a name="line.188"></a>
-<span class="sourceLineNo">189</span>import org.apache.hadoop.hbase.zookeeper.ZKUtil;<a name="line.189"></a>
-<span class="sourceLineNo">190</span>import org.apache.hadoop.hbase.zookeeper.ZKWatcher;<a name="line.190"></a>
-<span class="sourceLineNo">191</span>import org.apache.hadoop.hbase.zookeeper.ZNodePaths;<a name="line.191"></a>
-<span class="sourceLineNo">192</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.192"></a>
-<span class="sourceLineNo">193</span>import org.apache.zookeeper.KeeperException;<a name="line.193"></a>
-<span class="sourceLineNo">194</span>import org.eclipse.jetty.server.Server;<a name="line.194"></a>
-<span class="sourceLineNo">195</span>import org.eclipse.jetty.server.ServerConnector;<a name="line.195"></a>
-<span class="sourceLineNo">196</span>import org.eclipse.jetty.servlet.ServletHolder;<a name="line.196"></a>
-<span class="sourceLineNo">197</span>import org.eclipse.jetty.webapp.WebAppContext;<a name="line.197"></a>
-<span class="sourceLineNo">198</span>import org.slf4j.Logger;<a name="line.198"></a>
-<span class="sourceLineNo">199</span>import org.slf4j.LoggerFactory;<a name="line.199"></a>
-<span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>import org.apache.hbase.thirdparty.com.google.common.annotations.VisibleForTesting;<a name="line.201"></a>
-<span class="sourceLineNo">202</span>import org.apache.hbase.thirdparty.com.google.common.collect.Lists;<a name="line.202"></a>
-<span class="sourceLineNo">203</span>import org.apache.hbase.thirdparty.com.google.common.collect.Maps;<a name="line.203"></a>
-<span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.205"></a>
-<span class="sourceLineNo">206</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetRegionInfoResponse.CompactionState;<a name="line.206"></a>
-<span class="sourceLineNo">207</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionServerInfo;<a name="line.207"></a>
-<span class="sourceLineNo">208</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.Quotas;<a name="line.208"></a>
-<span class="sourceLineNo">209</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.SpaceViolationPolicy;<a name="line.209"></a>
-<span class="sourceLineNo">210</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription;<a name="line.210"></a>
-<span class="sourceLineNo">211</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos;<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> * HMaster is the "master server" for HBase. An HBase cluster has one active<a name="line.214"></a>
-<span class="sourceLineNo">215</span> * master.  If many masters are started, all compete.  Whichever wins goes on to<a name="line.215"></a>
-<span class="sourceLineNo">216</span> * run the cluster.  All others park themselves in their constructor until<a name="line.216"></a>
-<span class="sourceLineNo">217</span> * master or cluster shutdown or until the active master loses its lease in<a name="line.217"></a>
-<span class="sourceLineNo">218</span> * zookeeper.  Thereafter, all running master jostle to take over master role.<a name="line.218"></a>
-<span class="sourceLineNo">219</span> *<a name="line.219"></a>
-<span class="sourceLineNo">220</span> * &lt;p&gt;The Master can be asked shutdown the cluster. See {@link #shutdown()}.  In<a name="line.220"></a>
-<span class="sourceLineNo">221</span> * this case it will tell all regionservers to go down and then wait on them<a name="line.221"></a>
-<span class="sourceLineNo">222</span> * all reporting in that they are down.  This master will then shut itself down.<a name="line.222"></a>
-<span class="sourceLineNo">223</span> *<a name="line.223"></a>
-<span class="sourceLineNo">224</span> * &lt;p&gt;You can also shutdown just this master.  Call {@link #stopMaster()}.<a name="line.224"></a>
-<span class="sourceLineNo">225</span> *<a name="line.225"></a>
-<span class="sourceLineNo">226</span> * @see org.apache.zookeeper.Watcher<a name="line.226"></a>
-<span class="sourceLineNo">227</span> */<a name="line.227"></a>
-<span class="sourceLineNo">228</span>@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.TOOLS)<a name="line.228"></a>
-<span class="sourceLineNo">229</span>@SuppressWarnings("deprecation")<a name="line.229"></a>
-<span class="sourceLineNo">230</span>public class HMaster extends HRegionServer implements MasterServices {<a name="line.230"></a>
-<span class="sourceLineNo">231</span>  private static Logger LOG = LoggerFactory.getLogger(HMaster.class.getName());<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>   * Protection against zombie master. Started once Master accepts active responsibility and<a name="line.234"></a>
-<span class="sourceLineNo">235</span>   * starts taking over responsibilities. Allows a finite time window before giving up ownership.<a name="line.235"></a>
-<span class="sourceLineNo">236</span>   */<a name="line.236"></a>
-<span class="sourceLineNo">237</span>  private static class InitializationMonitor extends HasThread {<a name="line.237"></a>
-<span class="sourceLineNo">238</span>    /** The amount of time in milliseconds to sleep before checking initialization status. */<a name="line.238"></a>
-<span class="sourceLineNo">239</span>    public static final String TIMEOUT_KEY = "hbase.master.initializationmonitor.timeout";<a name="line.239"></a>
-<span class="sourceLineNo">240</span>    public static final long TIMEOUT_DEFAULT = TimeUnit.MILLISECONDS.convert(15, TimeUnit.MINUTES);<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>     * When timeout expired and initialization has not complete, call {@link System#exit(int)} when<a name="line.243"></a>
-<span class="sourceLineNo">244</span>     * true, do nothing otherwise.<a name="line.244"></a>
-<span class="sourceLineNo">245</span>     */<a name="line.245"></a>
-<span class="sourceLineNo">246</span>    public static final String HALT_KEY = "hbase.master.initializationmonitor.haltontimeout";<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    public static final boolean HALT_DEFAULT = false;<a name="line.247"></a>
-<span class="sourceLineNo">248</span><a name="line.248"></a>
-<span class="sourceLineNo">249</span>    private final HMaster master;<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    private final long timeout;<a name="line.250"></a>
-<span class="sourceLineNo">251</span>    private final boolean haltOnTimeout;<a name="line.251"></a>
-<span class="sourceLineNo">252</span><a name="line.252"></a>
-<span class="sourceLineNo">253</span>    /** Creates a Thread that monitors the {@link #isInitialized()} state. */<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    InitializationMonitor(HMaster master) {<a name="line.254"></a>
-<span class="sourceLineNo">255</span>      super("MasterInitializationMonitor");<a name="line.255"></a>
-<span class="sourceLineNo">256</span>      this.master = master;<a name="line.256"></a>
-<span class="sourceLineNo">257</span>      this.timeout = master.getConfiguration().getLong(TIMEOUT_KEY, TIMEOUT_DEFAULT);<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      this.haltOnTimeout = master.getConfiguration().getBoolean(HALT_KEY, HALT_DEFAULT);<a name="line.258"></a>
-<span class="sourceLineNo">259</span>      this.setDaemon(true);<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>    @Override<a name="line.262"></a>
-<span class="sourceLineNo">263</span>    public void run() {<a name="line.263"></a>
-<span class="sourceLineNo">264</span>      try {<a name="line.264"></a>
-<span class="sourceLineNo">265</span>        while (!master.isStopped() &amp;&amp; master.isActiveMaster()) {<a name="line.265"></a>
-<span class="sourceLineNo">266</span>          Thread.sleep(timeout);<a name="line.266"></a>
-<span class="sourceLineNo">267</span>          if (master.isInitialized()) {<a name="line.267"></a>
-<span class="sourceLineNo">268</span>            LOG.debug("Initialization completed within allotted tolerance. Monitor exiting.");<a name="line.268"></a>
-<span class="sourceLineNo">269</span>          } else {<a name="line.269"></a>
-<span class="sourceLineNo">270</span>            LOG.error("Master failed to complete initialization after " + timeout + "ms. Please"<a name="line.270"></a>
-<span class="sourceLineNo">271</span>                + " consider submitting a bug report including a thread dump of this process.");<a name="line.271"></a>
-<span class="sourceLineNo">272</span>            if (haltOnTimeout) {<a name="line.272"></a>
-<span class="sourceLineNo">273</span>              LOG.error("Zombie Master exiting. Thread dump to stdout");<a name="line.273"></a>
-<span class="sourceLineNo">274</span>              Threads.printThreadInfo(System.out, "Zombie HMaster");<a name="line.274"></a>
-<span class="sourceLineNo">275</span>              System.exit(-1);<a name="line.275"></a>
-<span class="sourceLineNo">276</span>            }<a name="line.276"></a>
-<span class="sourceLineNo">277</span>          }<a name="line.277"></a>
-<span class="sourceLineNo">278</span>        }<a name="line.278"></a>
-<span class="sourceLineNo">279</span>      } catch (InterruptedException ie) {<a name="line.279"></a>
-<span class="sourceLineNo">280</span>        LOG.trace("InitMonitor thread interrupted. Existing.");<a name="line.280"></a>
-<span class="sourceLineNo">281</span>      }<a name="line.281"></a>
-<span class="sourceLineNo">282</span>    }<a name="line.282"></a>
-<span class="sourceLineNo">283</span>  }<a name="line.283"></a>
-<span class="sourceLineNo">284</span><a name="line.284"></a>
-<span class="sourceLineNo">285</span>  // MASTER is name of the webapp and the attribute name used stuffing this<a name="line.285"></a>
-<span class="sourceLineNo">286</span>  //instance into web context.<a name="line.286"></a>
-<span class="sourceLineNo">287</span>  public static final String MASTER = "master";<a name="line.287"></a>
-<span class="sourceLineNo">288</span><a name="line.288"></a>
-<span class="sourceLineNo">289</span>  // Manager and zk listener for master election<a name="line.289"></a>
-<span class="sourceLineNo">290</span>  private final ActiveMasterManager activeMasterManager;<a name="line.290"></a>
-<span class="sourceLineNo">291</span>  // Region server tracker<a name="line.291"></a>
-<span class="sourceLineNo">292</span>  RegionServerTracker regionServerTracker;<a name="line.292"></a>
-<span class="sourceLineNo">293</span>  // Draining region server tracker<a name="line.293"></a>
-<span class="sourceLineNo">294</span>  private DrainingServerTracker drainingServerTracker;<a name="line.294"></a>
-<span class="sourceLineNo">295</span>  // Tracker for load balancer state<a name="line.295"></a>
-<span class="sourceLineNo">296</span>  LoadBalancerTracker loadBalancerTracker;<a name="line.296"></a>
-<span class="sourceLineNo">297</span><a name="line.297"></a>
-<span class="sourceLineNo">298</span>  // Tracker for split and merge state<a name="line.298"></a>
-<span class="sourceLineNo">299</span>  private SplitOrMergeTracker splitOrMergeTracker;<a name="line.299"></a>
-<span class="sourceLineNo">300</span><a name="line.300"></a>
-<span class="sourceLineNo">301</span>  // Tracker for region normalizer state<a name="line.301"></a>
-<span class="sourceLineNo">302</span>  private RegionNormalizerTracker regionNormalizerTracker;<a name="line.302"></a>
-<span class="sourceLineNo">303</span><a name="line.303"></a>
-<span class="sourceLineNo">304</span>  //Tracker for master maintenance mode setting<a name="line.304"></a>
-<span class="sourceLineNo">305</span>  private MasterMaintenanceModeTracker maintenanceModeTracker;<a name="line.305"></a>
-<span class="sourceLineNo">306</span><a name="line.306"></a>
-<span class="sourceLineNo">307</span>  private ClusterSchemaService clusterSchemaService;<a name="line.307"></a>
-<span class="sourceLineNo">308</span><a name="line.308"></a>
-<span class="sourceLineNo">309</span>  public static final String HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS =<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    "hbase.master.wait.on.service.seconds";<a name="line.310"></a>
-<span class="sourceLineNo">311</span>  public static final int DEFAULT_HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS = 5 * 60;<a name="line.311"></a>
-<span class="sourceLineNo">312</span><a name="line.312"></a>
-<span class="sourceLineNo">313</span>  // Metrics for the HMaster<a name="line.313"></a>
-<span class="sourceLineNo">314</span>  final MetricsMaster metricsMaster;<a name="line.314"></a>
-<span class="sourceLineNo">315</span>  // file system manager for the master FS operations<a name="line.315"></a>
-<span class="sourceLineNo">316</span>  private MasterFileSystem fileSystemManager;<a name="line.316"></a>
-<span class="sourceLineNo">317</span>  private MasterWalManager walManager;<a name="line.317"></a>
-<span class="sourceLineNo">318</span><a name="line.318"></a>
-<span class="sourceLineNo">319</span>  // server manager to deal with region server info<a name="line.319"></a>
-<span class="sourceLineNo">320</span>  private volatile ServerManager serverManager;<a name="line.320"></a>
-<span class="sourceLineNo">321</span><a name="line.321"></a>
-<span class="sourceLineNo">322</span>  // manager of assignment nodes in zookeeper<a name="line.322"></a>
-<span class="sourceLineNo">323</span>  private AssignmentManager assignmentManager;<a name="line.323"></a>
-<span class="sourceLineNo">324</span><a name="line.324"></a>
-<span class="sourceLineNo">325</span>  // manager of replication<a name="line.325"></a>
-<span class="sourceLineNo">326</span>  private ReplicationPeerManager replicationPeerManager;<a name="line.326"></a>
-<span class="sourceLineNo">327</span><a name="line.327"></a>
-<span class="sourceLineNo">328</span>  // buffer for "fatal error" notices from region servers<a name="line.328"></a>
-<span class="sourceLineNo">329</span>  // in the cluster. This is only used for assisting<a name="line.329"></a>
-<span class="sourceLineNo">330</span>  // operations/debugging.<a name="line.330"></a>
-<span class="sourceLineNo">331</span>  MemoryBoundedLogMessageBuffer rsFatals;<a name="line.331"></a>
-<span class="sourceLineNo">332</span><a name="line.332"></a>
-<span class="sourceLineNo">333</span>  // flag set after we become the active master (used for testing)<a name="line.333"></a>
-<span class="sourceLineNo">334</span>  private volatile boolean activeMaster = false;<a name="line.334"></a>
-<span class="sourceLineNo">335</span><a name="line.335"></a>
-<span class="sourceLineNo">336</span>  // flag set after we complete initialization once active<a name="line.336"></a>
-<span class="sourceLineNo">337</span>  private final ProcedureEvent&lt;?&gt; initialized = new ProcedureEvent&lt;&gt;("master initialized");<a name="line.337"></a>
-<span class="sourceLineNo">338</span><a name="line.338"></a>
-<span class="sourceLineNo">339</span>  // flag set after master services are started,<a name="line.339"></a>
-<span class="sourceLineNo">340</span>  // initialization may have not completed yet.<a name="line.340"></a>
-<span class="sourceLineNo">341</span>  volatile boolean serviceStarted = false;<a name="line.341"></a>
-<span class="sourceLineNo">342</span><a name="line.342"></a>
-<span class="sourceLineNo">343</span>  // flag set after we complete assignMeta.<a name="line.343"></a>
-<span class="sourceLineNo">344</span>  private final ProcedureEvent&lt;?&gt; serverCrashProcessingEnabled =<a name="line.344"></a>
-<span class="sourceLineNo">345</span>    new ProcedureEvent&lt;&gt;("server crash processing");<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>  // Maximum time we should run balancer for<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  private final int maxBlancingTime;<a name="line.348"></a>
-<span class="sourceLineNo">349</span>  // Maximum percent of regions in transition when balancing<a name="line.349"></a>
-<span class="sourceLineNo">350</span>  private final double maxRitPercent;<a name="line.350"></a>
-<span class="sourceLineNo">351</span><a name="line.351"></a>
-<span class="sourceLineNo">352</span>  private final LockManager lockManager = new LockManager(this);<a name="line.352"></a>
-<span class="sourceLineNo">353</span><a name="line.353"></a>
-<span class="sourceLineNo">354</span>  private LoadBalancer balancer;<a name="line.354"></a>
-<span class="sourceLineNo">355</span>  private RegionNormalizer normalizer;<a name="line.355"></a>
-<span class="sourceLineNo">356</span>  private BalancerChore balancerChore;<a name="line.356"></a>
-<span class="sourceLineNo">357</span>  private RegionNormalizerChore normalizerChore;<a name="line.357"></a>
-<span class="sourceLineNo">358</span>  private ClusterStatusChore clusterStatusChore;<a name="line.358"></a>
-<span class="sourceLineNo">359</span>  private ClusterStatusPublisher clusterStatusPublisherChore = null;<a name="line.359"></a>
-<span class="sourceLineNo">360</span><a name="line.360"></a>
-<span class="sourceLineNo">361</span>  CatalogJanitor catalogJanitorChore;<a name="line.361"></a>
-<span class="sourceLineNo">362</span>  private ReplicationMetaCleaner replicationMetaCleaner;<a name="line.362"></a>
-<span class="sourceLineNo">363</span>  private LogCleaner logCleaner;<a name="line.363"></a>
-<span class="sourceLineNo">364</span>  private HFileCleaner hfileCleaner;<a name="line.364"></a>
-<span class="sourceLineNo">365</span>  private ExpiredMobFileCleanerChore expiredMobFileCleanerChore;<a name="line.365"></a>
-<span class="sourceLineNo">366</span>  private MobCompactionChore mobCompactChore;<a name="line.366"></a>
-<span class="sourceLineNo">367</span>  private MasterMobCompactionThread mobCompactThread;<a name="line.367"></a>
-<span class="sourceLineNo">368</span>  // used to synchronize the mobCompactionStates<a name="line.368"></a>
-<span class="sourceLineNo">369</span>  private final IdLock mobCompactionLock = new IdLock();<a name="line.369"></a>
-<span class="sourceLineNo">370</span>  // save the information of mob compactions in tables.<a name="line.370"></a>
-<span class="sourceLineNo">371</span>  // the key is table name, the value is the number of compactions in that table.<a name="line.371"></a>
-<span class="sourceLineNo">372</span>  private Map&lt;TableName, AtomicInteger&gt; mobCompactionStates = Maps.newConcurrentMap();<a name="line.372"></a>
-<span class="sourceLineNo">373</span><a name="line.373"></a>
-<span class="sourceLineNo">374</span>  MasterCoprocessorHost cpHost;<a name="line.374"></a>
-<span class="sourceLineNo">375</span><a name="line.375"></a>
-<span class="sourceLineNo">376</span>  private final boolean preLoadTableDescriptors;<a name="line.376"></a>
-<span class="sourceLineNo">377</span><a name="line.377"></a>
-<span class="sourceLineNo">378</span>  // Time stamps for when a hmaster became active<a name="line.378"></a>
-<span class="sourceLineNo">379</span>  private long masterActiveTime;<a name="line.379"></a>
-<span class="sourceLineNo">380</span><a name="line.380"></a>
-<span class="sourceLineNo">381</span>  // Time stamp for when HMaster finishes becoming Active Master<a name="line.381"></a>
-<span class="sourceLineNo">382</span>  private long masterFinishedInitializationTime;<a name="line.382"></a>
-<span class="sourceLineNo">383</span><a name="line.383"></a>
-<span class="sourceLineNo">384</span>  //should we check the compression codec type at master side, default true, HBASE-6370<a name="line.384"></a>
-<span class="sourceLineNo">385</span>  private final boolean masterCheckCompression;<a name="line.385"></a>
-<span class="sourceLineNo">386</span><a name="line.386"></a>
-<span class="sourceLineNo">387</span>  //should we check encryption settings at master side, default true<a name="line.387"></a>
-<span class="sourceLineNo">388</span>  private final boolean masterCheckEncryption;<a name="line.388"></a>
-<span class="sourceLineNo">389</span><a name="line.389"></a>
-<span class="sourceLineNo">390</span>  Map&lt;String, Service&gt; coprocessorServiceHandlers = Maps.newHashMap();<a name="line.390"></a>
-<span class="sourceLineNo">391</span><a name="line.391"></a>
-<span class="sourceLineNo">392</span>  // monitor for snapshot of hbase tables<a name="line.392"></a>
-<span class="sourceLineNo">393</span>  SnapshotManager snapshotManager;<a name="line.393"></a>
-<span class="sourceLineNo">394</span>  // monitor for distributed procedures<a name="line.394"></a>
-<span class="sourceLineNo">395</span>  private MasterProcedureManagerHost mpmHost;<a name="line.395"></a>
-<span class="sourceLineNo">396</span><a name="line.396"></a>
-<span class="sourceLineNo">397</span>  // it is assigned after 'initialized' guard set to true, so should be volatile<a name="line.397"></a>
-<span class="sourceLineNo">398</span>  private volatile MasterQuotaManager quotaManager;<a name="line.398"></a>
-<span class="sourceLineNo">399</span>  private SpaceQuotaSnapshotNotifier spaceQuotaSnapshotNotifier;<a name="line.399"></a>
-<span class="sourceLineNo">400</span>  private QuotaObserverChore quotaObserverChore;<a name="line.400"></a>
-<span class="sourceLineNo">401</span>  private SnapshotQuotaObserverChore snapshotQuotaChore;<a name="line.401"></a>
-<span class="sourceLineNo">402</span><a name="line.402"></a>
-<span class="sourceLineNo">403</span>  private ProcedureExecutor&lt;MasterProcedureEnv&gt; procedureExecutor;<a name="line.403"></a>
-<span class="sourceLineNo">404</span>  private WALProcedureStore procedureStore;<a name="line.404"></a>
-<span class="sourceLineNo">405</span><a name="line.405"></a>
-<span class="sourceLineNo">406</span>  // handle table states<a name="line.406"></a>
-<span class="sourceLineNo">407</span>  private TableStateManager tableStateManager;<a name="line.407"></a>
-<span class="sourceLineNo">408</span><a name="line.408"></a>
-<span class="sourceLineNo">409</span>  private long splitPlanCount;<a name="line.409"></a>
-<span class="sourceLineNo">410</span>  private long mergePlanCount;<a name="line.410"></a>
-<span class="sourceLineNo">411</span><a name="line.411"></a>
-<span class="sourceLineNo">412</span>  /* Handle favored nodes information */<a name="line.412"></a>
-<span class="sourceLineNo">413</span>  private FavoredNodesManager favoredNodesManager;<a name="line.413"></a>
-<span class="sourceLineNo">414</span><a name="line.414"></a>
-<span class="sourceLineNo">415</span>  /** jetty server for master to redirect requests to regionserver infoServer */<a name="line.415"></a>
-<span class="sourceLineNo">416</span>  private Server masterJettyServer;<a name="line.416"></a>
-<span class="sourceLineNo">417</span><a name="line.417"></a>
-<span class="sourceLineNo">418</span>  public static class RedirectServlet extends HttpServlet {<a name="line.418"></a>
-<span class="sourceLineNo">419</span>    private static final long serialVersionUID = 2894774810058302473L;<a name="line.419"></a>
-<span class="sourceLineNo">420</span>    private final int regionServerInfoPort;<a name="line.420"></a>
-<span class="sourceLineNo">421</span>    private final String regionServerHostname;<a name="line.421"></a>
-<span class="sourceLineNo">422</span><a name="line.422"></a>
-<span class="sourceLineNo">423</span>    /**<a name="line.423"></a>
-<span class="sourceLineNo">424</span>     * @param infoServer that we're trying to send all requests to<a name="line.424"></a>
-<span class="sourceLineNo">425</span>     * @param hostname may be null. if given, will be used for redirects instead of host from client.<a name="line.425"></a>
-<span class="sourceLineNo">426</span>     */<a name="line.426"></a>
-<span class="sourceLineNo">427</span>    public RedirectServlet(InfoServer infoServer, String hostname) {<a name="line.427"></a>
-<span class="sourceLineNo">428</span>       regionServerInfoPort = infoServer.getPort();<a name="line.428"></a>
-<span class="sourceLineNo">429</span>       regionServerHostname = hostname;<a name="line.429"></a>
-<span class="sourceLineNo">430</span>    }<a name="line.430"></a>
-<span class="sourceLineNo">431</span><a name="line.431"></a>
-<span class="sourceLineNo">432</span>    @Override<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    public void doGet(HttpServletRequest request,<a name="line.433"></a>
-<span class="sourceLineNo">434</span>        HttpServletResponse response) throws ServletException, IOException {<a name="line.434"></a>
-<span class="sourceLineNo">435</span>      String redirectHost = regionServerHostname;<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      if(redirectHost == null) {<a name="line.436"></a>
-<span class="sourceLineNo">437</span>        redirectHost = request.getServerName();<a name="line.437"></a>
-<span class="sourceLineNo">438</span>        if(!Addressing.isLocalAddress(InetAddress.getByName(redirectHost))) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>          LOG.warn("Couldn't resolve '" + redirectHost + "' as an address local to this node and '" +<a name="line.439"></a>
-<span class="sourceLineNo">440</span>              MASTER_HOSTNAME_KEY + "' is not set; client will get a HTTP 400 response. If " +<a name="line.440"></a>
-<span class="sourceLineNo">441</span>              "your HBase deployment relies on client accessible names that the region server process " +<a name="line.441"></a>
-<span class="sourceLineNo">442</span>              "can't resolve locally, then you should set the previously mentioned configuration variable " +<a name="line.442"></a>
-<span class="sourceLineNo">443</span>              "to an appropriate hostname.");<a name="line.443"></a>
-<span class="sourceLineNo">444</span>          // no sending client provided input back to the client, so the goal host is just in the logs.<a name="line.444"></a>
-<span class="sourceLineNo">445</span>          response.sendError(400, "Request was to a host that I can't resolve for any of the network interfaces on " +<a name="line.445"></a>
-<span class="sourceLineNo">446</span>              "this node. If this is due to an intermediary such as an HTTP load balancer or other proxy, your HBase " +<a name="line.446"></a>
-<span class="sourceLineNo">447</span>              "administrator can set '" + MASTER_HOSTNAME_KEY + "' to point to the correct hostname.");<a name="line.447"></a>
-<span class="sourceLineNo">448</span>          return;<a name="line.448"></a>
-<span class="sourceLineNo">449</span>        }<a name="line.449"></a>
-<span class="sourceLineNo">450</span>      }<a name="line.450"></a>
-<span class="sourceLineNo">451</span>      // TODO this scheme should come from looking at the scheme registered in the infoserver's http server for the<a name="line.451"></a>
-<span class="sourceLineNo">452</span>      // host and port we're using, but it's buried way too deep to do that ATM.<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      String redirectUrl = request.getScheme() + "://"<a name="line.453"></a>
-<span class="sourceLineNo">454</span>        + redirectHost + ":" + regionServerInfoPort<a name="line.454"></a>
-<span class="sourceLineNo">455</span>        + request.getRequestURI();<a name="line.455"></a>
-<span class="sourceLineNo">456</span>      response.sendRedirect(redirectUrl);<a name="line.456"></a>
-<span class="sourceLineNo">457</span>    }<a name="line.457"></a>
-<span class="sourceLineNo">458</span>  }<a name="line.458"></a>
-<span class="sourceLineNo">459</span><a name="line.459"></a>
-<span class="sourceLineNo">460</span>  /**<a name="line.460"></a>
-<span class="sourceLineNo">461</span>   * Initializes the HMaster. The steps are as follows:<a name="line.461"></a>
-<span class="sourceLineNo">462</span>   * &lt;p&gt;<a name="line.462"></a>
-<span class="sourceLineNo">463</span>   * &lt;ol&gt;<a name="line.463"></a>
-<span class="sourceLineNo">464</span>   * &lt;li&gt;Initialize the local HRegionServer<a name="line.464"></a>
-<span class="sourceLineNo">465</span>   * &lt;li&gt;Start the ActiveMasterManager.<a name="line.465"></a>
-<span class="sourceLineNo">466</span>   * &lt;/ol&gt;<a name="line.466"></a>
-<span class="sourceLineNo">467</span>   * &lt;p&gt;<a name="line.467"></a>
-<span class="sourceLineNo">468</span>   * Remaining steps of initialization occur in<a name="line.468"></a>
-<span class="sourceLineNo">469</span>   * #finishActiveMasterInitialization(MonitoredTask) after<a name="line.469"></a>
-<span class="sourceLineNo">470</span>   * the master becomes the active one.<a name="line.470"></a>
-<span class="sourceLineNo">471</span>   */<a name="line.471"></a>
-<span class="sourceLineNo">472</span>  public HMaster(final Configuration conf)<a name="line.472"></a>
-<span class="sourceLineNo">473</span>      throws IOException, KeeperException {<a name="line.473"></a>
-<span class="sourceLineNo">474</span>    super(conf);<a name="line.474"></a>
-<span class="sourceLineNo">475</span>    TraceUtil.initTracer(conf);<a name="line.475"></a>
-<span class="sourceLineNo">476</span>    try {<a name="line.476"></a>
-<span class="sourceLineNo">477</span>      this.rsFatals = new MemoryBoundedLogMessageBuffer(<a name="line.477"></a>
-<span class="sourceLineNo">478</span>          conf.getLong("hbase.master.buffer.for.rs.fatals", 1 * 1024 * 1024));<a name="line.478"></a>
-<span class="sourceLineNo">479</span>      LOG.info("hbase.rootdir=" + getRootDir() +<a name="line.479"></a>
-<span class="sourceLineNo">480</span>          ", hbase.cluster.distributed=" + this.conf.getBoolean(HConstants.CLUSTER_DISTRIBUTED, false));<a name="line.480"></a>
-<span class="sourceLineNo">481</span><a name="line.481"></a>
-<span class="sourceLineNo">482</span>      // Disable usage of meta replicas in the master<a name="line.482"></a>
-<span class="sourceLineNo">483</span>      this.conf.setBoolean(HConstants.USE_META_REPLICAS, false);<a name="line.483"></a>
-<span class="sourceLineNo">484</span><a name="line.484"></a>
-<span class="sourceLineNo">485</span>      Replication.decorateMasterConfiguration(this.conf);<a name="line.485"></a>
-<span class="sourceLineNo">486</span><a name="line.486"></a>
-<span class="sourceLineNo">487</span>      // Hack! Maps DFSClient =&gt; Master for logs.  HDFS made this<a name="line.487"></a>
-<span class="sourceLineNo">488</span>      // config param for task trackers, but we can piggyback off of it.<a name="line.488"></a>
-<span class="sourceLineNo">489</span>      if (this.conf.get("mapreduce.task.attempt.id") == null) {<a name="line.489"></a>
-<span class="sourceLineNo">490</span>        this.conf.set("mapreduce.task.attempt.id", "hb_m_" + this.serverName.toString());<a name="line.490"></a>
-<span class="sourceLineNo">491</span>      }<a name="line.491"></a>
-<span class="sourceLineNo">492</span><a name="line.492"></a>
-<span class="sourceLineNo">493</span>      // should we check the compression codec type at master side, default true, HBASE-6370<a name="line.493"></a>
-<span class="sourceLineNo">494</span>      this.masterCheckCompression = conf.getBoolean("hbase.master.check.compression", true);<a name="line.494"></a>
-<span class="sourceLineNo">495</span><a name="line.495"></a>
-<span class="sourceLineNo">496</span>      // should we check encryption settings at master side, default true<a name="line.496"></a>
-<span class="sourceLineNo">497</span>      this.masterCheckEncryption = conf.getBoolean("hbase.master.check.encryption", true);<a name="line.497"></a>
-<span class="sourceLineNo">498</span><a name="line.498"></a>
-<span class="sourceLineNo">499</span>      this.metricsMaster = new MetricsMaster(new MetricsMasterWrapperImpl(this));<a name="line.499"></a>
-<span class="sourceLineNo">500</span><a name="line.500"></a>
-<span class="sourceLineNo">501</span>      // preload table descriptor at startup<a name="line.501"></a>
-<span class="sourceLineNo">502</span>      this.preLoadTableDescriptors = conf.getBoolean("hbase.master.preload.tabledescriptors", true);<a name="line.502"></a>
-<span class="sourceLineNo">503</span><a name="line.503"></a>
-<span class="sourceLineNo">504</span>      this.maxBlancingTime = getMaxBalancingTime();<a name="line.504"></a>
-<span class="sourceLineNo">505</span>      this.maxRitPercent = conf.getDouble(HConstants.HBASE_MASTER_BALANCER_MAX_RIT_PERCENT,<a name="line.505"></a>
-<span class="sourceLineNo">506</span>          HConstants.DEFAULT_HBASE_MASTER_BALANCER_MAX_RIT_PERCENT);<a name="line.506"></a>
-<span class="sourceLineNo">507</span><a name="line.507"></a>
-<span class="sourceLineNo">508</span>      // Do we publish the status?<a name="line.508"></a>
-<span class="sourceLineNo">509</span><a name="line.509"></a>
-<span class="sourceLineNo">510</span>      boolean shouldPublish = conf.getBoolean(HConstants.STATUS_PUBLISHED,<a name="line.510"></a>
-<span class="sourceLineNo">511</span>          HConstants.STATUS_PUBLISHED_DEFAULT);<a name="line.511"></a>
-<span class="sourceLineNo">512</span>      Class&lt;? extends ClusterStatusPublisher.Publisher&gt; publisherClass =<a name="line.512"></a>
-<span class="sourceLineNo">513</span>          conf.getClass(ClusterStatusPublisher.STATUS_PUBLISHER_CLASS,<a name="line.513"></a>
-<span class="sourceLineNo">514</span>              ClusterStatusPublisher.DEFAULT_STATUS_PUBLISHER_CLASS,<a name="line.514"></a>
-<span class="sourceLineNo">515</span>              ClusterStatusPublisher.Publisher.class);<a name="line.515"></a>
-<span class="sourceLineNo">516</span><a name="line.516"></a>
-<span class="sourceLineNo">517</span>      if (shouldPublish) {<a name="line.517"></a>
-<span class="sourceLineNo">518</span>        if (publisherClass == null) {<a name="line.518"></a>
-<span class="sourceLineNo">519</span>          LOG.warn(HConstants.STATUS_PUBLISHED + " is true, but " +<a name="line.519"></a>
-<span class="sourceLineNo">520</span>              ClusterStatusPublisher.DEFAULT_STATUS_PUBLISHER_CLASS +<a name="line.520"></a>
-<span class="sourceLineNo">521</span>              " is not set - not publishing status");<a name="line.521"></a>
-<span class="sourceLineNo">522</span>        } else {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>          clusterStatusPublisherChore = new ClusterStatusPublisher(this, conf, publisherClass);<a name="line.523"></a>
-<span class="sourceLineNo">524</span>          getChoreService().scheduleChore(clusterStatusPublisherChore);<a name="line.524"></a>
-<span class="sourceLineNo">525</span>        }<a name="line.525"></a>
-<span class="sourceLineNo">526</span>      }<a name="line.526"></a>
-<span class="sourceLineNo">527</span><a name="line.527"></a>
-<span class="sourceLineNo">528</span>      // Some unit tests don't need a cluster, so no zookeeper at all<a name="line.528"></a>
-<span class="sourceLineNo">529</span>      if (!conf.getBoolean("hbase.testing.nocluster", false)) {<a name="line.529"></a>
-<span class="sourceLineNo">530</span>        this.activeMasterManager = new ActiveMasterManager(zooKeeper, this.serverName, this);<a name="line.530"></a>
-<span class="sourceLineNo">531</span>      } else {<a name="line.531"></a>
-<span class="sourceLineNo">532</span>        this.activeMasterManager = null;<a name="line.532"></a>
-<span class="sourceLineNo">533</span>      }<a name="line.533"></a>
-<span class="sourceLineNo">534</span>    } catch (Throwable t) {<a name="line.534"></a>
-<span class="sourceLineNo">535</span>      // Make sure we log the exception. HMaster is often started via reflection and the<a name="line.535"></a>
-<span class="sourceLineNo">536</span>      // cause of failed startup is lost.<a name="line.536"></a>
-<span class="sourceLineNo">537</span>      LOG.error("Failed construction of Master", t);<a name="line.537"></a>
-<span class="sourceLineNo">538</span>      throw t;<a name="line.538"></a>
-<span class="sourceLineNo">539</span>    }<a name="line.539"></a>
-<span class="sourceLineNo">540</span>  }<a name="line.540"></a>
-<span class="sourceLineNo">541</span><a name="line.541"></a>
-<span class="sourceLineNo">542</span>  // Main run loop. Calls through to the regionserver run loop AFTER becoming active Master; will<a name="line.542"></a>
-<span class="sourceLineNo">543</span>  // block in here until then.<a name="line.543"></a>
-<span class="sourceLineNo">544</span>  @Override<a name="line.544"></a>
-<span class="sourceLineNo">545</span>  public void run() {<a name="line.545"></a>
-<span class="sourceLineNo">546</span>    try {<a name="line.546"></a>
-<span class="sourceLineNo">547</span>      if (!conf.getBoolean("hbase.testing.nocluster", false)) {<a name="line.547"></a>
-<span class="sourceLineNo">548</span>        try {<a name="line.548"></a>
-<span class="sourceLineNo">549</span>          int infoPort = putUpJettyServer();<a name="line.549"></a>
-<span class="sourceLineNo">550</span>          startActiveMasterManager(infoPort);<a name="line.550"></a>
-<span class="sourceLineNo">551</span>        } catch (Throwable t) {<a name="line.551"></a>
-<span class="sourceLineNo">552</span>          // Make sure we log the exception.<a name="line.552"></a>
-<span class="sourceLineNo">553</span>          String error = "Failed to become Active Master";<a name="line.553"></a>
-<span class="sourceLineNo">554</span>          LOG.error(error, t);<a name="line.554"></a>
-<span class="sourceLineNo">555</span>          // Abort should have been called already.<a name="line.555"></a>
-<span class="sourceLineNo">556</span>          if (!isAborted()) {<a name="line.556"></a>
-<span class="sourceLineNo">557</span>            abort(error, t);<a name="line.557"></a>
-<span class="sourceLineNo">558</span>          }<a name="line.558"></a>
-<span class="sourceLineNo">559</span>        }<a name="line.559"></a>
-<span class="sourceLineNo">560</span>      }<a name="line.560"></a>
-<span class="sourceLineNo">561</span>      // Fall in here even if we have been aborted. Need to run the shutdown services and<a name="line.561"></a>
-<span class="sourceLineNo">562</span>      // the super run call will do this for us.<a name="line.562"></a>
-<span class="sourceLineNo">563</span>      super.run();<a name="line.563"></a>
-<span class="sourceLineNo">564</span>    } finally {<a name="line.564"></a>
-<span class="sourceLineNo">565</span>      if (this.clusterSchemaService != null) {<a name="line.565"></a>
-<span class="sourceLineNo">566</span>        // If on way out, then we are no longer active master.<a name="line.566"></a>
-<span class="sourceLineNo">567</span>        this.clusterSchemaService.stopAsync();<a name="line.567"></a>
-<span class="sourceLineNo">568</span>        try {<a name="line.568"></a>
-<span class="sourceLineNo">569</span>          this.clusterSchemaService.awaitTerminated(<a name="line.569"></a>
-<span class="sourceLineNo">570</span>              getConfiguration().getInt(HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS,<a name="line.570"></a>
-<span class="sourceLineNo">571</span>              DEFAULT_HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS), TimeUnit.SECONDS);<a name="line.571"></a>
-<span class="sourceLineNo">572</span>        } catch (TimeoutException te) {<a name="line.572"></a>
-<span class="sourceLineNo">573</span>          LOG.warn("Failed shutdown of clusterSchemaService", te);<a name="line.573"></a>
-<span class="sourceLineNo">574</span>        }<a name="line.574"></a>
-<span class="sourceLineNo">575</span>      }<a name="line.575"></a>
-<span class="sourceLineNo">576</span>      this.activeMaster = false;<a name="line.576"></a>
-<span class="sourceLineNo">577</span>    }<a name="line.577"></a>
-<span class="sourceLineNo">578</span>  }<a name="line.578"></a>
-<span class="sourceLineNo">579</span><a name="line.579"></a>
-<span class="sourceLineNo">580</span>  // return the actual infoPort, -1 means disable info server.<a name="line.580"></a>
-<span class="sourceLineNo">581</span>  private int putUpJettyServer() throws IOException {<a name="line.581"></a>
-<span class="sourceLineNo">582</span>    if (!conf.getBoolean("hbase.master.infoserver.redirect", true)) {<a name="line.582"></a>
-<span class="sourceLineNo">583</span>      return -1;<a name="line.583"></a>
-<span class="sourceLineNo">584</span>    }<a name="line.584"></a>
-<span class="sourceLineNo">585</span>    final int infoPort = conf.getInt("hbase.master.info.port.orig",<a name="line.585"></a>
-<span class="sourceLineNo">586</span>      HConstants.DEFAULT_MASTER_INFOPORT);<a name="line.586"></a>
-<span class="sourceLineNo">587</span>    // -1 is for disabling info server, so no redirecting<a name="line.587"></a>
-<span class="sourceLineNo">588</span>    if (infoPort &lt; 0 || infoServer == null) {<a name="line.588"></a>
-<span class="sourceLineNo">589</span>      return -1;<a name="line.589"></a>
-<span class="sourceLineNo">590</span>    }<a name="line.590"></a>
-<span class="sourceLineNo">591</span>    if(infoPort == infoServer.getPort()) {<a name="line.591"></a>
-<span class="sourceLineNo">592</span>      return infoPort;<a name="line.592"></a>
-<span class="sourceLineNo">593</span>    }<a name="line.593"></a>
-<span class="sourceLineNo">594</span>    final String addr = conf.get("hbase.master.info.bindAddress", "0.0.0.0");<a name="line.594"></a>
-<span class="sourceLineNo">595</span>    if (!Addressing.isLocalAddress(InetAddress.getByName(addr))) {<a name="line.595"></a>
-<span class="sourceLineNo">596</span>      String msg =<a name="line.596"></a>
-<span class="sourceLineNo">597</span>          "Failed to start redirecting jetty server. Address " + addr<a name="line.597"></a>
-<span class="sourceLineNo">598</span>              + " does not belong to this host. Correct configuration parameter: "<a name="line.598"></a>
-<span class="sourceLineNo">599</span>              + "hbase.master.info.bindAddress";<a name="line.599"></a>
-<span class="sourceLineNo">600</span>      LOG.error(msg);<a name="line.600"></a>
-<span class="sourceLineNo">601</span>      throw new IOException(msg);<a name="line.601"></a>
-<span class="sourceLineNo">602</span>    }<a name="line.602"></a>
-<span class="sourceLineNo">603</span><a name="line.603"></a>
-<span class="sourceLineNo">604</span>    // TODO I'm pretty sure we could just add another binding to the InfoServer run by<a name="line.604"></a>
-<span class="sourceLineNo">605</span>    // the RegionServer and have it run the RedirectServlet instead of standing up<a name="line.605"></a>
-<span class="sourceLineNo">606</span>    // a second entire stack here.<a name="line.606"></a>
-<span class="sourceLineNo">607</span>    masterJettyServer = new Server();<a name="line.607"></a>
-<span class="sourceLineNo">608</span>    final ServerConnector connector = new ServerConnector(masterJettyServer);<a name="line.608"></a>
-<span class="sourceLineNo">609</span>    connector.setHost(addr);<a name="line.609"></a>
-<span class="sourceLineNo">610</span>    connector.setPort(infoPort);<a name="line.610"></a>
-<span class="sourceLineNo">611</span>    masterJettyServer.addConnector(connector);<a name="line.611"></a>
-<span class="sourceLineNo">612</span>    masterJettyServer.setStopAtShutdown(true);<a name="line.612"></a>
-<span class="sourceLineNo">613</span><a name="line.613"></a>
-<span class="sourceLineNo">614</span>    final String redirectHostname = shouldUseThisHostnameInstead() ? useThisHostnameInstead : null;<a name="line.614"></a>
-<span class="sourceLineNo">615</span><a name="line.615"></a>
-<span class="sourceLineNo">616</span>    final RedirectServlet redirect = new RedirectServlet(infoServer, redirectHostname);<a name="line.616"></a>
-<span class="sourceLineNo">617</span>    final WebAppContext context = new WebAppContext(null, "/", null, null, null, null, WebAppContext.NO_SESSIONS);<a name="line.617"></a>
-<span class="sourceLineNo">618</span>    context.addServlet(new ServletHolder(redirect), "/*");<a name="line.618"></a>
-<span class="sourceLineNo">619</span>    context.setServer(masterJettyServer);<a name="line.619"></a>
-<span class="sourceLineNo">620</span><a name="line.620"></a>
-<span class="sourceLineNo">621</span>    try {<a name="line.621"></a>
-<span class="sourceLineNo">622</span>      masterJettyServer.start();<a name="line.622"></a>
-<span class="sourceLineNo">623</span>    } catch (Exception e) {<a name="line.623"></a>
-<span class="sourceLineNo">624</span>      throw new IOException("Failed to start redirecting jetty server", e);<a name="line.624"></a>
-<span class="sourceLineNo">625</span>    }<a name="line.625"></a>
-<span class="sourceLineNo">626</span>    return connector.getLocalPort();<a name="line.626"></a>
-<span class="sourceLineNo">627</span>  }<a name="line.627"></a>
-<span class="sourceLineNo">628</span><a name="line.628"></a>
-<span class="sourceLineNo">629</span>  @Override<a name="line.629"></a>
-<span class="sourceLineNo">630</span>  protected Function&lt;TableDescriptorBuilder, TableDescriptorBuilder&gt; getMetaTableObserver() {<a name="line.630"></a>
-<span class="sourceLineNo">631</span>    return builder -&gt; builder.setRegionReplication(conf.getInt(HConstants.META_REPLICAS_NUM, HConstants.DEFAULT_META_REPLICA_NUM));<a name="line.631"></a>
-<span class="sourceLineNo">632</span>  }<a name="line.632"></a>
-<span class="sourceLineNo">633</span>  /**<a name="line.633"></a>
-<span class="sourceLineNo">634</span>   * For compatibility, if failed with regionserver credentials, try the master one<a name="line.634"></a>
-<span class="sourceLineNo">635</span>   */<a name="line.635"></a>
-<span class="sourceLineNo">636</span>  @Override<a name="line.636"></a>
-<span class="sourceLineNo">637</span>  protected void login(UserProvider user, String host) throws IOException {<a name="line.637"></a>
-<span class="sourceLineNo">638</span>    try {<a name="line.638"></a>
-<span class="sourceLineNo">639</span>      super.login(user, host);<a name="line.639"></a>
-<span class="sourceLineNo">640</span>    } catch (IOException ie) {<a name="line.640"></a>
-<span class="sourceLineNo">641</span>      user.login("hbase.master.keytab.file",<a name="line.641"></a>
-<span class="sourceLineNo">642</span>        "hbase.master.kerberos.principal", host);<a name="line.642"></a>
-<span class="sourceLineNo">643</span>    }<a name="line.643"></a>
-<span class="sourceLineNo">644</span>  }<a name="line.644"></a>
-<span class="sourceLineNo">645</span><a name="line.645"></a>
-<span class="sourceLineNo">646</span>  /**<a name="line.646"></a>
-<span class="sourceLineNo">647</span>   * If configured to put regions on active master,<a name="line.647"></a>
-<span class="sourceLineNo">648</span>   * wait till a backup master becomes active.<a name="line.648"></a>
-<span class="sourceLineNo">649</span>   * Otherwise, loop till the server is stopped or aborted.<a name="line.649"></a>
-<span class="sourceLineNo">650</span>   */<a name="line.650"></a>
-<span class="sourceLineNo">651</span>  @Override<a name="line.651"></a>
-<span class="sourceLineNo">652</span>  protected void waitForMasterActive(){<a name="line.652"></a>
-<span class="sourceLineNo">653</span>    boolean tablesOnMaster = LoadBalancer.isTablesOnMaster(conf);<a name="line.653"></a>
-<span class="sourceLineNo">654</span>    while (!(tablesOnMaster &amp;&amp; activeMaster) &amp;&amp; !isStopped() &amp;&amp; !isAborted()) {<a name="line.654"></a>
-<span class="sourceLineNo">655</span>      sleeper.sleep();<a name="line.655"></a>
-<span class="sourceLineNo">656</span>    }<a name="line.656"></a>
-<span class="sourceLineNo">657</span>  }<a name="line.657"></a>
-<span class="sourceLineNo">658</span><a name="line.658"></a>
-<span class="sourceLineNo">659</span>  @VisibleForTesting<a name="line.659"></a>
-<span class="sourceLineNo">660</span>  public MasterRpcServices getMasterRpcServices() {<a name="line.660"></a>
-<span class="sourceLineNo">661</span>    return (MasterRpcServices)rpcServices;<a name="line.661"></a>
-<span class="sourceLineNo">662</span>  }<a name="line.662"></a>
-<span class="sourceLineNo">663</span><a name="line.663"></a>
-<span class="sourceLineNo">664</span>  public boolean balanceSwitch(final boolean b) throws IOException {<a name="line.664"></a>
-<span class="sourceLineNo">665</span>    return getMasterRpcServices().switchBalancer(b, BalanceSwitchMode.ASYNC);<a name="line.665"></a>
-<span class="sourceLineNo">666</span>  }<a name="line.666"></a>
-<span class="sourceLineNo">667</span><a name="line.667"></a>
-<span class="sourceLineNo">668</span>  @Override<a name="line.668"></a>
-<span class="sourceLineNo">669</span>  protected String getProcessName() {<a name="line.669"></a>
-<span class="sourceLineNo">670</span>    return MASTER;<a name="line.670"></a>
-<span class="sourceLineNo">671</span>  }<a name="line.671"></a>
-<span class="sourceLineNo">672</span><a name="line.672"></a>
-<span class="sourceLineNo">673</span>  @Override<a name="line.673"></a>
-<span class="sourceLineNo">674</span>  protected boolean canCreateBaseZNode() {<a name="line.674"></a>
-<span class="sourceLineNo">675</span>    return true;<a name="line.675"></a>
-<span class="sourceLineNo">676</span>  }<a name="line.676"></a>
-<span class="sourceLineNo">677</span><a name="line.677"></a>
-<span class="sourceLineNo">678</span>  @Override<a name="line.678"></a>
-<span class="sourceLineNo">679</span>  protected boolean canUpdateTableDescriptor() {<a name="line.679"></a>
-<span class="sourceLineNo">680</span>    return true;<a name="line.680"></a>
-<span class="sourceLineNo">681</span>  }<a name="line.681"></a>
-<span class="sourceLineNo">682</span><a name="line.682"></a>
-<span class="sourceLineNo">683</span>  @Override<a name="line.683"></a>
-<span class="sourceLineNo">684</span>  protected RSRpcServices createRpcServices() throws IOException {<a name="line.684"></a>
-<span class="sourceLineNo">685</span>    return new MasterRpcServices(this);<a name="line.685"></a>
-<span class="sourceLineNo">686</span>  }<a name="line.686"></a>
-<span class="sourceLineNo">687</span><a name="line.687"></a>
-<span class="sourceLineNo">688</span>  @Override<a name="line.688"></a>
-<span class="sourceLineNo">689</span>  protected void configureInfoServer() {<a name="line.689"></a>
-<span class="sourceLineNo">690</span>    infoServer.addServlet("master-status", "/master-status", MasterStatusServlet.class);<a name="line.690"></a>
-<span class="sourceLineNo">691</span>    infoServer.setAttribute(MASTER, this);<a name="line.691"></a>
-<span class="sourceLineNo">692</span>    if (LoadBalancer.isTablesOnMaster(conf)) {<a name="line.692"></a>
-<span class="sourceLineNo">693</span>      super.configureInfoServer();<a name="line.693"></a>
-<span class="sourceLineNo">694</span>    }<a name="line.694"></a>
-<span class="sourceLineNo">695</span>  }<a name="line.695"></a>
-<span class="sourceLineNo">696</span><a name="line.696"></a>
-<span class="sourceLineNo">697</span>  @Override<a name="line.697"></a>
-<span class="sourceLineNo">698</span>  protected Class&lt;? extends HttpServlet&gt; getDumpServlet() {<a name="line.698"></a>
-<span class="sourceLineNo">699</span>    return MasterDumpServlet.class;<a name="line.699"></a>
-<span class="sourceLineNo">700</span>  }<a name="line.700"></a>
-<span class="sourceLineNo">701</span><a name="line.701"></a>
-<span class="sourceLineNo">702</span>  @Override<a name="line.702"></a>
-<span class="sourceLineNo">703</span>  public MetricsMaster getMasterMetrics() {<a name="line.703"></a>
-<span class="sourceLineNo">704</span>    return metricsMaster;<a name="line.704"></a>
-<span class="sourceLineNo">705</span>  }<a name="line.705"></a>
-<span class="sourceLineNo">706</span><a name="line.706"></a>
-<span class="sourceLineNo">707</span>  /**<a name="line.707"></a>
-<span class="sourceLineNo">708</span>   * Initialize all ZK based system trackers.<a name="line.708"></a>
-<span class="sourceLineNo">709</span>   */<a name="line.709"></a>
-<span class="sourceLineNo">710</span>  void initializeZKBasedSystemTrackers() throws IOException, InterruptedException, KeeperException,<a name="line.710"></a>
-<span class="sourceLineNo">711</span>      CoordinatedStateException, ReplicationException {<a name="line.711"></a>
-<span class="sourceLineNo">712</span>    this.balancer = LoadBalancerFactory.getLoadBalancer(conf);<a name="line.712"></a>
-<span class="sourceLineNo">713</span>    this.normalizer = RegionNormalizerFactory.getRegionNormalizer(conf);<a name="line.713"></a>
-<span class="sourceLineNo">714</span>    this.normalizer.setMasterServices(this);<a name="line.714"></a>
-<span class="sourceLineNo">715</span>    this.normalizer.setMasterRpcServices((MasterRpcServices)rpcServices);<a name="line.715"></a>
-<span class="sourceLineNo">716</span>    this.loadBalancerTracker = new LoadBalancerTracker(zooKeeper, this);<a name="line.716"></a>
-<span class="sourceLineNo">717</span>    this.loadBalancerTracker.start();<a name="line.717"></a>
-<span class="sourceLineNo">718</span><a name="line.718"></a>
-<span class="sourceLineNo">719</span>    this.regionNormalizerTracker = new RegionNormalizerTracker(zooKeeper, this);<a name="line.719"></a>
-<span class="sourceLineNo">720</span>    this.regionNormalizerTracker.start();<a name="line.720"></a>
-<span class="sourceLineNo">721</span><a name="line.721"></a>
-<span class="sourceLineNo">722</span>    this.splitOrMergeTracker = new SplitOrMergeTracker(zooKeeper, conf, this);<a name="line.722"></a>
-<span class="sourceLineNo">723</span>    this.splitOrMergeTracker.start();<a name="line.723"></a>
-<span class="sourceLineNo">724</span><a name="line.724"></a>
-<span class="sourceLineNo">725</span>    // Create Assignment Manager<a name="line.725"></a>
-<span class="sourceLineNo">726</span>    this.assignmentManager = new AssignmentManager(this);<a name="line.726"></a>
-<span class="sourceLineNo">727</span>    this.assignmentManager.start();<a name="line.727"></a>
-<span class="sourceLineNo">728</span><a name="line.728"></a>
-<span class="sourceLineNo">729</span>    this.replicationPeerManager = ReplicationPeerManager.create(zooKeeper, conf);<a name="line.729"></a>
-<span class="sourceLineNo">730</span><a name="line.730"></a>
-<span class="sourceLineNo">731</span>    this.regionServerTracker = new RegionServerTracker(zooKeeper, this, this.serverManager);<a name="line.731"></a>
-<span class="sourceLineNo">732</span>    this.regionServerTracker.start();<a name="line.732"></a>
-<span class="sourceLineNo">733</span><a name="line.733"></a>
-<span class="sourceLineNo">734</span>    this.drainingServerTracker = new DrainingServerTracker(zooKeeper, this, this.serverManager);<a name="line.734"></a>
-<span class="sourceLineNo">735</span>    this.drainingServerTracker.start();<a name="line.735"></a>
-<span class="sourceLineNo">736</span><a name="line.736"></a>
-<span class="sourceLineNo">737</span>    this.maintenanceModeTracker = new MasterMaintenanceModeTracker(zooKeeper);<a name="line.737"></a>
-<span class="sourceLineNo">738</span>    this.maintenanceModeTracker.start();<a name="line.738"></a>
-<span class="sourceLineNo">739</span><a name="line.739"></a>
-<span class="sourceLineNo">740</span>    // Set the cluster as up.  If new RSs, they'll be waiting on this before<a name="line.740"></a>
-<span class="sourceLineNo">741</span>    // going ahead with their startup.<a name="line.741"></a>
-<span class="sourceLineNo">742</span>    boolean wasUp = this.clusterStatusTracker.isClusterUp();<a name="line.742"></a>
-<span class="sourceLineNo">743</span>    if (!wasUp) this.clusterStatusTracker.setClusterUp();<a name="line.743"></a>
-<span class="sourceLineNo">744</span><a name="line.744"></a>
-<span class="sourceLineNo">745</span>    LOG.info("Server active/primary master=" + this.serverName +<a name="line.745"></a>
-<span class="sourceLineNo">746</span>        ", sessionid=0x" +<a name="line.746"></a>
-<span class="sourceLineNo">747</span>        Long.toHexString(this.zooKeeper.getRecoverableZooKeeper().getSessionId()) +<a name="line.747"></a>
-<span class="sourceLineNo">748</span>        ", setting cluster-up flag (Was=" + wasUp + ")");<a name="line.748"></a>
-<span class="sourceLineNo">749</span><a name="line.749"></a>
-<span class="sourceLineNo">750</span>    // create/initialize the snapshot manager and other procedure managers<a name="line.750"></a>
-<span class="sourceLineNo">751</span>    this.snapshotManager = new SnapshotManager();<a name="line.751"></a>
-<span class="sourceLineNo">752</span>    this.mpmHost = new MasterProcedureManagerHost();<a name="line.752"></a>
-<span class="sourceLineNo">753</span>    this.mpmHost.register(this.snapshotManager);<a name="line.753"></a>
-<span class="sourceLineNo">754</span>    this.mpmHost.register(new MasterFlushTableProcedureManager());<a name="line.754"></a>
-<span class="sourceLineNo">755</span>    this.mpmHost.loadProcedures(conf);<a name="line.755"></a>
-<span class="sourceLineNo">756</span>    this.mpmHost.initialize(this, this.metricsMaster);<a name="line.756"></a>
-<span class="sourceLineNo">757</span>  }<a name="line.757"></a>
-<span class="sourceLineNo">758</span><a name="line.758"></a>
-<span class="sourceLineNo">759</span>  /**<a name="line.759"></a>
-<span class="sourceLineNo">760</span>   * Finish initialization of HMaster after becoming the primary master.<a name="line.760"></a>
-<span class="sourceLineNo">761</span>   *<a name="line.761"></a>
-<span class="sourceLineNo">762</span>   * &lt;ol&gt;<a name="line.762"></a>
-<span class="sourceLineNo">763</span>   * &lt;li&gt;Initialize master components - file system manager, server manager,<a name="line.763"></a>
-<span class="sourceLineNo">764</span>   *     assignment manager, region server tracker, etc&lt;/li&gt;<a name="line.764"></a>
-<span class="sourceLineNo">765</span>   * &lt;li&gt;Start necessary service threads - balancer, catalog janior,<a name="line.765"></a>
-<span class="sourceLineNo">766</span>   *     executor services, etc&lt;/li&gt;<a name="line.766"></a>
-<span class="sourceLineNo">767</span>   * &lt;li&gt;Set cluster as UP in ZooKeeper&lt;/li&gt;<a name="line.767"></a>
-<span class="sourceLineNo">768</span>   * &lt;li&gt;Wait for RegionServers to check-in&lt;/li&gt;<a name="line.768"></a>
-<span class="sourceLineNo">769</span>   * &lt;li&gt;Split logs and perform data recovery, if necessary&lt;/li&gt;<a name="line.769"></a>
-<span class="sourceLineNo">770</span>   * &lt;li&gt;Ensure assignment of meta/namespace regions&lt;li&gt;<a name="line.770"></a>
-<span class="sourceLineNo">771</span>   * &lt;li&gt;Handle either fresh cluster start or master failover&lt;/li&gt;<a name="line.771"></a>
-<span class="sourceLineNo">772</span>   * &lt;/ol&gt;<a name="line.772"></a>
-<span class="sourceLineNo">773</span>   */<a name="line.773"></a>
-<span class="sourceLineNo">774</span>  private void finishActiveMasterInitialization(MonitoredTask status) throws IOException,<a name="line.774"></a>
-<span class="sourceLineNo">775</span>          InterruptedException, KeeperException, CoordinatedStateException, ReplicationException {<a name="line.775"></a>
-<span class="sourceLineNo">776</span>    Thread zombieDetector = new Thread(new InitializationMonitor(this),<a name="line.776"></a>
-<span class="sourceLineNo">777</span>        "ActiveMasterInitializationMonitor-" + System.currentTimeMillis());<a name="line.777"></a>
-<span class="sourceLineNo">778</span>    zombieDetector.setDaemon(true);<a name="line.778"></a>
-<span class="sourceLineNo">779</span>    zombieDetector.start();<a name="line.779"></a>
-<span class="sourceLineNo">780</span><a name="line.780"></a>
-<span class="sourceLineNo">781</span>    /*<a name="line.781"></a>
-<span class="sourceLineNo">782</span>     * We are active master now... go initialize components we need to run.<a name="line.782"></a>
-<span class="sourceLineNo">783</span>     */<a name="line.783"></a>
-<span class="sourceLineNo">784</span>    status.setStatus("Initializing Master file system");<a name="line.784"></a>
-<span class="sourceLineNo">785</span><a name="line.785"></a>
-<span class="sourceLineNo">786</span>    this.masterActiveTime = System.currentTimeMillis();<a name="line.786"></a>
-<span class="sourceLineNo">787</span>    // TODO: Do this using Dependency Injection, using PicoContainer, Guice or Spring.<a name="line.787"></a>
-<span class="sourceLineNo">788</span>    // Initialize the chunkCreator<a name="line.788"></a>
-<span class="sourceLineNo">789</span>    initializeMemStoreChunkCreator();<a name="line.789"></a>
-<span class="sourceLineNo">790</span>    this.fileSystemManager = new MasterFileSystem(this);<a name="line.790"></a>
-<span class="sourceLineNo">791</span>    this.walManager = new MasterWalManager(this);<a name="line.791"></a>
-<span class="sourceLineNo">792</span><a name="line.792"></a>
-<span class="sourceLineNo">793</span>    // enable table descriptors cache<a name="line.793"></a>
-<span class="sourceLineNo">794</span>    this.tableDescriptors.setCacheOn();<a name="line.794"></a>
-<span class="sourceLineNo">795</span><a name="line.795"></a>
-<span class="sourceLineNo">796</span>    // warm-up HTDs cache on master initialization<a name="line.796"></a>
-<span class="sourceLineNo">797</span>    if (preLoadTableDescriptors) {<a name="line.797"></a>
-<span class="sourceLineNo">798</span>      status.setStatus("Pre-loading table descriptors");<a name="line.798"></a>
-<span class="sourceLineNo">799</span>      this.tableDescriptors.getAll();<a name="line.799"></a>
-<span class="sourceLineNo">800</span>    }<a name="line.800"></a>
-<span class="sourceLineNo">801</span><a name="line.801"></a>
-<span class="sourceLineNo">802</span>    // Publish cluster ID<a name="line.802"></a>
-<span class="sourceLineNo">803</span>    status.setStatus("Publishing Cluster ID in ZooKeeper");<a name="line.803"></a>
-<span class="sourceLineNo">804</span>    ZKClusterId.setClusterId(this.zooKeeper, fileSystemManager.getClusterId());<a name="line.804"></a>
-<span class="sourceLineNo">805</span><a name="line.805"></a>
-<span class="sourceLineNo">806</span>    this.serverManager = createServerManager(this);<a name="line.806"></a>
-<span class="sourceLineNo">807</span><a name="line.807"></a>
-<span class="sourceLineNo">808</span>    this.tableStateManager = new TableStateManager(this);<a name="line.808"></a>
-<span class="sourceLineNo">809</span><a name="line.809"></a>
-<span class="sourceLineNo">810</span>    status.setStatus("Initializing ZK system trackers");<a name="line.810"></a>
-<span class="sourceLineNo">811</span>    initializeZKBasedSystemTrackers();<a name="line.811"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.ClusterId;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.ClusterMetrics;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.ClusterMetrics.Option;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.ClusterMetricsBuilder;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.CoordinatedStateException;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.DoNotRetryIOException;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.HBaseIOException;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.HBaseInterfaceAudience;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.HConstants;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.InvalidFamilyOperationException;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.MasterNotRunningException;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.PleaseHoldException;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.ReplicationPeerNotFoundException;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.ServerLoad;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.ServerMetricsBuilder;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.ServerName;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.TableDescriptors;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.TableName;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.TableNotDisabledException;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.client.MasterSwitchType;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.client.RegionInfo;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.client.Result;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.client.TableDescriptor;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.client.TableDescriptorBuilder;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.client.TableState;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.coprocessor.CoprocessorHost;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.exceptions.MergeRegionException;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.executor.ExecutorType;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.favored.FavoredNodesManager;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.favored.FavoredNodesPromoter;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.http.InfoServer;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.ipc.RpcServer;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.ipc.ServerNotRunningYetException;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.log.HBaseMarkers;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.master.MasterRpcServices.BalanceSwitchMode;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.master.assignment.AssignmentManager;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.master.assignment.MergeTableRegionsProcedure;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.master.assignment.RegionStates;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.master.assignment.RegionStates.RegionStateNode;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.master.balancer.BalancerChore;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.master.balancer.ClusterStatusChore;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.master.balancer.LoadBalancerFactory;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.master.cleaner.HFileCleaner;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.master.cleaner.LogCleaner;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.master.cleaner.ReplicationMetaCleaner;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.master.locking.LockManager;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.master.normalizer.NormalizationPlan;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.master.normalizer.NormalizationPlan.PlanType;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizer;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizerChore;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizerFactory;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.master.procedure.CreateTableProcedure;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.master.procedure.DeleteTableProcedure;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.master.procedure.DisableTableProcedure;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.master.procedure.EnableTableProcedure;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureConstants;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureUtil;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.master.procedure.ModifyTableProcedure;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.master.procedure.ProcedurePrepareLatch;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.master.procedure.RecoverMetaProcedure;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.master.procedure.TruncateTableProcedure;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.master.replication.AddPeerProcedure;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.master.replication.DisablePeerProcedure;<a name="l

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html
index ca9921d..02d98cb 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html
@@ -76,493 +76,494 @@
 <span class="sourceLineNo">068</span>import org.apache.hbase.thirdparty.com.google.common.collect.Maps;<a name="line.68"></a>
 <span class="sourceLineNo">069</span>import org.apache.hbase.thirdparty.com.google.common.collect.Sets;<a name="line.69"></a>
 <span class="sourceLineNo">070</span><a name="line.70"></a>
-<span class="sourceLineNo">071</span>@Category(MediumTests.class)<a name="line.71"></a>
-<span class="sourceLineNo">072</span>public class TestFavoredStochasticLoadBalancer extends BalancerTestBase {<a name="line.72"></a>
-<span class="sourceLineNo">073</span><a name="line.73"></a>
-<span class="sourceLineNo">074</span>  private static final Logger LOG =<a name="line.74"></a>
-<span class="sourceLineNo">075</span>      LoggerFactory.getLogger(TestFavoredStochasticLoadBalancer.class);<a name="line.75"></a>
-<span class="sourceLineNo">076</span><a name="line.76"></a>
-<span class="sourceLineNo">077</span>  private static final HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();<a name="line.77"></a>
-<span class="sourceLineNo">078</span>  private static final int SLAVES = 8;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>  private static final int REGION_NUM = SLAVES * 3;<a name="line.79"></a>
-<span class="sourceLineNo">080</span><a name="line.80"></a>
-<span class="sourceLineNo">081</span>  private Admin admin;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>  private HMaster master;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>  private MiniHBaseCluster cluster;<a name="line.83"></a>
-<span class="sourceLineNo">084</span><a name="line.84"></a>
-<span class="sourceLineNo">085</span>  @BeforeClass<a name="line.85"></a>
-<span class="sourceLineNo">086</span>  public static void setupBeforeClass() throws Exception {<a name="line.86"></a>
-<span class="sourceLineNo">087</span>    Configuration conf = TEST_UTIL.getConfiguration();<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    // Enable the favored nodes based load balancer<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    conf.setClass(HConstants.HBASE_MASTER_LOADBALANCER_CLASS,<a name="line.89"></a>
-<span class="sourceLineNo">090</span>        LoadOnlyFavoredStochasticBalancer.class, LoadBalancer.class);<a name="line.90"></a>
-<span class="sourceLineNo">091</span>  }<a name="line.91"></a>
-<span class="sourceLineNo">092</span><a name="line.92"></a>
-<span class="sourceLineNo">093</span>  @Before<a name="line.93"></a>
-<span class="sourceLineNo">094</span>  public void startCluster() throws Exception {<a name="line.94"></a>
-<span class="sourceLineNo">095</span>    TEST_UTIL.startMiniCluster(SLAVES);<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    TEST_UTIL.getDFSCluster().waitClusterUp();<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    cluster = TEST_UTIL.getMiniHBaseCluster();<a name="line.97"></a>
-<span class="sourceLineNo">098</span>    master = TEST_UTIL.getMiniHBaseCluster().getMaster();<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    admin = TEST_UTIL.getAdmin();<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    admin.setBalancerRunning(false, true);<a name="line.100"></a>
-<span class="sourceLineNo">101</span>  }<a name="line.101"></a>
-<span class="sourceLineNo">102</span><a name="line.102"></a>
-<span class="sourceLineNo">103</span>  @After<a name="line.103"></a>
-<span class="sourceLineNo">104</span>  public void stopCluster() throws Exception {<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    TEST_UTIL.cleanupTestDir();<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    TEST_UTIL.shutdownMiniCluster();<a name="line.106"></a>
-<span class="sourceLineNo">107</span>  }<a name="line.107"></a>
-<span class="sourceLineNo">108</span><a name="line.108"></a>
-<span class="sourceLineNo">109</span>  @Test<a name="line.109"></a>
-<span class="sourceLineNo">110</span>  public void testBasicBalance() throws Exception {<a name="line.110"></a>
-<span class="sourceLineNo">111</span><a name="line.111"></a>
-<span class="sourceLineNo">112</span>    TableName tableName = TableName.valueOf("testBasicBalance");<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    HTableDescriptor desc = new HTableDescriptor(tableName);<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    desc.addFamily(new HColumnDescriptor(HConstants.CATALOG_FAMILY));<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    admin.createTable(desc, Bytes.toBytes("aaa"), Bytes.toBytes("zzz"), REGION_NUM);<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    TEST_UTIL.waitTableAvailable(tableName);<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    TEST_UTIL.loadTable(admin.getConnection().getTable(tableName), HConstants.CATALOG_FAMILY);<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    admin.flush(tableName);<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    compactTable(tableName);<a name="line.119"></a>
-<span class="sourceLineNo">120</span><a name="line.120"></a>
-<span class="sourceLineNo">121</span>    JVMClusterUtil.RegionServerThread rs1 = cluster.startRegionServerAndWait(10000);<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    JVMClusterUtil.RegionServerThread rs2 = cluster.startRegionServerAndWait(10000);<a name="line.122"></a>
-<span class="sourceLineNo">123</span><a name="line.123"></a>
-<span class="sourceLineNo">124</span>    // Now try to run balance, and verify no regions are moved to the 2 region servers recently<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    // started.<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    admin.setBalancerRunning(true, true);<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    assertTrue("Balancer did not run", admin.balancer());<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    TEST_UTIL.waitUntilNoRegionsInTransition(120000);<a name="line.128"></a>
-<span class="sourceLineNo">129</span><a name="line.129"></a>
-<span class="sourceLineNo">130</span>    List&lt;RegionInfo&gt; hris = admin.getRegions(rs1.getRegionServer().getServerName());<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    for (RegionInfo hri : hris) {<a name="line.131"></a>
-<span class="sourceLineNo">132</span>      assertFalse("New RS contains regions belonging to table: " + tableName,<a name="line.132"></a>
-<span class="sourceLineNo">133</span>        hri.getTable().equals(tableName));<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    }<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    hris = admin.getRegions(rs2.getRegionServer().getServerName());<a name="line.135"></a>
-<span class="sourceLineNo">136</span>    for (RegionInfo hri : hris) {<a name="line.136"></a>
-<span class="sourceLineNo">137</span>      assertFalse("New RS contains regions belonging to table: " + tableName,<a name="line.137"></a>
-<span class="sourceLineNo">138</span>        hri.getTable().equals(tableName));<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>  @Test<a name="line.142"></a>
-<span class="sourceLineNo">143</span>  public void testRoundRobinAssignment() throws Exception {<a name="line.143"></a>
-<span class="sourceLineNo">144</span><a name="line.144"></a>
-<span class="sourceLineNo">145</span>    TableName tableName = TableName.valueOf("testRoundRobinAssignment");<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    HTableDescriptor desc = new HTableDescriptor(tableName);<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    desc.addFamily(new HColumnDescriptor(HConstants.CATALOG_FAMILY));<a name="line.147"></a>
-<span class="sourceLineNo">148</span>    admin.createTable(desc, Bytes.toBytes("aaa"), Bytes.toBytes("zzz"), REGION_NUM);<a name="line.148"></a>
-<span class="sourceLineNo">149</span>    TEST_UTIL.waitTableAvailable(tableName);<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    TEST_UTIL.loadTable(admin.getConnection().getTable(tableName), HConstants.CATALOG_FAMILY);<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    admin.flush(tableName);<a name="line.151"></a>
-<span class="sourceLineNo">152</span><a name="line.152"></a>
-<span class="sourceLineNo">153</span>    LoadBalancer balancer = master.getLoadBalancer();<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    List&lt;RegionInfo&gt; regions = admin.getRegions(tableName);<a name="line.154"></a>
-<span class="sourceLineNo">155</span>    regions.addAll(admin.getTableRegions(TableName.META_TABLE_NAME));<a name="line.155"></a>
-<span class="sourceLineNo">156</span>    regions.addAll(admin.getTableRegions(TableName.NAMESPACE_TABLE_NAME));<a name="line.156"></a>
-<span class="sourceLineNo">157</span>    List&lt;ServerName&gt; servers = Lists.newArrayList(<a name="line.157"></a>
-<span class="sourceLineNo">158</span>      admin.getClusterMetrics(EnumSet.of(Option.LIVE_SERVERS)).getLiveServerMetrics().keySet());<a name="line.158"></a>
-<span class="sourceLineNo">159</span>    Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; map = balancer.roundRobinAssignment(regions, servers);<a name="line.159"></a>
-<span class="sourceLineNo">160</span>    for (List&lt;RegionInfo&gt; regionInfos : map.values()) {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>      regions.removeAll(regionInfos);<a name="line.161"></a>
-<span class="sourceLineNo">162</span>    }<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    assertEquals("No region should be missed by balancer", 0, regions.size());<a name="line.163"></a>
-<span class="sourceLineNo">164</span>  }<a name="line.164"></a>
-<span class="sourceLineNo">165</span><a name="line.165"></a>
+<span class="sourceLineNo">071</span>@Ignore // Disabled<a name="line.71"></a>
+<span class="sourceLineNo">072</span>@Category(MediumTests.class)<a name="line.72"></a>
+<span class="sourceLineNo">073</span>public class TestFavoredStochasticLoadBalancer extends BalancerTestBase {<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>  private static final Logger LOG =<a name="line.75"></a>
+<span class="sourceLineNo">076</span>      LoggerFactory.getLogger(TestFavoredStochasticLoadBalancer.class);<a name="line.76"></a>
+<span class="sourceLineNo">077</span><a name="line.77"></a>
+<span class="sourceLineNo">078</span>  private static final HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();<a name="line.78"></a>
+<span class="sourceLineNo">079</span>  private static final int SLAVES = 8;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  private static final int REGION_NUM = SLAVES * 3;<a name="line.80"></a>
+<span class="sourceLineNo">081</span><a name="line.81"></a>
+<span class="sourceLineNo">082</span>  private Admin admin;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>  private HMaster master;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>  private MiniHBaseCluster cluster;<a name="line.84"></a>
+<span class="sourceLineNo">085</span><a name="line.85"></a>
+<span class="sourceLineNo">086</span>  @BeforeClass<a name="line.86"></a>
+<span class="sourceLineNo">087</span>  public static void setupBeforeClass() throws Exception {<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    Configuration conf = TEST_UTIL.getConfiguration();<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    // Enable the favored nodes based load balancer<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    conf.setClass(HConstants.HBASE_MASTER_LOADBALANCER_CLASS,<a name="line.90"></a>
+<span class="sourceLineNo">091</span>        LoadOnlyFavoredStochasticBalancer.class, LoadBalancer.class);<a name="line.91"></a>
+<span class="sourceLineNo">092</span>  }<a name="line.92"></a>
+<span class="sourceLineNo">093</span><a name="line.93"></a>
+<span class="sourceLineNo">094</span>  @Before<a name="line.94"></a>
+<span class="sourceLineNo">095</span>  public void startCluster() throws Exception {<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    TEST_UTIL.startMiniCluster(SLAVES);<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    TEST_UTIL.getDFSCluster().waitClusterUp();<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    cluster = TEST_UTIL.getMiniHBaseCluster();<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    master = TEST_UTIL.getMiniHBaseCluster().getMaster();<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    admin = TEST_UTIL.getAdmin();<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    admin.setBalancerRunning(false, true);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  }<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>  @After<a name="line.104"></a>
+<span class="sourceLineNo">105</span>  public void stopCluster() throws Exception {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    TEST_UTIL.cleanupTestDir();<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    TEST_UTIL.shutdownMiniCluster();<a name="line.107"></a>
+<span class="sourceLineNo">108</span>  }<a name="line.108"></a>
+<span class="sourceLineNo">109</span><a name="line.109"></a>
+<span class="sourceLineNo">110</span>  @Test<a name="line.110"></a>
+<span class="sourceLineNo">111</span>  public void testBasicBalance() throws Exception {<a name="line.111"></a>
+<span class="sourceLineNo">112</span><a name="line.112"></a>
+<span class="sourceLineNo">113</span>    TableName tableName = TableName.valueOf("testBasicBalance");<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    HTableDescriptor desc = new HTableDescriptor(tableName);<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    desc.addFamily(new HColumnDescriptor(HConstants.CATALOG_FAMILY));<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    admin.createTable(desc, Bytes.toBytes("aaa"), Bytes.toBytes("zzz"), REGION_NUM);<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    TEST_UTIL.waitTableAvailable(tableName);<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    TEST_UTIL.loadTable(admin.getConnection().getTable(tableName), HConstants.CATALOG_FAMILY);<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    admin.flush(tableName);<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    compactTable(tableName);<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>    JVMClusterUtil.RegionServerThread rs1 = cluster.startRegionServerAndWait(10000);<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    JVMClusterUtil.RegionServerThread rs2 = cluster.startRegionServerAndWait(10000);<a name="line.123"></a>
+<span class="sourceLineNo">124</span><a name="line.124"></a>
+<span class="sourceLineNo">125</span>    // Now try to run balance, and verify no regions are moved to the 2 region servers recently<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    // started.<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    admin.setBalancerRunning(true, true);<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    assertTrue("Balancer did not run", admin.balancer());<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    TEST_UTIL.waitUntilNoRegionsInTransition(120000);<a name="line.129"></a>
+<span class="sourceLineNo">130</span><a name="line.130"></a>
+<span class="sourceLineNo">131</span>    List&lt;RegionInfo&gt; hris = admin.getRegions(rs1.getRegionServer().getServerName());<a name="line.131"></a>
+<span class="sourceLineNo">132</span>    for (RegionInfo hri : hris) {<a name="line.132"></a>
+<span class="sourceLineNo">133</span>      assertFalse("New RS contains regions belonging to table: " + tableName,<a name="line.133"></a>
+<span class="sourceLineNo">134</span>        hri.getTable().equals(tableName));<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    }<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    hris = admin.getRegions(rs2.getRegionServer().getServerName());<a name="line.136"></a>
+<span class="sourceLineNo">137</span>    for (RegionInfo hri : hris) {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>      assertFalse("New RS contains regions belonging to table: " + tableName,<a name="line.138"></a>
+<span class="sourceLineNo">139</span>        hri.getTable().equals(tableName));<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><a name="line.142"></a>
+<span class="sourceLineNo">143</span>  @Test<a name="line.143"></a>
+<span class="sourceLineNo">144</span>  public void testRoundRobinAssignment() throws Exception {<a name="line.144"></a>
+<span class="sourceLineNo">145</span><a name="line.145"></a>
+<span class="sourceLineNo">146</span>    TableName tableName = TableName.valueOf("testRoundRobinAssignment");<a name="line.146"></a>
+<span class="sourceLineNo">147</span>    HTableDescriptor desc = new HTableDescriptor(tableName);<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    desc.addFamily(new HColumnDescriptor(HConstants.CATALOG_FAMILY));<a name="line.148"></a>
+<span class="sourceLineNo">149</span>    admin.createTable(desc, Bytes.toBytes("aaa"), Bytes.toBytes("zzz"), REGION_NUM);<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    TEST_UTIL.waitTableAvailable(tableName);<a name="line.150"></a>
+<span class="sourceLineNo">151</span>    TEST_UTIL.loadTable(admin.getConnection().getTable(tableName), HConstants.CATALOG_FAMILY);<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    admin.flush(tableName);<a name="line.152"></a>
+<span class="sourceLineNo">153</span><a name="line.153"></a>
+<span class="sourceLineNo">154</span>    LoadBalancer balancer = master.getLoadBalancer();<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    List&lt;RegionInfo&gt; regions = admin.getRegions(tableName);<a name="line.155"></a>
+<span class="sourceLineNo">156</span>    regions.addAll(admin.getTableRegions(TableName.META_TABLE_NAME));<a name="line.156"></a>
+<span class="sourceLineNo">157</span>    regions.addAll(admin.getTableRegions(TableName.NAMESPACE_TABLE_NAME));<a name="line.157"></a>
+<span class="sourceLineNo">158</span>    List&lt;ServerName&gt; servers = Lists.newArrayList(<a name="line.158"></a>
+<span class="sourceLineNo">159</span>      admin.getClusterMetrics(EnumSet.of(Option.LIVE_SERVERS)).getLiveServerMetrics().keySet());<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; map = balancer.roundRobinAssignment(regions, servers);<a name="line.160"></a>
+<span class="sourceLineNo">161</span>    for (List&lt;RegionInfo&gt; regionInfos : map.values()) {<a name="line.161"></a>
+<span class="sourceLineNo">162</span>      regions.removeAll(regionInfos);<a name="line.162"></a>
+<span class="sourceLineNo">163</span>    }<a name="line.163"></a>
+<span class="sourceLineNo">164</span>    assertEquals("No region should be missed by balancer", 0, regions.size());<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  }<a name="line.165"></a>
 <span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span>  @Test<a name="line.167"></a>
-<span class="sourceLineNo">168</span>  public void testBasicRegionPlacementAndReplicaLoad() throws Exception {<a name="line.168"></a>
-<span class="sourceLineNo">169</span><a name="line.169"></a>
-<span class="sourceLineNo">170</span>    String tableName = "testBasicRegionPlacement";<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    HTableDescriptor desc = new HTableDescriptor(TableName.valueOf(tableName));<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    desc.addFamily(new HColumnDescriptor(HConstants.CATALOG_FAMILY));<a name="line.172"></a>
-<span class="sourceLineNo">173</span>    admin.createTable(desc, Bytes.toBytes("aaa"), Bytes.toBytes("zzz"), REGION_NUM);<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    TEST_UTIL.waitTableAvailable(desc.getTableName());<a name="line.174"></a>
-<span class="sourceLineNo">175</span><a name="line.175"></a>
-<span class="sourceLineNo">176</span>    FavoredNodesManager fnm = master.getFavoredNodesManager();<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    List&lt;RegionInfo&gt; regionsOfTable = admin.getRegions(TableName.valueOf(tableName));<a name="line.177"></a>
-<span class="sourceLineNo">178</span>    for (RegionInfo rInfo : regionsOfTable) {<a name="line.178"></a>
-<span class="sourceLineNo">179</span>      Set&lt;ServerName&gt; favNodes = Sets.newHashSet(fnm.getFavoredNodes(rInfo));<a name="line.179"></a>
-<span class="sourceLineNo">180</span>      assertNotNull(favNodes);<a name="line.180"></a>
-<span class="sourceLineNo">181</span>      assertEquals(FavoredNodeAssignmentHelper.FAVORED_NODES_NUM, favNodes.size());<a name="line.181"></a>
-<span class="sourceLineNo">182</span>    }<a name="line.182"></a>
-<span class="sourceLineNo">183</span><a name="line.183"></a>
-<span class="sourceLineNo">184</span>    Map&lt;ServerName, List&lt;Integer&gt;&gt; replicaLoadMap = fnm.getReplicaLoad(<a name="line.184"></a>
-<span class="sourceLineNo">185</span>      Lists.newArrayList(admin.getClusterMetrics(EnumSet.of(Option.LIVE_SERVERS))<a name="line.185"></a>
-<span class="sourceLineNo">186</span>                              .getLiveServerMetrics().keySet()));<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    assertTrue("Not all replica load collected.",<a name="line.187"></a>
-<span class="sourceLineNo">188</span>      admin.getClusterMetrics(EnumSet.of(Option.LIVE_SERVERS))<a name="line.188"></a>
-<span class="sourceLineNo">189</span>           .getLiveServerMetrics().size() == replicaLoadMap.size());<a name="line.189"></a>
-<span class="sourceLineNo">190</span>    for (Entry&lt;ServerName, List&lt;Integer&gt;&gt; entry : replicaLoadMap.entrySet()) {<a name="line.190"></a>
-<span class="sourceLineNo">191</span>      assertTrue(entry.getValue().size() == FavoredNodeAssignmentHelper.FAVORED_NODES_NUM);<a name="line.191"></a>
-<span class="sourceLineNo">192</span>      assertTrue(entry.getValue().get(0) &gt;= 0);<a name="line.192"></a>
-<span class="sourceLineNo">193</span>      assertTrue(entry.getValue().get(1) &gt;= 0);<a name="line.193"></a>
-<span class="sourceLineNo">194</span>      assertTrue(entry.getValue().get(2) &gt;= 0);<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>    admin.disableTable(TableName.valueOf(tableName));<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    admin.deleteTable(TableName.valueOf(tableName));<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    replicaLoadMap = fnm.getReplicaLoad(Lists.newArrayList(<a name="line.199"></a>
-<span class="sourceLineNo">200</span>      admin.getClusterMetrics(EnumSet.of(Option.LIVE_SERVERS)).getLiveServerMetrics().keySet()));<a name="line.200"></a>
-<span class="sourceLineNo">201</span>    assertTrue("replica load found " + replicaLoadMap.size() + " instead of 0.",<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      replicaLoadMap.size() == admin<a name="line.202"></a>
-<span class="sourceLineNo">203</span>          .getClusterMetrics(EnumSet.of(Option.LIVE_SERVERS)).getLiveServerMetrics()<a name="line.203"></a>
-<span class="sourceLineNo">204</span>          .size());<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>  @Test<a name="line.207"></a>
-<span class="sourceLineNo">208</span>  public void testRandomAssignmentWithNoFavNodes() throws Exception {<a name="line.208"></a>
-<span class="sourceLineNo">209</span><a name="line.209"></a>
-<span class="sourceLineNo">210</span>    final String tableName = "testRandomAssignmentWithNoFavNodes";<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    HTableDescriptor desc = new HTableDescriptor(TableName.valueOf(tableName));<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    desc.addFamily(new HColumnDescriptor(HConstants.CATALOG_FAMILY));<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    admin.createTable(desc);<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    TEST_UTIL.waitTableAvailable(desc.getTableName());<a name="line.214"></a>
-<span class="sourceLineNo">215</span><a name="line.215"></a>
-<span class="sourceLineNo">216</span>    RegionInfo hri = admin.getTableRegions(TableName.valueOf(tableName)).get(0);<a name="line.216"></a>
-<span class="sourceLineNo">217</span><a name="line.217"></a>
-<span class="sourceLineNo">218</span>    FavoredNodesManager fnm = master.getFavoredNodesManager();<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    fnm.deleteFavoredNodesForRegions(Lists.newArrayList(hri));<a name="line.219"></a>
-<span class="sourceLineNo">220</span>    assertNull("Favored nodes not found null after delete", fnm.getFavoredNodes(hri));<a name="line.220"></a>
-<span class="sourceLineNo">221</span><a name="line.221"></a>
-<span class="sourceLineNo">222</span>    LoadBalancer balancer = master.getLoadBalancer();<a name="line.222"></a>
-<span class="sourceLineNo">223</span>    ServerName destination = balancer.randomAssignment(hri, Lists.newArrayList(admin<a name="line.223"></a>
-<span class="sourceLineNo">224</span>        .getClusterMetrics(EnumSet.of(Option.LIVE_SERVERS)).getLiveServerMetrics()<a name="line.224"></a>
-<span class="sourceLineNo">225</span>        .keySet().stream().collect(Collectors.toList())));<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    assertNotNull(destination);<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    List&lt;ServerName&gt; favoredNodes = fnm.getFavoredNodes(hri);<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    assertNotNull(favoredNodes);<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    boolean containsFN = false;<a name="line.229"></a>
-<span class="sourceLineNo">230</span>    for (ServerName sn : favoredNodes) {<a name="line.230"></a>
-<span class="sourceLineNo">231</span>      if (ServerName.isSameAddress(destination, sn)) {<a name="line.231"></a>
-<span class="sourceLineNo">232</span>        containsFN = true;<a name="line.232"></a>
-<span class="sourceLineNo">233</span>      }<a name="line.233"></a>
-<span class="sourceLineNo">234</span>    }<a name="line.234"></a>
-<span class="sourceLineNo">235</span>    assertTrue("Destination server does not belong to favored nodes.", containsFN);<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>  @Test<a name="line.238"></a>
-<span class="sourceLineNo">239</span>  public void testBalancerWithoutFavoredNodes() throws Exception {<a name="line.239"></a>
-<span class="sourceLineNo">240</span><a name="line.240"></a>
-<span class="sourceLineNo">241</span>    TableName tableName = TableName.valueOf("testBalancerWithoutFavoredNodes");<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    HTableDescriptor desc = new HTableDescriptor(tableName);<a name="line.242"></a>
-<span class="sourceLineNo">243</span>    desc.addFamily(new HColumnDescriptor(HConstants.CATALOG_FAMILY));<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    admin.createTable(desc, Bytes.toBytes("aaa"), Bytes.toBytes("zzz"), REGION_NUM);<a name="line.244"></a>
-<span class="sourceLineNo">245</span>    TEST_UTIL.waitTableAvailable(tableName);<a name="line.245"></a>
-<span class="sourceLineNo">246</span><a name="line.246"></a>
-<span class="sourceLineNo">247</span>    final RegionInfo region = admin.getTableRegions(tableName).get(0);<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    LOG.info("Region thats supposed to be in transition: " + region);<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    FavoredNodesManager fnm = master.getFavoredNodesManager();<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    List&lt;ServerName&gt; currentFN = fnm.getFavoredNodes(region);<a name="line.250"></a>
-<span class="sourceLineNo">251</span>    assertNotNull(currentFN);<a name="line.251"></a>
-<span class="sourceLineNo">252</span><a name="line.252"></a>
-<span class="sourceLineNo">253</span>    fnm.deleteFavoredNodesForRegions(Lists.newArrayList(region));<a name="line.253"></a>
-<span class="sourceLineNo">254</span><a name="line.254"></a>
-<span class="sourceLineNo">255</span>    RegionStates regionStates = master.getAssignmentManager().getRegionStates();<a name="line.255"></a>
-<span class="sourceLineNo">256</span>    admin.setBalancerRunning(true, true);<a name="line.256"></a>
-<span class="sourceLineNo">257</span><a name="line.257"></a>
-<span class="sourceLineNo">258</span>    // Balancer should unassign the region<a name="line.258"></a>
-<span class="sourceLineNo">259</span>    assertTrue("Balancer did not run", admin.balancer());<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    TEST_UTIL.waitUntilNoRegionsInTransition();<a name="line.260"></a>
-<span class="sourceLineNo">261</span><a name="line.261"></a>
-<span class="sourceLineNo">262</span>    admin.assign(region.getEncodedNameAsBytes());<a name="line.262"></a>
-<span class="sourceLineNo">263</span>    TEST_UTIL.waitUntilNoRegionsInTransition(60000);<a name="line.263"></a>
-<span class="sourceLineNo">264</span><a name="line.264"></a>
-<span class="sourceLineNo">265</span>    currentFN = fnm.getFavoredNodes(region);<a name="line.265"></a>
-<span class="sourceLineNo">266</span>    assertNotNull(currentFN);<a name="line.266"></a>
-<span class="sourceLineNo">267</span>    assertEquals("Expected number of FN not present",<a name="line.267"></a>
-<span class="sourceLineNo">268</span>      FavoredNodeAssignmentHelper.FAVORED_NODES_NUM, currentFN.size());<a name="line.268"></a>
-<span class="sourceLineNo">269</span><a name="line.269"></a>
-<span class="sourceLineNo">270</span>    assertTrue("Balancer did not run", admin.balancer());<a name="line.270"></a>
-<span class="sourceLineNo">271</span>    TEST_UTIL.waitUntilNoRegionsInTransition(60000);<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>    checkFavoredNodeAssignments(tableName, fnm, regionStates);<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>  @Ignore @Test<a name="line.276"></a>
-<span class="sourceLineNo">277</span>  public void testMisplacedRegions() throws Exception {<a name="line.277"></a>
-<span class="sourceLineNo">278</span><a name="line.278"></a>
-<span class="sourceLineNo">279</span>    TableName tableName = TableName.valueOf("testMisplacedRegions");<a name="line.279"></a>
-<span class="sourceLineNo">280</span>    HTableDescriptor desc = new HTableDescriptor(tableName);<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    desc.addFamily(new HColumnDescriptor(HConstants.CATALOG_FAMILY));<a name="line.281"></a>
-<span class="sourceLineNo">282</span>    admin.createTable(desc, Bytes.toBytes("aaa"), Bytes.toBytes("zzz"), REGION_NUM);<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    TEST_UTIL.waitTableAvailable(tableName);<a name="line.283"></a>
-<span class="sourceLineNo">284</span><a name="line.284"></a>
-<span class="sourceLineNo">285</span>    final RegionInfo misplacedRegion = admin.getTableRegions(tableName).get(0);<a name="line.285"></a>
-<span class="sourceLineNo">286</span>    FavoredNodesManager fnm = master.getFavoredNodesManager();<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    List&lt;ServerName&gt; currentFN = fnm.getFavoredNodes(misplacedRegion);<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    assertNotNull(currentFN);<a name="line.288"></a>
-<span class="sourceLineNo">289</span><a name="line.289"></a>
-<span class="sourceLineNo">290</span>    List&lt;ServerName&gt; serversForNewFN = Lists.newArrayList();<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    for (ServerName sn : admin.getClusterMetrics(EnumSet.of(Option.LIVE_SERVERS))<a name="line.291"></a>
-<span class="sourceLineNo">292</span>      .getLiveServerMetrics().keySet()) {<a name="line.292"></a>
-<span class="sourceLineNo">293</span>      serversForNewFN.add(ServerName.valueOf(sn.getHostname(), sn.getPort(), NON_STARTCODE));<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    }<a name="line.294"></a>
-<span class="sourceLineNo">295</span>    for (ServerName sn : currentFN) {<a name="line.295"></a>
-<span class="sourceLineNo">296</span>      serversForNewFN.remove(sn);<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    }<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    FavoredNodeAssignmentHelper helper = new FavoredNodeAssignmentHelper(serversForNewFN, conf);<a name="line.298"></a>
-<span class="sourceLineNo">299</span>    helper.initialize();<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    List&lt;ServerName&gt; newFavoredNodes = helper.generateFavoredNodes(misplacedRegion);<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    assertNotNull(newFavoredNodes);<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    assertEquals(FavoredNodeAssignmentHelper.FAVORED_NODES_NUM, newFavoredNodes.size());<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    Map&lt;RegionInfo, List&lt;ServerName&gt;&gt; regionFNMap = Maps.newHashMap();<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    regionFNMap.put(misplacedRegion, newFavoredNodes);<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    fnm.updateFavoredNodes(regionFNMap);<a name="line.305"></a>
-<span class="sourceLineNo">306</span><a name="line.306"></a>
-<span class="sourceLineNo">307</span>    final RegionStates regionStates = master.getAssignmentManager().getRegionStates();<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    final ServerName current = regionStates.getRegionServerOfRegion(misplacedRegion);<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    assertNull("Misplaced region is still hosted on favored node, not expected.",<a name="line.309"></a>
-<span class="sourceLineNo">310</span>        FavoredNodesPlan.getFavoredServerPosition(fnm.getFavoredNodes(misplacedRegion), current));<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    admin.setBalancerRunning(true, true);<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    assertTrue("Balancer did not run", admin.balancer());<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    TEST_UTIL.waitFor(120000, 30000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      @Override<a name="line.314"></a>
-<span class="sourceLineNo">315</span>      public boolean evaluate() throws Exception {<a name="line.315"></a>
-<span class="sourceLineNo">316</span>        ServerName host = regionStates.getRegionServerOfRegion(misplacedRegion);<a name="line.316"></a>
-<span class="sourceLineNo">317</span>        return !ServerName.isSameAddress(host, current);<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>    checkFavoredNodeAssignments(tableName, fnm, regionStates);<a name="line.320"></a>
-<span class="sourceLineNo">321</span>  }<a name="line.321"></a>
-<span class="sourceLineNo">322</span><a name="line.322"></a>
-<span class="sourceLineNo">323</span>  @Test<a name="line.323"></a>
-<span class="sourceLineNo">324</span>  public void test2FavoredNodesDead() throws Exception {<a name="line.324"></a>
-<span class="sourceLineNo">325</span><a name="line.325"></a>
-<span class="sourceLineNo">326</span>    TableName tableName = TableName.valueOf("testAllFavoredNodesDead");<a name="line.326"></a>
-<span class="sourceLineNo">327</span>    HTableDescriptor desc = new HTableDescriptor(tableName);<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    desc.addFamily(new HColumnDescriptor(HConstants.CATALOG_FAMILY));<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    admin.createTable(desc, Bytes.toBytes("aaa"), Bytes.toBytes("zzz"), REGION_NUM);<a name="line.329"></a>
-<span class="sourceLineNo">330</span>    TEST_UTIL.waitTableAvailable(tableName);<a name="line.330"></a>
-<span class="sourceLineNo">331</span><a name="line.331"></a>
-<span class="sourceLineNo">332</span>    final RegionInfo region = admin.getTableRegions(tableName).get(0);<a name="line.332"></a>
-<span class="sourceLineNo">333</span>    LOG.info("Region that's supposed to be in transition: " + region);<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    FavoredNodesManager fnm = master.getFavoredNodesManager();<a name="line.334"></a>
-<span class="sourceLineNo">335</span>    List&lt;ServerName&gt; currentFN = fnm.getFavoredNodes(region);<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    assertNotNull(currentFN);<a name="line.336"></a>
-<span class="sourceLineNo">337</span><a name="line.337"></a>
-<span class="sourceLineNo">338</span>    List&lt;ServerName&gt; serversToStop = Lists.newArrayList(currentFN);<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    serversToStop.remove(currentFN.get(0));<a name="line.339"></a>
-<span class="sourceLineNo">340</span><a name="line.340"></a>
-<span class="sourceLineNo">341</span>    // Lets kill 2 FN for the region. All regions should still be assigned<a name="line.341"></a>
-<span class="sourceLineNo">342</span>    stopServersAndWaitUntilProcessed(serversToStop);<a name="line.342"></a>
-<span class="sourceLineNo">343</span><a name="line.343"></a>
-<span class="sourceLineNo">344</span>    TEST_UTIL.waitUntilNoRegionsInTransition();<a name="line.344"></a>
-<span class="sourceLineNo">345</span>    final RegionStates regionStates = master.getAssignmentManager().getRegionStates();<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    TEST_UTIL.waitFor(10000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.346"></a>
-<span class="sourceLineNo">347</span>      @Override<a name="line.347"></a>
-<span class="sourceLineNo">348</span>      public boolean evaluate() throws Exception {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>        return regionStates.getRegionState(region).isOpened();<a name="line.349"></a>
-<span class="sourceLineNo">350</span>      }<a name="line.350"></a>
-<span class="sourceLineNo">351</span>    });<a name="line.351"></a>
-<span class="sourceLineNo">352</span><a name="line.352"></a>
-<span class="sourceLineNo">353</span>    assertEquals("Not all regions are online", REGION_NUM, admin.getTableRegions(tableName).size());<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    admin.setBalancerRunning(true, true);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>    assertTrue("Balancer did not run", admin.balancer());<a name="line.355"></a>
-<span class="sourceLineNo">356</span>    TEST_UTIL.waitUntilNoRegionsInTransition(60000);<a name="line.356"></a>
-<span class="sourceLineNo">357</span><a name="line.357"></a>
-<span class="sourceLineNo">358</span>    checkFavoredNodeAssignments(tableName, fnm, regionStates);<a name="line.358"></a>
-<span class="sourceLineNo">359</span>  }<a name="line.359"></a>
-<span class="sourceLineNo">360</span><a name="line.360"></a>
-<span class="sourceLineNo">361</span>  @Ignore @Test<a name="line.361"></a>
-<span class="sourceLineNo">362</span>  public void testAllFavoredNodesDead() throws Exception {<a name="line.362"></a>
-<span class="sourceLineNo">363</span><a name="line.363"></a>
-<span class="sourceLineNo">364</span>    TableName tableName = TableName.valueOf("testAllFavoredNodesDead");<a name="line.364"></a>
-<span class="sourceLineNo">365</span>    HTableDescriptor desc = new HTableDescriptor(tableName);<a name="line.365"></a>
-<span class="sourceLineNo">366</span>    desc.addFamily(new HColumnDescriptor(HConstants.CATALOG_FAMILY));<a name="line.366"></a>
-<span class="sourceLineNo">367</span>    admin.createTable(desc, Bytes.toBytes("aaa"), Bytes.toBytes("zzz"), REGION_NUM);<a name="line.367"></a>
-<span class="sourceLineNo">368</span>    TEST_UTIL.waitTableAvailable(tableName);<a name="line.368"></a>
-<span class="sourceLineNo">369</span><a name="line.369"></a>
-<span class="sourceLineNo">370</span>    final RegionInfo region = admin.getTableRegions(tableName).get(0);<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    LOG.info("Region that's supposed to be in transition: " + region);<a name="line.371"></a>
-<span class="sourceLineNo">372</span>    FavoredNodesManager fnm = master.getFavoredNodesManager();<a name="line.372"></a>
-<span class="sourceLineNo">373</span>    List&lt;ServerName&gt; currentFN = fnm.getFavoredNodes(region);<a name="line.373"></a>
-<span class="sourceLineNo">374</span>    assertNotNull(currentFN);<a name="line.374"></a>
-<span class="sourceLineNo">375</span><a name="line.375"></a>
-<span class="sourceLineNo">376</span>    // Lets kill all the RS that are favored nodes for this region.<a name="line.376"></a>
-<span class="sourceLineNo">377</span>    stopServersAndWaitUntilProcessed(currentFN);<a name="line.377"></a>
-<span class="sourceLineNo">378</span><a name="line.378"></a>
-<span class="sourceLineNo">379</span>    final RegionStates regionStates = master.getAssignmentManager().getRegionStates();<a name="line.379"></a>
-<span class="sourceLineNo">380</span>    TEST_UTIL.waitFor(10000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>      @Override<a name="line.381"></a>
-<span class="sourceLineNo">382</span>      public boolean evaluate() throws Exception {<a name="line.382"></a>
-<span class="sourceLineNo">383</span>        return regionStates.getRegionState(region).isFailedOpen();<a name="line.383"></a>
-<span class="sourceLineNo">384</span>      }<a name="line.384"></a>
-<span class="sourceLineNo">385</span>    });<a name="line.385"></a>
-<span class="sourceLineNo">386</span><a name="line.386"></a>
-<span class="sourceLineNo">387</span>    assertTrue("Region: " + region + " should be RIT",<a name="line.387"></a>
-<span class="sourceLineNo">388</span>        regionStates.getRegionState(region).isFailedOpen());<a name="line.388"></a>
-<span class="sourceLineNo">389</span><a name="line.389"></a>
-<span class="sourceLineNo">390</span>    // Regenerate FN and assign, everything else should be fine<a name="line.390"></a>
-<span class="sourceLineNo">391</span>    List&lt;ServerName&gt; serversForNewFN = Lists.newArrayList();<a name="line.391"></a>
-<span class="sourceLineNo">392</span>    for (ServerName sn : admin.getClusterMetrics(EnumSet.of(Option.LIVE_SERVERS))<a name="line.392"></a>
-<span class="sourceLineNo">393</span>      .getLiveServerMetrics().keySet()) {<a name="line.393"></a>
-<span class="sourceLineNo">394</span>      serversForNewFN.add(ServerName.valueOf(sn.getHostname(), sn.getPort(), NON_STARTCODE));<a name="line.394"></a>
-<span class="sourceLineNo">395</span>    }<a name="line.395"></a>
-<span class="sourceLineNo">396</span><a name="line.396"></a>
-<span class="sourceLineNo">397</span>    FavoredNodeAssignmentHelper helper = new FavoredNodeAssignmentHelper(serversForNewFN, conf);<a name="line.397"></a>
-<span class="sourceLineNo">398</span>    helper.initialize();<a name="line.398"></a>
-<span class="sourceLineNo">399</span><a name="line.399"></a>
-<span class="sourceLineNo">400</span>    for (RegionStateNode regionState: regionStates.getRegionsInTransition()) {<a name="line.400"></a>
-<span class="sourceLineNo">401</span>      RegionInfo regionInfo = regionState.getRegionInfo();<a name="line.401"></a>
-<span class="sourceLineNo">402</span>      List&lt;ServerName&gt; newFavoredNodes = helper.generateFavoredNodes(regionInfo);<a name="line.402"></a>
-<span class="sourceLineNo">403</span>      assertNotNull(newFavoredNodes);<a name="line.403"></a>
-<span class="sourceLineNo">404</span>      assertEquals(FavoredNodeAssignmentHelper.FAVORED_NODES_NUM, newFavoredNodes.size());<a name="line.404"></a>
-<span class="sourceLineNo">405</span>      LOG.info("Region: " + regionInfo.getEncodedName() + " FN: " + newFavoredNodes);<a name="line.405"></a>
-<span class="sourceLineNo">406</span><a name="line.406"></a>
-<span class="sourceLineNo">407</span>      Map&lt;RegionInfo, List&lt;ServerName&gt;&gt; regionFNMap = Maps.newHashMap();<a name="line.407"></a>
-<span class="sourceLineNo">408</span>      regionFNMap.put(regionInfo, newFavoredNodes);<a name="line.408"></a>
-<span class="sourceLineNo">409</span>      fnm.updateFavoredNodes(regionFNMap);<a name="line.409"></a>
-<span class="sourceLineNo">410</span>      LOG.info("Assigning region: " + regionInfo.getEncodedName());<a name="line.410"></a>
-<span class="sourceLineNo">411</span>      admin.assign(regionInfo.getEncodedNameAsBytes());<a name="line.411"></a>
-<span class="sourceLineNo">412</span>    }<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    TEST_UTIL.waitUntilNoRegionsInTransition(60000);<a name="line.413"></a>
-<span class="sourceLineNo">414</span>    assertEquals("Not all regions are online", REGION_NUM, admin.getTableRegions(tableName).size());<a name="line.414"></a>
-<span class="sourceLineNo">415</span><a name="line.415"></a>
-<span class="sourceLineNo">416</span>    admin.setBalancerRunning(true, true);<a name="line.416"></a>
-<span class="sourceLineNo">417</span>    assertTrue("Balancer did not run", admin.balancer());<a name="line.417"></a>
-<span class="sourceLineNo">418</span>    TEST_UTIL.waitUntilNoRegionsInTransition(60000);<a name="line.418"></a>
-<span class="sourceLineNo">419</span><a name="line.419"></a>
-<span class="sourceLineNo">420</span>    checkFavoredNodeAssignments(tableName, fnm, regionStates);<a name="line.420"></a>
-<span class="sourceLineNo">421</span>  }<a name="line.421"></a>
-<span class="sourceLineNo">422</span><a name="line.422"></a>
-<span class="sourceLineNo">423</span>  @Ignore @Test<a name="line.423"></a>
-<span class="sourceLineNo">424</span>  public void testAllFavoredNodesDeadMasterRestarted() throws Exception {<a name="line.424"></a>
-<span class="sourceLineNo">425</span><a name="line.425"></a>
-<span class="sourceLineNo">426</span>    TableName tableName = TableName.valueOf("testAllFavoredNodesDeadMasterRestarted");<a name="line.426"></a>
-<span class="sourceLineNo">427</span>    HTableDescriptor desc = new HTableDescriptor(tableName);<a name="line.427"></a>
-<span class="sourceLineNo">428</span>    desc.addFamily(new HColumnDescriptor(HConstants.CATALOG_FAMILY));<a name="line.428"></a>
-<span class="sourceLineNo">429</span>    admin.createTable(desc, Bytes.toBytes("aaa"), Bytes.toBytes("zzz"), REGION_NUM);<a name="line.429"></a>
-<span class="sourceLineNo">430</span>    TEST_UTIL.waitTableAvailable(tableName);<a name="line.430"></a>
-<span class="sourceLineNo">431</span><a name="line.431"></a>
-<span class="sourceLineNo">432</span>    final RegionInfo region = admin.getTableRegions(tableName).get(0);<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    LOG.info("Region that's supposed to be in transition: " + region);<a name="line.433"></a>
-<span class="sourceLineNo">434</span>    FavoredNodesManager fnm = master.getFavoredNodesManager();<a name="line.434"></a>
-<span class="sourceLineNo">435</span>    List&lt;ServerName&gt; currentFN = fnm.getFavoredNodes(region);<a name="line.435"></a>
-<span class="sourceLineNo">436</span>    assertNotNull(currentFN);<a name="line.436"></a>
-<span class="sourceLineNo">437</span><a name="line.437"></a>
-<span class="sourceLineNo">438</span>    // Lets kill all the RS that are favored nodes for this region.<a name="line.438"></a>
-<span class="sourceLineNo">439</span>    stopServersAndWaitUntilProcessed(currentFN);<a name="line.439"></a>
-<span class="sourceLineNo">440</span><a name="line.440"></a>
-<span class="sourceLineNo">441</span>    final RegionStates regionStatesBeforeMaster =<a name="line.441"></a>
-<span class="sourceLineNo">442</span>        master.getAssignmentManager().getRegionStates();<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    TEST_UTIL.waitFor(10000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.443"></a>
-<span class="sourceLineNo">444</span>      @Override<a name="line.444"></a>
-<span class="sourceLineNo">445</span>      public boolean evaluate() throws Exception {<a name="line.445"></a>
-<span class="sourceLineNo">446</span>        return regionStatesBeforeMaster.getRegionState(region).isFailedOpen();<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      }<a name="line.447"></a>
-<span class="sourceLineNo">448</span>    });<a name="line.448"></a>
-<span class="sourceLineNo">449</span><a name="line.449"></a>
-<span class="sourceLineNo">450</span>    assertTrue("Region: " + region + " should be RIT",<a name="line.450"></a>
-<span class="sourceLineNo">451</span>        regionStatesBeforeMaster.getRegionState(region).isFailedOpen());<a name="line.451"></a>
-<span class="sourceLineNo">452</span><a name="line.452"></a>
-<span class="sourceLineNo">453</span>    List&lt;RegionInfo&gt; rit = Lists.newArrayList();<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    for (RegionStateNode regionState: regionStatesBeforeMaster.getRegionsInTransition()) {<a name="line.454"></a>
-<span class="sourceLineNo">455</span>      RegionInfo regionInfo = regionState.getRegionInfo();<a name="line.455"></a>
-<span class="sourceLineNo">456</span>      LOG.debug("Region in transition after stopping FN's: " + regionInfo);<a name="line.456"></a>
-<span class="sourceLineNo">457</span>      rit.add(regionInfo);<a name="line.457"></a>
-<span class="sourceLineNo">458</span>      assertTrue("Region: " + regionInfo + " should be RIT",<a name="line.458"></a>
-<span class="sourceLineNo">459</span>          regionStatesBeforeMaster.getRegionState(regionInfo).isFailedOpen());<a name="line.459"></a>
-<span class="sourceLineNo">460</span>      assertEquals("Region: " + regionInfo + " does not belong to table: " + tableName,<a name="line.460"></a>
-<span class="sourceLineNo">461</span>          tableName, regionInfo.getTable());<a name="line.461"></a>
-<span class="sourceLineNo">462</span>    }<a name="line.462"></a>
-<span class="sourceLineNo">463</span><a name="line.463"></a>
-<span class="sourceLineNo">464</span>    Configuration conf = cluster.getConf();<a name="line.464"></a>
-<span class="sourceLineNo">465</span>    conf.setInt(ServerManager.WAIT_ON_REGIONSERVERS_MINTOSTART,<a name="line.465"></a>
-<span class="sourceLineNo">466</span>        SLAVES - FavoredNodeAssignmentHelper.FAVORED_NODES_NUM);<a name="line.466"></a>
-<span class="sourceLineNo">467</span><a name="line.467"></a>
-<span class="sourceLineNo">468</span>    cluster.stopMaster(master.getServerName());<a name="line.468"></a>
-<span class="sourceLineNo">469</span>    cluster.waitForMasterToStop(master.getServerName(), 60000);<a name="line.469"></a>
-<span class="sourceLineNo">470</span><a name="line.470"></a>
-<span class="sourceLineNo">471</span>    cluster.startMaster();<a name="line.471"></a>
-<span class="sourceLineNo">472</span>    cluster.waitForActiveAndReadyMaster();<a name="line.472"></a>
-<span class="sourceLineNo">473</span>    master = cluster.getMaster();<a name="line.473"></a>
-<span class="sourceLineNo">474</span>    fnm = master.getFavoredNodesManager();<a name="line.474"></a>
-<span class="sourceLineNo">475</span><a name="line.475"></a>
-<span class="sourceLineNo">476</span>    RegionStates regionStates = master.getAssignmentManager().getRegionStates();<a name="line.476"></a>
-<span class="sourceLineNo">477</span>    assertTrue("Region: " + region + " should be RIT",<a name="line.477"></a>
-<span class="sourceLineNo">478</span>        regionStates.getRegionState(region).isFailedOpen());<a name="line.478"></a>
-<span class="sourceLineNo">479</span><a name="line.479"></a>
-<span class="sourceLineNo">480</span>    for (RegionInfo regionInfo : rit) {<a name="line.480"></a>
-<span class="sourceLineNo">481</span>      assertTrue("Region: " + regionInfo + " should be RIT",<a name="line.481"></a>
-<span class="sourceLineNo">482</span>          regionStates.getRegionState(regionInfo).isFailedOpen());<a name="line.482"></a>
-<span class="sourceLineNo">483</span>    }<a name="line.483"></a>
-<span class="sourceLineNo">484</span><a name="line.484"></a>
-<span class="sourceLineNo">485</span>    // Regenerate FN and assign, everything else should be fine<a name="line.485"></a>
-<span class="sourceLineNo">486</span>    List&lt;ServerName&gt; serversForNewFN = Lists.newArrayList();<a name="line.486"></a>
-<span class="sourceLineNo">487</span>    for (ServerName sn : admin.getClusterMetrics(EnumSet.of(Option.LIVE_SERVERS))<a name="line.487"></a>
-<span class="sourceLineNo">488</span>      .getLiveServerMetrics().keySet()) {<a name="line.488"></a>
-<span class="sourceLineNo">489</span>      serversForNewFN.add(ServerName.valueOf(sn.getHostname(), sn.getPort(), NON_STARTCODE));<a name="line.489"></a>
-<span class="sourceLineNo">490</span>    }<a name="line.490"></a>
-<span class="sourceLineNo">491</span><a name="line.491"></a>
-<span class="sourceLineNo">492</span>    FavoredNodeAssignmentHelper helper = new FavoredNodeAssignmentHelper(serversForNewFN, conf);<a name="line.492"></a>
-<span class="sourceLineNo">493</span>    helper.initialize();<a name="line.493"></a>
-<span class="sourceLineNo">494</span><a name="line.494"></a>
-<span class="sourceLineNo">495</span>    for (RegionInfo regionInfo : rit) {<a name="line.495"></a>
-<span class="sourceLineNo">496</span>      List&lt;ServerName&gt; newFavoredNodes = helper.generateFavoredNodes(regionInfo);<a name="line.496"></a>
-<span class="sourceLineNo">497</span>      assertNotNull(newFavoredNodes);<a name="line.497"></a>
-<span class="sourceLineNo">498</span>      assertEquals(FavoredNodeAssignmentHelper.FAVORED_NODES_NUM, newFavoredNodes.size());<a name="line.498"></a>
-<span class="sourceLineNo">499</span>      LOG.info("Region: " + regionInfo.getEncodedName() + " FN: " + newFavoredNodes);<a name="line.499"></a>
-<span class="sourceLineNo">500</span><a name="line.500"></a>
-<span class="sourceLineNo">501</span>      Map&lt;RegionInfo, List&lt;ServerName&gt;&gt; regionFNMap = Maps.newHashMap();<a name="line.501"></a>
-<span class="sourceLineNo">502</span>      regionFNMap.put(regionInfo, newFavoredNodes);<a name="line.502"></a>
-<span class="sourceLineNo">503</span>      fnm.updateFavoredNodes(regionFNMap);<a name="line.503"></a>
-<span class="sourceLineNo">504</span>      LOG.info("Assigning region: " + regionInfo.getEncodedName());<a name="line.504"></a>
-<span class="sourceLineNo">505</span>      admin.assign(regionInfo.getEncodedNameAsBytes());<a name="line.505"></a>
-<span class="sourceLineNo">506</span>    }<a name="line.506"></a>
-<span class="sourceLineNo">507</span>    TEST_UTIL.waitUntilNoRegionsInTransition(60000);<a name="line.507"></a>
-<span class="sourceLineNo">508</span>    assertEquals("Not all regions are online", REGION_NUM, admin.getTableRegions(tableName).size());<a name="line.508"></a>
-<span class="sourceLineNo">509</span><a name="line.509"></a>
-<span class="sourceLineNo">510</span>    admin.setBalancerRunning(true, true);<a name="line.510"></a>
-<span class="sourceLineNo">511</span>    assertTrue("Balancer did not run", admin.balancer());<a name="line.511"></a>
-<span class="sourceLineNo">512</span>    TEST_UTIL.waitUntilNoRegionsInTransition(60000);<a name="line.512"></a>
-<span class="sourceLineNo">513</span><a name="line.513"></a>
-<span class="sourceLineNo">514</span>    checkFavoredNodeAssignments(tableName, fnm, regionStates);<a name="line.514"></a>
-<span class="sourceLineNo">515</span>  }<a name="line.515"></a>
-<span class="sourceLineNo">516</span><a name="line.516"></a>
-<span class="sourceLineNo">517</span>  private void checkFavoredNodeAssignments(TableName tableName, FavoredNodesManager fnm,<a name="line.517"></a>
-<span class="sourceLineNo">518</span>      RegionStates regionStates) throws IOException {<a name="line.518"></a>
-<span class="sourceLineNo">519</span>    for (RegionInfo hri : admin.getTableRegions(tableName)) {<a name="line.519"></a>
-<span class="sourceLineNo">520</span>      ServerName host = regionStates.getRegionServerOfRegion(hri);<a name="line.520"></a>
-<span class="sourceLineNo">521</span>      assertNotNull("Region: " + hri.getEncodedName() + " not on FN, current: " + host<a name="line.521"></a>
-<span class="sourceLineNo">522</span>              + " FN list: " + fnm.getFavoredNodes(hri),<a name="line.522"></a>
-<span class="sourceLineNo">523</span>          FavoredNodesPlan.getFavoredServerPosition(fnm.getFavoredNodes(hri), host));<a name="line.523"></a>
-<span class="sourceLineNo">524</span>    }<a name="line.524"></a>
-<span class="sourceLineNo">525</span>  }<a name="line.525"></a>
-<span class="sourceLineNo">526</span><a name="line.526"></a>
-<span class="sourceLineNo">527</span>  private void stopServersAndWaitUntilProcessed(List&lt;ServerName&gt; currentFN) throws Exception {<a name="line.527"></a>
-<span class="sourceLineNo">528</span>    for (ServerName sn : currentFN) {<a name="line.528"></a>
-<span class="sourceLineNo">529</span>      for (JVMClusterUtil.RegionServerThread rst : cluster.getLiveRegionServerThreads()) {<a name="line.529"></a>
-<span class="sourceLineNo">530</span>        if (ServerName.isSameAddress(sn, rst.getRegionServer().getServerName())) {<a name="line.530"></a>
-<span class="sourceLineNo">531</span>          LOG.info("Shutting down server: " + sn);<a name="line.531"></a>
-<span class="sourceLineNo">532</span>          cluster.stopRegionServer(rst.getRegionServer().getServerName());<a name="line.532"></a>
-<span class="sourceLineNo">533</span>          cluster.waitForRegionServerToStop(rst.getRegionServer().getServerName(), 60000);<a name="line.533"></a>
-<span class="sourceLineNo">534</span>        }<a name="line.534"></a>
-<span class="sourceLineNo">535</span>      }<a name="line.535"></a>
-<span class="sourceLineNo">536</span>    }<a name="line.536"></a>
-<span class="sourceLineNo">537</span><a name="line.537"></a>
-<span class="sourceLineNo">538</span>    // Wait until dead servers are processed.<a name="line.538"></a>
-<span class="sourceLineNo">539</span>    TEST_UTIL.waitFor(60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.539"></a>
-<span class="sourceLineNo">540</span>      @Override<a name="line.540"></a>
-<span class="sourceLineNo">541</span>      public boolean evaluate() throws Exception {<a name="line.541"></a>
-<span class="sourceLineNo">542</span>        return !master.getServerManager().areDeadServersInProgress();<a name="line.542"></a>
-<span class="sourceLineNo">543</span>      }<a name="line.543"></a>
-<span class="sourceLineNo">544</span>    });<a name="line.544"></a>
-<span class="sourceLineNo">545</span><a name="line.545"></a>
-<span class="sourceLineNo">546</span>    assertEquals("Not all servers killed",<a name="line.546"></a>
-<span class="sourceLineNo">547</span>        SLAVES - currentFN.size(), cluster.getLiveRegionServerThreads().size());<a name="line.547"></a>
-<span class="sourceLineNo">548</span>  }<a name="line.548"></a>
-<span class="sourceLineNo">549</span><a name="line.549"></a>
-<span class="sourceLineNo">550</span>  private void compactTable(TableName tableName) throws IOException {<a name="line.550"></a>
-<span class="sourceLineNo">551</span>    for(JVMClusterUtil.RegionServerThread t : cluster.getRegionServerThreads()) {<a name="line.551"></a>
-<span class="sourceLineNo">552</span>      for(HRegion region : t.getRegionServer().getRegions(tableName)) {<a name="line.552"></a>
-<span class="sourceLineNo">553</span>        region.compact(true);<a name="line.553"></a>
-<span class="sourceLineNo">554</span>      }<a name="line.554"></a>
-<span class="sourceLineNo">555</span>    }<a name="line.555"></a>
-<span class="sourceLineNo">556</span>  }<a name="line.556"></a>
-<span class="sourceLineNo">557</span>}<a name="line.557"></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 testBasicRegionPlacementAndReplicaLoad() throws Exception {<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span>    String tableName = "testBasicRegionPlacement";<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    HTableDescriptor desc = new HTableDescriptor(TableName.valueOf(tableName));<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    desc.addFamily(new HColumnDescriptor(HConstants.CATALOG_FAMILY));<a name="line.173"></a>
+<span class="sourceLineNo">174</span>    admin.createTable(desc, Bytes.toBytes("aaa"), Bytes.toBytes("zzz"), REGION_NUM);<a name="line.174"></a>
+<span class="sourceLineNo">175</span>    TEST_UTIL.waitTableAvailable(desc.getTableName());<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>    FavoredNodesManager fnm = master.getFavoredNodesManager();<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    List&lt;RegionInfo&gt; regionsOfTable = admin.getRegions(TableName.valueOf(tableName));<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    for (RegionInfo rInfo : regionsOfTable) {<a name="line.179"></a>
+<span class="sourceLineNo">180</span>      Set&lt;ServerName&gt; favNodes = Sets.newHashSet(fnm.getFavoredNodes(rInfo));<a name="line.180"></a>
+<span class="sourceLineNo">181</span>      assertNotNull(favNodes);<a name="line.181"></a>
+<span class="sourceLineNo">182</span>      assertEquals(FavoredNodeAssignmentHelper.FAVORED_NODES_NUM, favNodes.size());<a name="line.182"></a>
+<span class="sourceLineNo">183</span>    }<a name="line.183"></a>
+<span class="sourceLineNo">184</span><a name="line.184"></a>
+<span class="sourceLineNo">185</span>    Map&lt;ServerName, List&lt;Integer&gt;&gt; replicaLoadMap = fnm.getReplicaLoad(<a name="line.185"></a>
+<span class="sourceLineNo">186</span>      Lists.newArrayList(admin.getClusterMetrics(EnumSet.of(Option.LIVE_SERVERS))<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                              .getLiveServerMetrics().keySet()));<a name="line.187"></a>
+<span class="sourceLineNo">188</span>    assertTrue("Not all replica load collected.",<a name="line.188"></a>
+<span class="sourceLineNo">189</span>      admin.getClusterMetrics(EnumSet.of(Option.LIVE_SERVERS))<a name="line.189"></a>
+<span class="sourceLineNo">190</span>           .getLiveServerMetrics().size() == replicaLoadMap.size());<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    for (Entry&lt;ServerName, List&lt;Integer&gt;&gt; entry : replicaLoadMap.entrySet()) {<a name="line.191"></a>
+<span class="sourceLineNo">192</span>      assertTrue(entry.getValue().size() == FavoredNodeAssignmentHelper.FAVORED_NODES_NUM);<a name="line.192"></a>
+<span class="sourceLineNo">193</span>      assertTrue(entry.getValue().get(0) &gt;= 0);<a name="line.193"></a>
+<span class="sourceLineNo">194</span>      assertTrue(entry.getValue().get(1) &gt;= 0);<a name="line.194"></a>
+<span class="sourceLineNo">195</span>      assertTrue(entry.getValue().get(2) &gt;= 0);<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    }<a name="line.196"></a>
+<span class="sourceLineNo">197</span><a name="line.197"></a>
+<span class="sourceLineNo">198</span>    admin.disableTable(TableName.valueOf(tableName));<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    admin.deleteTable(TableName.valueOf(tableName));<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    replicaLoadMap = fnm.getReplicaLoad(Lists.newArrayList(<a name="line.200"></a>
+<span class="sourceLineNo">201</span>      admin.getClusterMetrics(EnumSet.of(Option.LIVE_SERVERS)).getLiveServerMetrics().keySet()));<a name="line.201"></a>
+<span class="sourceLineNo">202</span>    assertTrue("replica load found " + replicaLoadMap.size() + " instead of 0.",<a name="line.202"></a>
+<span class="sourceLineNo">203</span>      replicaLoadMap.size() == admin<a name="line.203"></a>
+<span class="sourceLineNo">204</span>          .getClusterMetrics(EnumSet.of(Option.LIVE_SERVERS)).getLiveServerMetrics()<a name="line.204"></a>
+<span class="sourceLineNo">205</span>          .size());<a name="line.205"></a>
+<span class="sourceLineNo">206</span>  }<a name="line.206"></a>
+<span class="sourceLineNo">207</span><a name="line.207"></a>
+<span class="sourceLineNo">208</span>  @Test<a name="line.208"></a>
+<span class="sourceLineNo">209</span>  public void testRandomAssignmentWithNoFavNodes() throws Exception {<a name="line.209"></a>
+<span class="sourceLineNo">210</span><a name="line.210"></a>
+<span class="sourceLineNo">211</span>    final String tableName = "testRandomAssignmentWithNoFavNodes";<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    HTableDescriptor desc = new HTableDescriptor(TableName.valueOf(tableName));<a name="line.212"></a>
+<span class="sourceLineNo">213</span>    desc.addFamily(new HColumnDescriptor(HConstants.CATALOG_FAMILY));<a name="line.213"></a>
+<span class="sourceLineNo">214</span>    admin.createTable(desc);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    TEST_UTIL.waitTableAvailable(desc.getTableName());<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>    RegionInfo hri = admin.getTableRegions(TableName.valueOf(tableName)).get(0);<a name="line.217"></a>
+<span class="sourceLineNo">218</span><a name="line.218"></a>
+<span class="sourceLineNo">219</span>    FavoredNodesManager fnm = master.getFavoredNodesManager();<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    fnm.deleteFavoredNodesForRegions(Lists.newArrayList(hri));<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    assertNull("Favored nodes not found null after delete", fnm.getFavoredNodes(hri));<a name="line.221"></a>
+<span class="sourceLineNo">222</span><a name="line.222"></a>
+<span class="sourceLineNo">223</span>    LoadBalancer balancer = master.getLoadBalancer();<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    ServerName destination = balancer.randomAssignment(hri, Lists.newArrayList(admin<a name="line.224"></a>
+<span class="sourceLineNo">225</span>        .getClusterMetrics(EnumSet.of(Option.LIVE_SERVERS)).getLiveServerMetrics()<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        .keySet().stream().collect(Collectors.toList())));<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    assertNotNull(destination);<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    List&lt;ServerName&gt; favoredNodes = fnm.getFavoredNodes(hri);<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    assertNotNull(favoredNodes);<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    boolean containsFN = false;<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    for (ServerName sn : favoredNodes) {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>      if (ServerName.isSameAddress(destination, sn)) {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>        containsFN = true;<a name="line.233"></a>
+<span class="sourceLineNo">234</span>      }<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    }<a name="line.235"></a>
+<span class="sourceLineNo">236</span>    assertTrue("Destination server does not belong to favored nodes.", containsFN);<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>  @Test<a name="line.239"></a>
+<span class="sourceLineNo">240</span>  public void testBalancerWithoutFavoredNodes() throws Exception {<a name="line.240"></a>
+<span class="sourceLineNo">241</span><a name="line.241"></a>
+<span class="sourceLineNo">242</span>    TableName tableName = TableName.valueOf("testBalancerWithoutFavoredNodes");<a name="line.242"></a>
+<span class="sourceLineNo">243</span>    HTableDescriptor desc = new HTableDescriptor(tableName);<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    desc.addFamily(new HColumnDescriptor(HConstants.CATALOG_FAMILY));<a name="line.244"></a>
+<span class="sourceLineNo">245</span>    admin.createTable(desc, Bytes.toBytes("aaa"), Bytes.toBytes("zzz"), REGION_NUM);<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    TEST_UTIL.waitTableAvailable(tableName);<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span>    final RegionInfo region = admin.getTableRegions(tableName).get(0);<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    LOG.info("Region thats supposed to be in transition: " + region);<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    FavoredNodesManager fnm = master.getFavoredNodesManager();<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    List&lt;ServerName&gt; currentFN = fnm.getFavoredNodes(region);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>    assertNotNull(currentFN);<a name="line.252"></a>
+<span class="sourceLineNo">253</span><a name="line.253"></a>
+<span class="sourceLineNo">254</span>    fnm.deleteFavoredNodesForRegions(Lists.newArrayList(region));<a name="line.254"></a>
+<span class="sourceLineNo">255</span><a name="line.255"></a>
+<span class="sourceLineNo">256</span>    RegionStates regionStates = master.getAssignmentManager().getRegionStates();<a name="line.256"></a>
+<span class="sourceLineNo">257</span>    admin.setBalancerRunning(true, true);<a name="line.257"></a>
+<span class="sourceLineNo">258</span><a name="line.258"></a>
+<span class="sourceLineNo">259</span>    // Balancer should unassign the region<a name="line.259"></a>
+<span class="sourceLineNo">260</span>    assertTrue("Balancer did not run", admin.balancer());<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    TEST_UTIL.waitUntilNoRegionsInTransition();<a name="line.261"></a>
+<span class="sourceLineNo">262</span><a name="line.262"></a>
+<span class="sourceLineNo">263</span>    admin.assign(region.getEncodedNameAsBytes());<a name="line.263"></a>
+<span class="sourceLineNo">264</span>    TEST_UTIL.waitUntilNoRegionsInTransition(60000);<a name="line.264"></a>
+<span class="sourceLineNo">265</span><a name="line.265"></a>
+<span class="sourceLineNo">266</span>    currentFN = fnm.getFavoredNodes(region);<a name="line.266"></a>
+<span class="sourceLineNo">267</span>    assertNotNull(currentFN);<a name="line.267"></a>
+<span class="sourceLineNo">268</span>    assertEquals("Expected number of FN not present",<a name="line.268"></a>
+<span class="sourceLineNo">269</span>      FavoredNodeAssignmentHelper.FAVORED_NODES_NUM, currentFN.size());<a name="line.269"></a>
+<span class="sourceLineNo">270</span><a name="line.270"></a>
+<span class="sourceLineNo">271</span>    assertTrue("Balancer did not run", admin.balancer());<a name="line.271"></a>
+<span class="sourceLineNo">272</span>    TEST_UTIL.waitUntilNoRegionsInTransition(60000);<a name="line.272"></a>
+<span class="sourceLineNo">273</span><a name="line.273"></a>
+<span class="sourceLineNo">274</span>    checkFavoredNodeAssignments(tableName, fnm, regionStates);<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>  @Ignore @Test<a name="line.277"></a>
+<span class="sourceLineNo">278</span>  public void testMisplacedRegions() throws Exception {<a name="line.278"></a>
+<span class="sourceLineNo">279</span><a name="line.279"></a>
+<span class="sourceLineNo">280</span>    TableName tableName = TableName.valueOf("testMisplacedRegions");<a name="line.280"></a>
+<span class="sourceLineNo">281</span>    HTableDescriptor desc = new HTableDescriptor(tableName);<a name="line.281"></a>
+<span class="sourceLineNo">282</span>    desc.addFamily(new HColumnDescriptor(HConstants.CATALOG_FAMILY));<a name="line.282"></a>
+<span class="sourceLineNo">283</span>    admin.createTable(desc, Bytes.toBytes("aaa"), Bytes.toBytes("zzz"), REGION_NUM);<a name="line.283"></a>
+<span class="sourceLineNo">284</span>    TEST_UTIL.waitTableAvailable(tableName);<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>    final RegionInfo misplacedRegion = admin.getTableRegions(tableName).get(0);<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    FavoredNodesManager fnm = master.getFavoredNodesManager();<a name="line.287"></a>
+<span class="sourceLineNo">288</span>    List&lt;ServerName&gt; currentFN = fnm.getFavoredNodes(misplacedRegion);<a name="line.288"></a>
+<span class="sourceLineNo">289</span>    assertNotNull(currentFN);<a name="line.289"></a>
+<span class="sourceLineNo">290</span><a name="line.290"></a>
+<span class="sourceLineNo">291</span>    List&lt;ServerName&gt; serversForNewFN = Lists.newArrayList();<a name="line.291"></a>
+<span class="sourceLineNo">292</span>    for (ServerName sn : admin.getClusterMetrics(EnumSet.of(Option.LIVE_SERVERS))<a name="line.292"></a>
+<span class="sourceLineNo">293</span>      .getLiveServerMetrics().keySet()) {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>      serversForNewFN.add(ServerName.valueOf(sn.getHostname(), sn.getPort(), NON_STARTCODE));<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    }<a name="line.295"></a>
+<span class="sourceLineNo">296</span>    for (ServerName sn : currentFN) {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>      serversForNewFN.remove(sn);<a name="line.297"></a>
+<span class="sourceLineNo">298</span>    }<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    FavoredNodeAssignmentHelper helper = new FavoredNodeAssignmentHelper(serversForNewFN, conf);<a name="line.299"></a>
+<span class="sourceLineNo">300</span>    helper.initialize();<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    List&lt;ServerName&gt; newFavoredNodes = helper.generateFavoredNodes(misplacedRegion);<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    assertNotNull(newFavoredNodes);<a name="line.302"></a>
+<span class="sourceLineNo">303</span>    assertEquals(FavoredNodeAssignmentHelper.FAVORED_NODES_NUM, newFavoredNodes.size());<a name="line.303"></a>
+<span class="sourceLineNo">304</span>    Map&lt;RegionInfo, List&lt;ServerName&gt;&gt; regionFNMap = Maps.newHashMap();<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    regionFNMap.put(misplacedRegion, newFavoredNodes);<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    fnm.updateFavoredNodes(regionFNMap);<a name="line.306"></a>
+<span class="sourceLineNo">307</span><a name="line.307"></a>
+<span class="sourceLineNo">308</span>    final RegionStates regionStates = master.getAssignmentManager().getRegionStates();<a name="line.308"></a>
+<span class="sourceLineNo">309</span>    final ServerName current = regionStates.getRegionServerOfRegion(misplacedRegion);<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    assertNull("Misplaced region is still hosted on favored node, not expected.",<a name="line.310"></a>
+<span class="sourceLineNo">311</span>        FavoredNodesPlan.getFavoredServerPosition(fnm.getFavoredNodes(misplacedRegion), current));<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    admin.setBalancerRunning(true, true);<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    assertTrue("Balancer did not run", admin.balancer());<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    TEST_UTIL.waitFor(120000, 30000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>      @Override<a name="line.315"></a>
+<span class="sourceLineNo">316</span>      public boolean evaluate() throws Exception {<a name="line.316"></a>
+<span class="sourceLineNo">317</span>        ServerName host = regionStates.getRegionServerOfRegion(misplacedRegion);<a name="line.317"></a>
+<span class="sourceLineNo">318</span>        return !ServerName.isSameAddress(host, current);<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>    checkFavoredNodeAssignments(tableName, fnm, regionStates);<a name="line.321"></a>
+<span class="sourceLineNo">322</span>  }<a name="line.322"></a>
+<span class="sourceLineNo">323</span><a name="line.323"></a>
+<span class="sourceLineNo">324</span>  @Test<a name="line.324"></a>
+<span class="sourceLineNo">325</span>  public void test2FavoredNodesDead() throws Exception {<a name="line.325"></a>
+<span class="sourceLineNo">326</span><a name="line.326"></a>
+<span class="sourceLineNo">327</span>    TableName tableName = TableName.valueOf("testAllFavoredNodesDead");<a name="line.327"></a>
+<span class="sourceLineNo">328</span>    HTableDescriptor desc = new HTableDescriptor(tableName);<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    desc.addFamily(new HColumnDescriptor(HConstants.CATALOG_FAMILY));<a name="line.329"></a>
+<span class="sourceLineNo">330</span>    admin.createTable(desc, Bytes.toBytes("aaa"), Bytes.toBytes("zzz"), REGION_NUM);<a name="line.330"></a>
+<span class="sourceLineNo">331</span>    TEST_UTIL.waitTableAvailable(tableName);<a name="line.331"></a>
+<span class="sourceLineNo">332</span><a name="line.332"></a>
+<span class="sourceLineNo">333</span>    final RegionInfo region = admin.getTableRegions(tableName).get(0);<a name="line.333"></a>
+<span class="sourceLineNo">334</span>    LOG.info("Region that's supposed to be in transition: " + region);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>    FavoredNodesManager fnm = master.getFavoredNodesManager();<a name="line.335"></a>
+<span class="sourceLineNo">336</span>    List&lt;ServerName&gt; currentFN = fnm.getFavoredNodes(region);<a name="line.336"></a>
+<span class="sourceLineNo">337</span>    assertNotNull(currentFN);<a name="line.337"></a>
+<span class="sourceLineNo">338</span><a name="line.338"></a>
+<span class="sourceLineNo">339</span>    List&lt;ServerName&gt; serversToStop = Lists.newArrayList(currentFN);<a name="line.339"></a>
+<span class="sourceLineNo">340</span>    serversToStop.remove(currentFN.get(0));<a name="line.340"></a>
+<span class="sourceLineNo">341</span><a name="line.341"></a>
+<span class="sourceLineNo">342</span>    // Lets kill 2 FN for the region. All regions should still be assigned<a name="line.342"></a>
+<span class="sourceLineNo">343</span>    stopServersAndWaitUntilProcessed(serversToStop);<a name="line.343"></a>
+<span class="sourceLineNo">344</span><a name="line.344"></a>
+<span class="sourceLineNo">345</span>    TEST_UTIL.waitUntilNoRegionsInTransition();<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    final RegionStates regionStates = master.getAssignmentManager().getRegionStates();<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    TEST_UTIL.waitFor(10000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.347"></a>
+<span class="sourceLineNo">348</span>      @Override<a name="line.348"></a>
+<span class="sourceLineNo">349</span>      public boolean evaluate() throws Exception {<a name="line.349"></a>
+<span class="sourceLineNo">350</span>        return regionStates.getRegionState(region).isOpened();<a name="line.350"></a>
+<span class="sourceLineNo">351</span>      }<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    });<a name="line.352"></a>
+<span class="sourceLineNo">353</span><a name="line.353"></a>
+<span class="sourceLineNo">354</span>    assertEquals("Not all regions are online", REGION_NUM, admin.getTableRegions(tableName).size());<a name="line.354"></a>
+<span class="sourceLineNo">355</span>    admin.setBalancerRunning(true, true);<a name="line.355"></a>
+<span class="sourceLineNo">356</span>    assertTrue("Balancer did not run", admin.balancer());<a name="line.356"></a>
+<span class="sourceLineNo">357</span>    TEST_UTIL.waitUntilNoRegionsInTransition(60000);<a name="line.357"></a>
+<span class="sourceLineNo">358</span><a name="line.358"></a>
+<span class="sourceLineNo">359</span>    checkFavoredNodeAssignments(tableName, fnm, regionStates);<a name="line.359"></a>
+<span class="sourceLineNo">360</span>  }<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span>  @Ignore @Test<a name="line.362"></a>
+<span class="sourceLineNo">363</span>  public void testAllFavoredNodesDead() throws Exception {<a name="line.363"></a>
+<span class="sourceLineNo">364</span><a name="line.364"></a>
+<span class="sourceLineNo">365</span>    TableName tableName = TableName.valueOf("testAllFavoredNodesDead");<a name="line.365"></a>
+<span class="sourceLineNo">366</span>    HTableDescriptor desc = new HTableDescriptor(tableName);<a name="line.366"></a>
+<span class="sourceLineNo">367</span>    desc.addFamily(new HColumnDescriptor(HConstants.CATALOG_FAMILY));<a name="line.367"></a>
+<span class="sourceLineNo">368</span>    admin.createTable(desc, Bytes.toBytes("aaa"), Bytes.toBytes("zzz"), REGION_NUM);<a name="line.368"></a>
+<span class="sourceLineNo">369</span>    TEST_UTIL.waitTableAvailable(tableName);<a name="line.369"></a>
+<span class="sourceLineNo">370</span><a name="line.370"></a>
+<span class="sourceLineNo">371</span>    final RegionInfo region = admin.getTableRegions(tableName).get(0);<a name="line.371"></a>
+<span class="sourceLineNo">372</span>    LOG.info("Region that's supposed to be in transition: " + region);<a name="line.372"></a>
+<span class="sourceLineNo">373</span>    FavoredNodesManager fnm = master.getFavoredNodesManager();<a name="line.373"></a>
+<span class="sourceLineNo">374</span>    List&lt;ServerName&gt; currentFN = fnm.getFavoredNodes(region);<a name="line.374"></a>
+<span class="sourceLineNo">375</span>    assertNotNull(currentFN);<a name="line.375"></a>
+<span class="sourceLineNo">376</span><a name="line.376"></a>
+<span class="sourceLineNo">377</span>    // Lets kill all the RS that are favored nodes for this region.<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    stopServersAndWaitUntilProcessed(currentFN);<a name="line.378"></a>
+<span class="sourceLineNo">379</span><a name="line.379"></a>
+<span class="sourceLineNo">380</span>    final RegionStates regionStates = master.getAssignmentManager().getRegionStates();<a name="line.380"></a>
+<span class="sourceLineNo">381</span>    TEST_UTIL.waitFor(10000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.381"></a>
+<span class="sourceLineNo">382</span>      @Override<a name="line.382"></a>
+<span class="sourceLineNo">383</span>      public boolean evaluate() throws Exception {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>        return regionStates.getRegionState(region).isFailedOpen();<a name="line.384"></a>
+<span class="sourceLineNo">385</span>      }<a name="line.385"></a>
+<span class="sourceLineNo">386</span>    });<a name="line.386"></a>
+<span class="sourceLineNo">387</span><a name="line.387"></a>
+<span class="sourceLineNo">388</span>    assertTrue("Region: " + region + " should be RIT",<a name="line.388"></a>
+<span class="sourceLineNo">389</span>        regionStates.getRegionState(region).isFailedOpen());<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span>    // Regenerate FN and assign, everything else should be fine<a name="line.391"></a>
+<span class="sourceLineNo">392</span>    List&lt;ServerName&gt; serversForNewFN = Lists.newArrayList();<a name="line.392"></a>
+<span class="sourceLineNo">393</span>    for (ServerName sn : admin.getClusterMetrics(EnumSet.of(Option.LIVE_SERVERS))<a name="line.393"></a>
+<span class="sourceLineNo">394</span>      .getLiveServerMetrics().keySet()) {<a name="line.394"></a>
+<span class="sourceLineNo">395</span>      serversForNewFN.add(ServerName.valueOf(sn.getHostname(), sn.getPort(), NON_STARTCODE));<a name="line.395"></a>
+<span class="sourceLineNo">396</span>    }<a name="line.396"></a>
+<span class="sourceLineNo">397</span><a name="line.397"></a>
+<span class="sourceLineNo">398</span>    FavoredNodeAssignmentHelper helper = new FavoredNodeAssignmentHelper(serversForNewFN, conf);<a name="line.398"></a>
+<span class="sourceLineNo">399</span>    helper.initialize();<a name="line.399"></a>
+<span class="sourceLineNo">400</span><a name="line.400"></a>
+<span class="sourceLineNo">401</span>    for (RegionStateNode regionState: regionStates.getRegionsInTransition()) {<a name="line.401"></a>
+<span class="sourceLineNo">402</span>      RegionInfo regionInfo = regionState.getRegionInfo();<a name="line.402"></a>
+<span class="sourceLineNo">403</span>      List&lt;ServerName&gt; newFavoredNodes = helper.generateFavoredNodes(regionInfo);<a name="line.403"></a>
+<span class="sourceLineNo">404</span>      assertNotNull(newFavoredNodes);<a name="line.404"></a>
+<span class="sourceLineNo">405</span>      assertEquals(FavoredNodeAssignmentHelper.FAVORED_NODES_NUM, newFavoredNodes.size());<a name="line.405"></a>
+<span class="sourceLineNo">406</span>      LOG.info("Region: " + regionInfo.getEncodedName() + " FN: " + newFavoredNodes);<a name="line.406"></a>
+<span class="sourceLineNo">407</span><a name="line.407"></a>
+<span class="sourceLineNo">408</span>      Map&lt;RegionInfo, List&lt;ServerName&gt;&gt; regionFNMap = Maps.newHashMap();<a name="line.408"></a>
+<span class="sourceLineNo">409</span>      regionFNMap.put(regionInfo, newFavoredNodes);<a name="line.409"></a>
+<span class="sourceLineNo">410</span>      fnm.updateFavoredNodes(regionFNMap);<a name="line.410"></a>
+<span class="sourceLineNo">411</span>      LOG.info("Assigning region: " + regionInfo.getEncodedName());<a name="line.411"></a>
+<span class="sourceLineNo">412</span>      admin.assign(regionInfo.getEncodedNameAsBytes());<a name="line.412"></a>
+<span class="sourceLineNo">413</span>    }<a name="line.413"></a>
+<span class="sourceLineNo">414</span>    TEST_UTIL.waitUntilNoRegionsInTransition(60000);<a name="line.414"></a>
+<span class="sourceLineNo">415</span>    assertEquals("Not all regions are online", REGION_NUM, admin.getTableRegions(tableName).size());<a name="line.415"></a>
+<span class="sourceLineNo">416</span><a name="line.416"></a>
+<span class="sourceLineNo">417</span>    admin.setBalancerRunning(true, true);<a name="line.417"></a>
+<span class="sourceLineNo">418</span>    assertTrue("Balancer did not run", admin.balancer());<a name="line.418"></a>
+<span class="sourceLineNo">419</span>    TEST_UTIL.waitUntilNoRegionsInTransition(60000);<a name="line.419"></a>
+<span class="sourceLineNo">420</span><a name

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.ScanRegionCoprocessor.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.ScanRegionCoprocessor.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.ScanRegionCoprocessor.html
index 24db4ca..bf924bf 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.ScanRegionCoprocessor.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.ScanRegionCoprocessor.html
@@ -6,7 +6,7 @@
 </head>
 <body>
 <div class="sourceContainer">
-<pre><span class="sourceLineNo">001</span>/**<a name="line.1"></a>
+<pre><span class="sourceLineNo">001</span>/*<a name="line.1"></a>
 <span class="sourceLineNo">002</span> *<a name="line.2"></a>
 <span class="sourceLineNo">003</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.3"></a>
 <span class="sourceLineNo">004</span> * or more contributor license agreements.  See the NOTICE file<a name="line.4"></a>
@@ -71,437 +71,439 @@
 <span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.63"></a>
 <span class="sourceLineNo">064</span>import org.junit.AfterClass;<a name="line.64"></a>
 <span class="sourceLineNo">065</span>import org.junit.BeforeClass;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.junit.Test;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.junit.experimental.categories.Category;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.slf4j.Logger;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.slf4j.LoggerFactory;<a name="line.69"></a>
-<span class="sourceLineNo">070</span><a name="line.70"></a>
-<span class="sourceLineNo">071</span>@Category(MediumTests.class)<a name="line.71"></a>
-<span class="sourceLineNo">072</span>public class TestRegionServerReadRequestMetrics {<a name="line.72"></a>
-<span class="sourceLineNo">073</span>  private static final Logger LOG =<a name="line.73"></a>
-<span class="sourceLineNo">074</span>      LoggerFactory.getLogger(TestRegionServerReadRequestMetrics.class);<a name="line.74"></a>
-<span class="sourceLineNo">075</span>  private static final HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();<a name="line.75"></a>
-<span class="sourceLineNo">076</span>  private static final TableName TABLE_NAME = TableName.valueOf("test");<a name="line.76"></a>
-<span class="sourceLineNo">077</span>  private static final byte[] CF1 = "c1".getBytes();<a name="line.77"></a>
-<span class="sourceLineNo">078</span>  private static final byte[] CF2 = "c2".getBytes();<a name="line.78"></a>
-<span class="sourceLineNo">079</span><a name="line.79"></a>
-<span class="sourceLineNo">080</span>  private static final byte[] ROW1 = "a".getBytes();<a name="line.80"></a>
-<span class="sourceLineNo">081</span>  private static final byte[] ROW2 = "b".getBytes();<a name="line.81"></a>
-<span class="sourceLineNo">082</span>  private static final byte[] ROW3 = "c".getBytes();<a name="line.82"></a>
-<span class="sourceLineNo">083</span>  private static final byte[] COL1 = "q1".getBytes();<a name="line.83"></a>
-<span class="sourceLineNo">084</span>  private static final byte[] COL2 = "q2".getBytes();<a name="line.84"></a>
-<span class="sourceLineNo">085</span>  private static final byte[] COL3 = "q3".getBytes();<a name="line.85"></a>
-<span class="sourceLineNo">086</span>  private static final byte[] VAL1 = "v1".getBytes();<a name="line.86"></a>
-<span class="sourceLineNo">087</span>  private static final byte[] VAL2 = "v2".getBytes();<a name="line.87"></a>
-<span class="sourceLineNo">088</span>  private static final byte[] VAL3 = Bytes.toBytes(0L);<a name="line.88"></a>
-<span class="sourceLineNo">089</span><a name="line.89"></a>
-<span class="sourceLineNo">090</span>  private static final int MAX_TRY = 20;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>  private static final int SLEEP_MS = 100;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>  private static final int TTL = 1;<a name="line.92"></a>
-<span class="sourceLineNo">093</span><a name="line.93"></a>
-<span class="sourceLineNo">094</span>  private static Admin admin;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>  private static Collection&lt;ServerName&gt; serverNames;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>  private static Table table;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>  private static RegionInfo regionInfo;<a name="line.97"></a>
-<span class="sourceLineNo">098</span><a name="line.98"></a>
-<span class="sourceLineNo">099</span>  private static Map&lt;Metric, Long&gt; requestsMap = new HashMap&lt;&gt;();<a name="line.99"></a>
-<span class="sourceLineNo">100</span>  private static Map&lt;Metric, Long&gt; requestsMapPrev = new HashMap&lt;&gt;();<a name="line.100"></a>
-<span class="sourceLineNo">101</span><a name="line.101"></a>
-<span class="sourceLineNo">102</span>  @BeforeClass<a name="line.102"></a>
-<span class="sourceLineNo">103</span>  public static void setUpOnce() throws Exception {<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    // Default starts one regionserver only.<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    TEST_UTIL.getConfiguration().setBoolean(LoadBalancer.TABLES_ON_MASTER, true);<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    TEST_UTIL.getConfiguration().setBoolean(LoadBalancer.SYSTEM_TABLES_ON_MASTER, true);<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    TEST_UTIL.startMiniCluster();<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    admin = TEST_UTIL.getAdmin();<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    serverNames = admin.getClusterMetrics(EnumSet.of(Option.LIVE_SERVERS))<a name="line.109"></a>
-<span class="sourceLineNo">110</span>      .getLiveServerMetrics().keySet();<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    table = createTable();<a name="line.111"></a>
-<span class="sourceLineNo">112</span>    putData();<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    List&lt;RegionInfo&gt; regions = admin.getRegions(TABLE_NAME);<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    assertEquals("Table " + TABLE_NAME + " should have 1 region", 1, regions.size());<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    regionInfo = regions.get(0);<a name="line.115"></a>
-<span class="sourceLineNo">116</span><a name="line.116"></a>
-<span class="sourceLineNo">117</span>    for (Metric metric : Metric.values()) {<a name="line.117"></a>
-<span class="sourceLineNo">118</span>      requestsMap.put(metric, 0L);<a name="line.118"></a>
-<span class="sourceLineNo">119</span>      requestsMapPrev.put(metric, 0L);<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    }<a name="line.120"></a>
-<span class="sourceLineNo">121</span>  }<a name="line.121"></a>
-<span class="sourceLineNo">122</span><a name="line.122"></a>
-<span class="sourceLineNo">123</span>  private static Table createTable() throws IOException {<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    TableDescriptorBuilder builder = TableDescriptorBuilder.newBuilder(TABLE_NAME);<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    builder.addColumnFamily(ColumnFamilyDescriptorBuilder.of(CF1));<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    builder.addColumnFamily(ColumnFamilyDescriptorBuilder.newBuilder(CF2).setTimeToLive(TTL)<a name="line.126"></a>
-<span class="sourceLineNo">127</span>        .build());<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    admin.createTable(builder.build());<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    return TEST_UTIL.getConnection().getTable(TABLE_NAME);<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>  private static void testReadRequests(long resultCount,<a name="line.132"></a>
-<span class="sourceLineNo">133</span>    long expectedReadRequests, long expectedFilteredReadRequests)<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    throws IOException, InterruptedException {<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    updateMetricsMap();<a name="line.135"></a>
-<span class="sourceLineNo">136</span>    System.out.println("requestsMapPrev = " + requestsMapPrev);<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    System.out.println("requestsMap = " + requestsMap);<a name="line.137"></a>
-<span class="sourceLineNo">138</span><a name="line.138"></a>
-<span class="sourceLineNo">139</span>    assertEquals(expectedReadRequests,<a name="line.139"></a>
-<span class="sourceLineNo">140</span>      requestsMap.get(Metric.REGION_READ) - requestsMapPrev.get(Metric.REGION_READ));<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    boolean tablesOnMaster = LoadBalancer.isTablesOnMaster(TEST_UTIL.getConfiguration());<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    if (tablesOnMaster) {<a name="line.142"></a>
-<span class="sourceLineNo">143</span>      // If NO tables on master, then the single regionserver in this test carries user-space<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      // tables and the meta table. The first time through, the read will be inflated by meta<a name="line.144"></a>
-<span class="sourceLineNo">145</span>      // lookups. We don't know which test will be first through since junit randomizes. This<a name="line.145"></a>
-<span class="sourceLineNo">146</span>      // method is used by a bunch of tests. Just do this check if master is hosting (system)<a name="line.146"></a>
-<span class="sourceLineNo">147</span>      // regions only.<a name="line.147"></a>
-<span class="sourceLineNo">148</span>      assertEquals(expectedReadRequests,<a name="line.148"></a>
-<span class="sourceLineNo">149</span>      requestsMap.get(Metric.SERVER_READ) - requestsMapPrev.get(Metric.SERVER_READ));<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    }<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    assertEquals(expectedFilteredReadRequests,<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      requestsMap.get(Metric.FILTERED_REGION_READ)<a name="line.152"></a>
-<span class="sourceLineNo">153</span>        - requestsMapPrev.get(Metric.FILTERED_REGION_READ));<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    assertEquals(expectedFilteredReadRequests,<a name="line.154"></a>
-<span class="sourceLineNo">155</span>      requestsMap.get(Metric.FILTERED_SERVER_READ)<a name="line.155"></a>
-<span class="sourceLineNo">156</span>        - requestsMapPrev.get(Metric.FILTERED_SERVER_READ));<a name="line.156"></a>
-<span class="sourceLineNo">157</span>    assertEquals(expectedReadRequests, resultCount);<a name="line.157"></a>
-<span class="sourceLineNo">158</span>  }<a name="line.158"></a>
-<span class="sourceLineNo">159</span><a name="line.159"></a>
-<span class="sourceLineNo">160</span>  private static void updateMetricsMap() throws IOException, InterruptedException {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    for (Metric metric : Metric.values()) {<a name="line.161"></a>
-<span class="sourceLineNo">162</span>      requestsMapPrev.put(metric, requestsMap.get(metric));<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>    ServerLoad serverLoad = null;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>    RegionLoad regionLoadOuter = null;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>    boolean metricsUpdated = false;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    for (int i = 0; i &lt; MAX_TRY; i++) {<a name="line.168"></a>
-<span class="sourceLineNo">169</span>      for (ServerName serverName : serverNames) {<a name="line.169"></a>
-<span class="sourceLineNo">170</span>        serverLoad = new ServerLoad(admin.getClusterMetrics(EnumSet.of(Option.LIVE_SERVERS))<a name="line.170"></a>
-<span class="sourceLineNo">171</span>          .getLiveServerMetrics().get(serverName));<a name="line.171"></a>
-<span class="sourceLineNo">172</span><a name="line.172"></a>
-<span class="sourceLineNo">173</span>        Map&lt;byte[], RegionLoad&gt; regionsLoad = serverLoad.getRegionsLoad();<a name="line.173"></a>
-<span class="sourceLineNo">174</span>        RegionLoad regionLoad = regionsLoad.get(regionInfo.getRegionName());<a name="line.174"></a>
-<span class="sourceLineNo">175</span>        if (regionLoad != null) {<a name="line.175"></a>
-<span class="sourceLineNo">176</span>          regionLoadOuter = regionLoad;<a name="line.176"></a>
-<span class="sourceLineNo">177</span>          for (Metric metric : Metric.values()) {<a name="line.177"></a>
-<span class="sourceLineNo">178</span>            if (getReadRequest(serverLoad, regionLoad, metric) &gt; requestsMapPrev.get(metric)) {<a name="line.178"></a>
-<span class="sourceLineNo">179</span>              for (Metric metricInner : Metric.values()) {<a name="line.179"></a>
-<span class="sourceLineNo">180</span>                requestsMap.put(metricInner, getReadRequest(serverLoad, regionLoad, metricInner));<a name="line.180"></a>
-<span class="sourceLineNo">181</span>              }<a name="line.181"></a>
-<span class="sourceLineNo">182</span>              metricsUpdated = true;<a name="line.182"></a>
-<span class="sourceLineNo">183</span>              break;<a name="line.183"></a>
-<span class="sourceLineNo">184</span>            }<a name="line.184"></a>
-<span class="sourceLineNo">185</span>          }<a name="line.185"></a>
-<span class="sourceLineNo">186</span>        }<a name="line.186"></a>
-<span class="sourceLineNo">187</span>      }<a name="line.187"></a>
-<span class="sourceLineNo">188</span>      if (metricsUpdated) {<a name="line.188"></a>
-<span class="sourceLineNo">189</span>        break;<a name="line.189"></a>
-<span class="sourceLineNo">190</span>      }<a name="line.190"></a>
-<span class="sourceLineNo">191</span>      Thread.sleep(SLEEP_MS);<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    }<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    if (!metricsUpdated) {<a name="line.193"></a>
-<span class="sourceLineNo">194</span>      for (Metric metric : Metric.values()) {<a name="line.194"></a>
-<span class="sourceLineNo">195</span>        requestsMap.put(metric, getReadRequest(serverLoad, regionLoadOuter, metric));<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      }<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    }<a name="line.197"></a>
-<span class="sourceLineNo">198</span>  }<a name="line.198"></a>
-<span class="sourceLineNo">199</span><a name="line.199"></a>
-<span class="sourceLineNo">200</span>  private static long getReadRequest(ServerLoad serverLoad, RegionLoad regionLoad, Metric metric) {<a name="line.200"></a>
-<span class="sourceLineNo">201</span>    switch (metric) {<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      case REGION_READ:<a name="line.202"></a>
-<span class="sourceLineNo">203</span>        return regionLoad.getReadRequestsCount();<a name="line.203"></a>
-<span class="sourceLineNo">204</span>      case SERVER_READ:<a name="line.204"></a>
-<span class="sourceLineNo">205</span>        return serverLoad.getReadRequestsCount();<a name="line.205"></a>
-<span class="sourceLineNo">206</span>      case FILTERED_REGION_READ:<a name="line.206"></a>
-<span class="sourceLineNo">207</span>        return regionLoad.getFilteredReadRequestsCount();<a name="line.207"></a>
-<span class="sourceLineNo">208</span>      case FILTERED_SERVER_READ:<a name="line.208"></a>
-<span class="sourceLineNo">209</span>        return serverLoad.getFilteredReadRequestsCount();<a name="line.209"></a>
-<span class="sourceLineNo">210</span>      default:<a name="line.210"></a>
-<span class="sourceLineNo">211</span>        throw new IllegalStateException();<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    }<a name="line.212"></a>
-<span class="sourceLineNo">213</span>  }<a name="line.213"></a>
-<span class="sourceLineNo">214</span><a name="line.214"></a>
-<span class="sourceLineNo">215</span>  private static void putData() throws IOException {<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    Put put;<a name="line.216"></a>
-<span class="sourceLineNo">217</span><a name="line.217"></a>
-<span class="sourceLineNo">218</span>    put = new Put(ROW1);<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    put.addColumn(CF1, COL1, VAL1);<a name="line.219"></a>
-<span class="sourceLineNo">220</span>    put.addColumn(CF1, COL2, VAL2);<a name="line.220"></a>
-<span class="sourceLineNo">221</span>    put.addColumn(CF1, COL3, VAL3);<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    table.put(put);<a name="line.222"></a>
-<span class="sourceLineNo">223</span>    put = new Put(ROW2);<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    put.addColumn(CF1, COL1, VAL2);  // put val2 instead of val1<a name="line.224"></a>
-<span class="sourceLineNo">225</span>    put.addColumn(CF1, COL2, VAL2);<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    table.put(put);<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    put = new Put(ROW3);<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    put.addColumn(CF1, COL1, VAL1);<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    put.addColumn(CF1, COL2, VAL2);<a name="line.229"></a>
-<span class="sourceLineNo">230</span>    table.put(put);<a name="line.230"></a>
-<span class="sourceLineNo">231</span>  }<a name="line.231"></a>
-<span class="sourceLineNo">232</span><a name="line.232"></a>
-<span class="sourceLineNo">233</span>  private static void putTTLExpiredData() throws IOException, InterruptedException {<a name="line.233"></a>
-<span class="sourceLineNo">234</span>    Put put;<a name="line.234"></a>
-<span class="sourceLineNo">235</span><a name="line.235"></a>
-<span class="sourceLineNo">236</span>    put = new Put(ROW1);<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    put.addColumn(CF2, COL1, VAL1);<a name="line.237"></a>
-<span class="sourceLineNo">238</span>    put.addColumn(CF2, COL2, VAL2);<a name="line.238"></a>
-<span class="sourceLineNo">239</span>    table.put(put);<a name="line.239"></a>
-<span class="sourceLineNo">240</span><a name="line.240"></a>
-<span class="sourceLineNo">241</span>    Thread.sleep(TTL * 1000);<a name="line.241"></a>
+<span class="sourceLineNo">066</span>import org.junit.Ignore;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.junit.Test;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.junit.experimental.categories.Category;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.slf4j.Logger;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.slf4j.LoggerFactory;<a name="line.70"></a>
+<span class="sourceLineNo">071</span><a name="line.71"></a>
+<span class="sourceLineNo">072</span>@Ignore // Depends on Master being able to host regions. Needs fixing.<a name="line.72"></a>
+<span class="sourceLineNo">073</span>@Category(MediumTests.class)<a name="line.73"></a>
+<span class="sourceLineNo">074</span>public class TestRegionServerReadRequestMetrics {<a name="line.74"></a>
+<span class="sourceLineNo">075</span>  private static final Logger LOG =<a name="line.75"></a>
+<span class="sourceLineNo">076</span>      LoggerFactory.getLogger(TestRegionServerReadRequestMetrics.class);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>  private static final HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();<a name="line.77"></a>
+<span class="sourceLineNo">078</span>  private static final TableName TABLE_NAME = TableName.valueOf("test");<a name="line.78"></a>
+<span class="sourceLineNo">079</span>  private static final byte[] CF1 = "c1".getBytes();<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  private static final byte[] CF2 = "c2".getBytes();<a name="line.80"></a>
+<span class="sourceLineNo">081</span><a name="line.81"></a>
+<span class="sourceLineNo">082</span>  private static final byte[] ROW1 = "a".getBytes();<a name="line.82"></a>
+<span class="sourceLineNo">083</span>  private static final byte[] ROW2 = "b".getBytes();<a name="line.83"></a>
+<span class="sourceLineNo">084</span>  private static final byte[] ROW3 = "c".getBytes();<a name="line.84"></a>
+<span class="sourceLineNo">085</span>  private static final byte[] COL1 = "q1".getBytes();<a name="line.85"></a>
+<span class="sourceLineNo">086</span>  private static final byte[] COL2 = "q2".getBytes();<a name="line.86"></a>
+<span class="sourceLineNo">087</span>  private static final byte[] COL3 = "q3".getBytes();<a name="line.87"></a>
+<span class="sourceLineNo">088</span>  private static final byte[] VAL1 = "v1".getBytes();<a name="line.88"></a>
+<span class="sourceLineNo">089</span>  private static final byte[] VAL2 = "v2".getBytes();<a name="line.89"></a>
+<span class="sourceLineNo">090</span>  private static final byte[] VAL3 = Bytes.toBytes(0L);<a name="line.90"></a>
+<span class="sourceLineNo">091</span><a name="line.91"></a>
+<span class="sourceLineNo">092</span>  private static final int MAX_TRY = 20;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>  private static final int SLEEP_MS = 100;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>  private static final int TTL = 1;<a name="line.94"></a>
+<span class="sourceLineNo">095</span><a name="line.95"></a>
+<span class="sourceLineNo">096</span>  private static Admin admin;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>  private static Collection&lt;ServerName&gt; serverNames;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>  private static Table table;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>  private static RegionInfo regionInfo;<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>  private static Map&lt;Metric, Long&gt; requestsMap = new HashMap&lt;&gt;();<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  private static Map&lt;Metric, Long&gt; requestsMapPrev = new HashMap&lt;&gt;();<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>  @BeforeClass<a name="line.104"></a>
+<span class="sourceLineNo">105</span>  public static void setUpOnce() throws Exception {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    // Default starts one regionserver only.<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    TEST_UTIL.getConfiguration().setBoolean(LoadBalancer.TABLES_ON_MASTER, true);<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    TEST_UTIL.getConfiguration().setBoolean(LoadBalancer.SYSTEM_TABLES_ON_MASTER, true);<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    TEST_UTIL.startMiniCluster();<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    admin = TEST_UTIL.getAdmin();<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    serverNames = admin.getClusterMetrics(EnumSet.of(Option.LIVE_SERVERS))<a name="line.111"></a>
+<span class="sourceLineNo">112</span>      .getLiveServerMetrics().keySet();<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    table = createTable();<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    putData();<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    List&lt;RegionInfo&gt; regions = admin.getRegions(TABLE_NAME);<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    assertEquals("Table " + TABLE_NAME + " should have 1 region", 1, regions.size());<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    regionInfo = regions.get(0);<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>    for (Metric metric : Metric.values()) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>      requestsMap.put(metric, 0L);<a name="line.120"></a>
+<span class="sourceLineNo">121</span>      requestsMapPrev.put(metric, 0L);<a name="line.121"></a>
+<span class="sourceLineNo">122</span>    }<a name="line.122"></a>
+<span class="sourceLineNo">123</span>  }<a name="line.123"></a>
+<span class="sourceLineNo">124</span><a name="line.124"></a>
+<span class="sourceLineNo">125</span>  private static Table createTable() throws IOException {<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    TableDescriptorBuilder builder = TableDescriptorBuilder.newBuilder(TABLE_NAME);<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    builder.addColumnFamily(ColumnFamilyDescriptorBuilder.of(CF1));<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    builder.addColumnFamily(ColumnFamilyDescriptorBuilder.newBuilder(CF2).setTimeToLive(TTL)<a name="line.128"></a>
+<span class="sourceLineNo">129</span>        .build());<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    admin.createTable(builder.build());<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    return TEST_UTIL.getConnection().getTable(TABLE_NAME);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>  }<a name="line.132"></a>
+<span class="sourceLineNo">133</span><a name="line.133"></a>
+<span class="sourceLineNo">134</span>  private static void testReadRequests(long resultCount,<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    long expectedReadRequests, long expectedFilteredReadRequests)<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    throws IOException, InterruptedException {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>    updateMetricsMap();<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    System.out.println("requestsMapPrev = " + requestsMapPrev);<a name="line.138"></a>
+<span class="sourceLineNo">139</span>    System.out.println("requestsMap = " + requestsMap);<a name="line.139"></a>
+<span class="sourceLineNo">140</span><a name="line.140"></a>
+<span class="sourceLineNo">141</span>    assertEquals(expectedReadRequests,<a name="line.141"></a>
+<span class="sourceLineNo">142</span>      requestsMap.get(Metric.REGION_READ) - requestsMapPrev.get(Metric.REGION_READ));<a name="line.142"></a>
+<span class="sourceLineNo">143</span>    boolean tablesOnMaster = LoadBalancer.isTablesOnMaster(TEST_UTIL.getConfiguration());<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    if (tablesOnMaster) {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>      // If NO tables on master, then the single regionserver in this test carries user-space<a name="line.145"></a>
+<span class="sourceLineNo">146</span>      // tables and the meta table. The first time through, the read will be inflated by meta<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      // lookups. We don't know which test will be first through since junit randomizes. This<a name="line.147"></a>
+<span class="sourceLineNo">148</span>      // method is used by a bunch of tests. Just do this check if master is hosting (system)<a name="line.148"></a>
+<span class="sourceLineNo">149</span>      // regions only.<a name="line.149"></a>
+<span class="sourceLineNo">150</span>      assertEquals(expectedReadRequests,<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      requestsMap.get(Metric.SERVER_READ) - requestsMapPrev.get(Metric.SERVER_READ));<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    }<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    assertEquals(expectedFilteredReadRequests,<a name="line.153"></a>
+<span class="sourceLineNo">154</span>      requestsMap.get(Metric.FILTERED_REGION_READ)<a name="line.154"></a>
+<span class="sourceLineNo">155</span>        - requestsMapPrev.get(Metric.FILTERED_REGION_READ));<a name="line.155"></a>
+<span class="sourceLineNo">156</span>    assertEquals(expectedFilteredReadRequests,<a name="line.156"></a>
+<span class="sourceLineNo">157</span>      requestsMap.get(Metric.FILTERED_SERVER_READ)<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        - requestsMapPrev.get(Metric.FILTERED_SERVER_READ));<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    assertEquals(expectedReadRequests, resultCount);<a name="line.159"></a>
+<span class="sourceLineNo">160</span>  }<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>  private static void updateMetricsMap() throws IOException, InterruptedException {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>    for (Metric metric : Metric.values()) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span>      requestsMapPrev.put(metric, requestsMap.get(metric));<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    }<a name="line.165"></a>
+<span class="sourceLineNo">166</span><a name="line.166"></a>
+<span class="sourceLineNo">167</span>    ServerLoad serverLoad = null;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    RegionLoad regionLoadOuter = null;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    boolean metricsUpdated = false;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    for (int i = 0; i &lt; MAX_TRY; i++) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>      for (ServerName serverName : serverNames) {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>        serverLoad = new ServerLoad(admin.getClusterMetrics(EnumSet.of(Option.LIVE_SERVERS))<a name="line.172"></a>
+<span class="sourceLineNo">173</span>          .getLiveServerMetrics().get(serverName));<a name="line.173"></a>
+<span class="sourceLineNo">174</span><a name="line.174"></a>
+<span class="sourceLineNo">175</span>        Map&lt;byte[], RegionLoad&gt; regionsLoad = serverLoad.getRegionsLoad();<a name="line.175"></a>
+<span class="sourceLineNo">176</span>        RegionLoad regionLoad = regionsLoad.get(regionInfo.getRegionName());<a name="line.176"></a>
+<span class="sourceLineNo">177</span>        if (regionLoad != null) {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>          regionLoadOuter = regionLoad;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>          for (Metric metric : Metric.values()) {<a name="line.179"></a>
+<span class="sourceLineNo">180</span>            if (getReadRequest(serverLoad, regionLoad, metric) &gt; requestsMapPrev.get(metric)) {<a name="line.180"></a>
+<span class="sourceLineNo">181</span>              for (Metric metricInner : Metric.values()) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                requestsMap.put(metricInner, getReadRequest(serverLoad, regionLoad, metricInner));<a name="line.182"></a>
+<span class="sourceLineNo">183</span>              }<a name="line.183"></a>
+<span class="sourceLineNo">184</span>              metricsUpdated = true;<a name="line.184"></a>
+<span class="sourceLineNo">185</span>              break;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>            }<a name="line.186"></a>
+<span class="sourceLineNo">187</span>          }<a name="line.187"></a>
+<span class="sourceLineNo">188</span>        }<a name="line.188"></a>
+<span class="sourceLineNo">189</span>      }<a name="line.189"></a>
+<span class="sourceLineNo">190</span>      if (metricsUpdated) {<a name="line.190"></a>
+<span class="sourceLineNo">191</span>        break;<a name="line.191"></a>
+<span class="sourceLineNo">192</span>      }<a name="line.192"></a>
+<span class="sourceLineNo">193</span>      Thread.sleep(SLEEP_MS);<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    }<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    if (!metricsUpdated) {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>      for (Metric metric : Metric.values()) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>        requestsMap.put(metric, getReadRequest(serverLoad, regionLoadOuter, metric));<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>  }<a name="line.200"></a>
+<span class="sourceLineNo">201</span><a name="line.201"></a>
+<span class="sourceLineNo">202</span>  private static long getReadRequest(ServerLoad serverLoad, RegionLoad regionLoad, Metric metric) {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>    switch (metric) {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>      case REGION_READ:<a name="line.204"></a>
+<span class="sourceLineNo">205</span>        return regionLoad.getReadRequestsCount();<a name="line.205"></a>
+<span class="sourceLineNo">206</span>      case SERVER_READ:<a name="line.206"></a>
+<span class="sourceLineNo">207</span>        return serverLoad.getReadRequestsCount();<a name="line.207"></a>
+<span class="sourceLineNo">208</span>      case FILTERED_REGION_READ:<a name="line.208"></a>
+<span class="sourceLineNo">209</span>        return regionLoad.getFilteredReadRequestsCount();<a name="line.209"></a>
+<span class="sourceLineNo">210</span>      case FILTERED_SERVER_READ:<a name="line.210"></a>
+<span class="sourceLineNo">211</span>        return serverLoad.getFilteredReadRequestsCount();<a name="line.211"></a>
+<span class="sourceLineNo">212</span>      default:<a name="line.212"></a>
+<span class="sourceLineNo">213</span>        throw new IllegalStateException();<a name="line.213"></a>
+<span class="sourceLineNo">214</span>    }<a name="line.214"></a>
+<span class="sourceLineNo">215</span>  }<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>  private static void putData() throws IOException {<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    Put put;<a name="line.218"></a>
+<span class="sourceLineNo">219</span><a name="line.219"></a>
+<span class="sourceLineNo">220</span>    put = new Put(ROW1);<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    put.addColumn(CF1, COL1, VAL1);<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    put.addColumn(CF1, COL2, VAL2);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    put.addColumn(CF1, COL3, VAL3);<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    table.put(put);<a name="line.224"></a>
+<span class="sourceLineNo">225</span>    put = new Put(ROW2);<a name="line.225"></a>
+<span class="sourceLineNo">226</span>    put.addColumn(CF1, COL1, VAL2);  // put val2 instead of val1<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    put.addColumn(CF1, COL2, VAL2);<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    table.put(put);<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    put = new Put(ROW3);<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    put.addColumn(CF1, COL1, VAL1);<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    put.addColumn(CF1, COL2, VAL2);<a name="line.231"></a>
+<span class="sourceLineNo">232</span>    table.put(put);<a name="line.232"></a>
+<span class="sourceLineNo">233</span>  }<a name="line.233"></a>
+<span class="sourceLineNo">234</span><a name="line.234"></a>
+<span class="sourceLineNo">235</span>  private static void putTTLExpiredData() throws IOException, InterruptedException {<a name="line.235"></a>
+<span class="sourceLineNo">236</span>    Put put;<a name="line.236"></a>
+<span class="sourceLineNo">237</span><a name="line.237"></a>
+<span class="sourceLineNo">238</span>    put = new Put(ROW1);<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    put.addColumn(CF2, COL1, VAL1);<a name="line.239"></a>
+<span class="sourceLineNo">240</span>    put.addColumn(CF2, COL2, VAL2);<a name="line.240"></a>
+<span class="sourceLineNo">241</span>    table.put(put);<a name="line.241"></a>
 <span class="sourceLineNo">242</span><a name="line.242"></a>
-<span class="sourceLineNo">243</span>    put = new Put(ROW2);<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    put.addColumn(CF2, COL1, VAL1);<a name="line.244"></a>
-<span class="sourceLineNo">245</span>    put.addColumn(CF2, COL2, VAL2);<a name="line.245"></a>
-<span class="sourceLineNo">246</span>    table.put(put);<a name="line.246"></a>
-<span class="sourceLineNo">247</span><a name="line.247"></a>
-<span class="sourceLineNo">248</span>    put = new Put(ROW3);<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    put.addColumn(CF2, COL1, VAL1);<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    put.addColumn(CF2, COL2, VAL2);<a name="line.250"></a>
-<span class="sourceLineNo">251</span>    table.put(put);<a name="line.251"></a>
-<span class="sourceLineNo">252</span>  }<a name="line.252"></a>
-<span class="sourceLineNo">253</span><a name="line.253"></a>
-<span class="sourceLineNo">254</span>  @AfterClass<a name="line.254"></a>
-<span class="sourceLineNo">255</span>  public static void tearDownOnce() throws Exception {<a name="line.255"></a>
-<span class="sourceLineNo">256</span>    TEST_UTIL.shutdownMiniCluster();<a name="line.256"></a>
-<span class="sourceLineNo">257</span>  }<a name="line.257"></a>
-<span class="sourceLineNo">258</span><a name="line.258"></a>
-<span class="sourceLineNo">259</span>  @Test<a name="line.259"></a>
-<span class="sourceLineNo">260</span>  public void testReadRequestsCountNotFiltered() throws Exception {<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    int resultCount;<a name="line.261"></a>
-<span class="sourceLineNo">262</span>    Scan scan;<a name="line.262"></a>
-<span class="sourceLineNo">263</span>    Append append;<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    Put put;<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    Increment increment;<a name="line.265"></a>
-<span class="sourceLineNo">266</span>    Get get;<a name="line.266"></a>
-<span class="sourceLineNo">267</span><a name="line.267"></a>
-<span class="sourceLineNo">268</span>    // test for scan<a name="line.268"></a>
-<span class="sourceLineNo">269</span>    scan = new Scan();<a name="line.269"></a>
-<span class="sourceLineNo">270</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.270"></a>
-<span class="sourceLineNo">271</span>      resultCount = 0;<a name="line.271"></a>
-<span class="sourceLineNo">272</span>      for (Result ignore : scanner) {<a name="line.272"></a>
-<span class="sourceLineNo">273</span>        resultCount++;<a name="line.273"></a>
-<span class="sourceLineNo">274</span>      }<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      testReadRequests(resultCount, 3, 0);<a name="line.275"></a>
-<span class="sourceLineNo">276</span>    }<a name="line.276"></a>
-<span class="sourceLineNo">277</span><a name="line.277"></a>
-<span class="sourceLineNo">278</span>    // test for scan<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    scan = new Scan(ROW2, ROW3);<a name="line.279"></a>
-<span class="sourceLineNo">280</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.280"></a>
-<span class="sourceLineNo">281</span>      resultCount = 0;<a name="line.281"></a>
-<span class="sourceLineNo">282</span>      for (Result ignore : scanner) {<a name="line.282"></a>
-<span class="sourceLineNo">283</span>        resultCount++;<a name="line.283"></a>
-<span class="sourceLineNo">284</span>      }<a name="line.284"></a>
-<span class="sourceLineNo">285</span>      testReadRequests(resultCount, 1, 0);<a name="line.285"></a>
-<span class="sourceLineNo">286</span>    }<a name="line.286"></a>
-<span class="sourceLineNo">287</span><a name="line.287"></a>
-<span class="sourceLineNo">288</span>    // test for get<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    get = new Get(ROW2);<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    Result result = table.get(get);<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    resultCount = result.isEmpty() ? 0 : 1;<a name="line.291"></a>
-<span class="sourceLineNo">292</span>    testReadRequests(resultCount, 1, 0);<a name="line.292"></a>
-<span class="sourceLineNo">293</span><a name="line.293"></a>
-<span class="sourceLineNo">294</span>    // test for increment<a name="line.294"></a>
-<span class="sourceLineNo">295</span>    increment = new Increment(ROW1);<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    increment.addColumn(CF1, COL3, 1);<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    result = table.increment(increment);<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    resultCount = result.isEmpty() ? 0 : 1;<a name="line.298"></a>
-<span class="sourceLineNo">299</span>    testReadRequests(resultCount, 1, 0);<a name="line.299"></a>
-<span class="sourceLineNo">300</span><a name="line.300"></a>
-<span class="sourceLineNo">301</span>    // test for checkAndPut<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    put = new Put(ROW1);<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    put.addColumn(CF1, COL2, VAL2);<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    boolean checkAndPut =<a name="line.304"></a>
-<span class="sourceLineNo">305</span>        table.checkAndMutate(ROW1, CF1).qualifier(COL2).ifEquals(VAL2).thenPut(put);<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    resultCount = checkAndPut ? 1 : 0;<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    testReadRequests(resultCount, 1, 0);<a name="line.307"></a>
-<span class="sourceLineNo">308</span><a name="line.308"></a>
-<span class="sourceLineNo">309</span>    // test for append<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    append = new Append(ROW1);<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    append.addColumn(CF1, COL2, VAL2);<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    result = table.append(append);<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    resultCount = result.isEmpty() ? 0 : 1;<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    testReadRequests(resultCount, 1, 0);<a name="line.314"></a>
-<span class="sourceLineNo">315</span><a name="line.315"></a>
-<span class="sourceLineNo">316</span>    // test for checkAndMutate<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    put = new Put(ROW1);<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    put.addColumn(CF1, COL1, VAL1);<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    RowMutations rm = new RowMutations(ROW1);<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    rm.add(put);<a name="line.320"></a>
-<span class="sourceLineNo">321</span>    boolean checkAndMutate =<a name="line.321"></a>
-<span class="sourceLineNo">322</span>        table.checkAndMutate(ROW1, CF1).qualifier(COL1).ifEquals(VAL1).thenMutate(rm);<a name="line.322"></a>
-<span class="sourceLineNo">323</span>    resultCount = checkAndMutate ? 1 : 0;<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    testReadRequests(resultCount, 1, 0);<a name="line.324"></a>
-<span class="sourceLineNo">325</span>  }<a name="line.325"></a>
-<span class="sourceLineNo">326</span><a name="line.326"></a>
-<span class="sourceLineNo">327</span>  @Test<a name="line.327"></a>
-<span class="sourceLineNo">328</span>  public void testReadRequestsCountWithFilter() throws Exception {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    int resultCount;<a name="line.329"></a>
-<span class="sourceLineNo">330</span>    Scan scan;<a name="line.330"></a>
-<span class="sourceLineNo">331</span><a name="line.331"></a>
-<span class="sourceLineNo">332</span>    // test for scan<a name="line.332"></a>
-<span class="sourceLineNo">333</span>    scan = new Scan();<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    scan.setFilter(new SingleColumnValueFilter(CF1, COL1, CompareFilter.CompareOp.EQUAL, VAL1));<a name="line.334"></a>
-<span class="sourceLineNo">335</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.335"></a>
-<span class="sourceLineNo">336</span>      resultCount = 0;<a name="line.336"></a>
-<span class="sourceLineNo">337</span>      for (Result ignore : scanner) {<a name="line.337"></a>
-<span class="sourceLineNo">338</span>        resultCount++;<a name="line.338"></a>
-<span class="sourceLineNo">339</span>      }<a name="line.339"></a>
-<span class="sourceLineNo">340</span>      testReadRequests(resultCount, 2, 1);<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    }<a name="line.341"></a>
-<span class="sourceLineNo">342</span><a name="line.342"></a>
-<span class="sourceLineNo">343</span>    // test for scan<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    scan = new Scan();<a name="line.344"></a>
-<span class="sourceLineNo">345</span>    scan.setFilter(new RowFilter(CompareFilter.CompareOp.EQUAL, new BinaryComparator(ROW1)));<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.346"></a>
-<span class="sourceLineNo">347</span>      resultCount = 0;<a name="line.347"></a>
-<span class="sourceLineNo">348</span>      for (Result ignore : scanner) {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>        resultCount++;<a name="line.349"></a>
-<span class="sourceLineNo">350</span>      }<a name="line.350"></a>
-<span class="sourceLineNo">351</span>      testReadRequests(resultCount, 1, 2);<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    }<a name="line.352"></a>
-<span class="sourceLineNo">353</span><a name="line.353"></a>
-<span class="sourceLineNo">354</span>    // test for scan<a name="line.354"></a>
-<span class="sourceLineNo">355</span>    scan = new Scan(ROW2, ROW3);<a name="line.355"></a>
-<span class="sourceLineNo">356</span>    scan.setFilter(new RowFilter(CompareFilter.CompareOp.EQUAL, new BinaryComparator(ROW1)));<a name="line.356"></a>
-<span class="sourceLineNo">357</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.357"></a>
-<span class="sourceLineNo">358</span>      resultCount = 0;<a name="line.358"></a>
-<span class="sourceLineNo">359</span>      for (Result ignore : scanner) {<a name="line.359"></a>
-<span class="sourceLineNo">360</span>        resultCount++;<a name="line.360"></a>
-<span class="sourceLineNo">361</span>      }<a name="line.361"></a>
-<span class="sourceLineNo">362</span>      testReadRequests(resultCount, 0, 1);<a name="line.362"></a>
-<span class="sourceLineNo">363</span>    }<a name="line.363"></a>
-<span class="sourceLineNo">364</span><a name="line.364"></a>
-<span class="sourceLineNo">365</span>    // fixme filtered get should not increase readRequestsCount<a name="line.365"></a>
-<span class="sourceLineNo">366</span>//    Get get = new Get(ROW2);<a name="line.366"></a>
-<span class="sourceLineNo">367</span>//    get.setFilter(new SingleColumnValueFilter(CF1, COL1, CompareFilter.CompareOp.EQUAL, VAL1));<a name="line.367"></a>
-<span class="sourceLineNo">368</span>//    Result result = table.get(get);<a name="line.368"></a>
-<span class="sourceLineNo">369</span>//    resultCount = result.isEmpty() ? 0 : 1;<a name="line.369"></a>
-<span class="sourceLineNo">370</span>//    testReadRequests(resultCount, 0, 1);<a name="line.370"></a>
-<span class="sourceLineNo">371</span>  }<a name="line.371"></a>
-<span class="sourceLineNo">372</span><a name="line.372"></a>
-<span class="sourceLineNo">373</span>  @Test<a name="line.373"></a>
-<span class="sourceLineNo">374</span>  public void testReadRequestsCountWithDeletedRow() throws Exception {<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    try {<a name="line.375"></a>
-<span class="sourceLineNo">376</span>      Delete delete = new Delete(ROW3);<a name="line.376"></a>
-<span class="sourceLineNo">377</span>      table.delete(delete);<a name="line.377"></a>
-<span class="sourceLineNo">378</span><a name="line.378"></a>
-<span class="sourceLineNo">379</span>      Scan scan = new Scan();<a name="line.379"></a>
-<span class="sourceLineNo">380</span>      try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>        int resultCount = 0;<a name="line.381"></a>
-<span class="sourceLineNo">382</span>        for (Result ignore : scanner) {<a name="line.382"></a>
-<span class="sourceLineNo">383</span>          resultCount++;<a name="line.383"></a>
-<span class="sourceLineNo">384</span>        }<a name="line.384"></a>
-<span class="sourceLineNo">385</span>        testReadRequests(resultCount, 2, 1);<a name="line.385"></a>
-<span class="sourceLineNo">386</span>      }<a name="line.386"></a>
-<span class="sourceLineNo">387</span>    } finally {<a name="line.387"></a>
-<span class="sourceLineNo">388</span>      Put put = new Put(ROW3);<a name="line.388"></a>
-<span class="sourceLineNo">389</span>      put.addColumn(CF1, COL1, VAL1);<a name="line.389"></a>
-<span class="sourceLineNo">390</span>      put.addColumn(CF1, COL2, VAL2);<a name="line.390"></a>
-<span class="sourceLineNo">391</span>      table.put(put);<a name="line.391"></a>
-<span class="sourceLineNo">392</span>    }<a name="line.392"></a>
-<span class="sourceLineNo">393</span>  }<a name="line.393"></a>
-<span class="sourceLineNo">394</span><a name="line.394"></a>
-<span class="sourceLineNo">395</span>  @Test<a name="line.395"></a>
-<span class="sourceLineNo">396</span>  public void testReadRequestsCountWithTTLExpiration() throws Exception {<a name="line.396"></a>
-<span class="sourceLineNo">397</span>    putTTLExpiredData();<a name="line.397"></a>
-<span class="sourceLineNo">398</span><a name="line.398"></a>
-<span class="sourceLineNo">399</span>    Scan scan = new Scan();<a name="line.399"></a>
-<span class="sourceLineNo">400</span>    scan.addFamily(CF2);<a name="line.400"></a>
-<span class="sourceLineNo">401</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>      int resultCount = 0;<a name="line.402"></a>
-<span class="sourceLineNo">403</span>      for (Result ignore : scanner) {<a name="line.403"></a>
-<span class="sourceLineNo">404</span>        resultCount++;<a name="line.404"></a>
-<span class="sourceLineNo">405</span>      }<a name="line.405"></a>
-<span class="sourceLineNo">406</span>      testReadRequests(resultCount, 2, 1);<a name="line.406"></a>
-<span class="sourceLineNo">407</span>    }<a name="line.407"></a>
-<span class="sourceLineNo">408</span>  }<a name="line.408"></a>
-<span class="sourceLineNo">409</span><a name="line.409"></a>
-<span class="sourceLineNo">410</span>  @Test<a name="line.410"></a>
-<span class="sourceLineNo">411</span>  public void testReadRequestsWithCoprocessor() throws Exception {<a name="line.411"></a>
-<span class="sourceLineNo">412</span>    TableName tableName = TableName.valueOf("testReadRequestsWithCoprocessor");<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    TableDescriptorBuilder builder = TableDescriptorBuilder.newBuilder(tableName);<a name="line.413"></a>
-<span class="sourceLineNo">414</span>    builder.addColumnFamily(ColumnFamilyDescriptorBuilder.of(CF1));<a name="line.414"></a>
-<span class="sourceLineNo">415</span>    builder.addCoprocessor(ScanRegionCoprocessor.class.getName());<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    admin.createTable(builder.build());<a name="line.416"></a>
-<span class="sourceLineNo">417</span><a name="line.417"></a>
-<span class="sourceLineNo">418</span>    try {<a name="line.418"></a>
-<span class="sourceLineNo">419</span>      TEST_UTIL.waitTableAvailable(tableName);<a name="line.419"></a>
-<span class="sourceLineNo">420</span>      List&lt;RegionInfo&gt; regionInfos = admin.getRegions(tableName);<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      assertEquals("Table " + TABLE_NAME + " should have 1 region", 1, regionInfos.size());<a name="line.421"></a>
-<span class="sourceLineNo">422</span>      boolean success = true;<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      int i = 0;<a name="line.423"></a>
-<span class="sourceLineNo">424</span>      for (; i &lt; MAX_TRY; i++) {<a name="line.424"></a>
-<span class="sourceLineNo">425</span>        try {<a name="line.425"></a>
-<span class="sourceLineNo">426</span>          testReadRequests(regionInfos.get(0).getRegionName(), 3);<a name="line.426"></a>
-<span class="sourceLineNo">427</span>        } catch (Throwable t) {<a name="line.427"></a>
-<span class="sourceLineNo">428</span>          LOG.warn("Got exception when try " + i + " times", t);<a name="line.428"></a>
-<span class="sourceLineNo">429</span>          Thread.sleep(SLEEP_MS);<a name="line.429"></a>
-<span class="sourceLineNo">430</span>          success = false;<a name="line.430"></a>
-<span class="sourceLineNo">431</span>        }<a name="line.431"></a>
-<span class="sourceLineNo">432</span>        if (success) {<a name="line.432"></a>
-<span class="sourceLineNo">433</span>          break;<a name="line.433"></a>
-<span class="sourceLineNo">434</span>        }<a name="line.434"></a>
-<span class="sourceLineNo">435</span>      }<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      if (i == MAX_TRY) {<a name="line.436"></a>
-<span class="sourceLineNo">437</span>        fail("Failed to get right read requests metric after try " + i + " times");<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      }<a name="line.438"></a>
-<span class="sourceLineNo">439</span>    } finally {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>      admin.disableTable(tableName);<a name="line.440"></a>
-<span class="sourceLineNo">441</span>      admin.deleteTable(tableName);<a name="line.441"></a>
-<span class="sourceLineNo">442</span>    }<a name="line.442"></a>
-<span class="sourceLineNo">443</span>  }<a name="line.443"></a>
-<span class="sourceLineNo">444</span><a name="line.444"></a>
-<span class="sourceLineNo">445</span>  private void testReadRequests(byte[] regionName, int expectedReadRequests) throws Exception {<a name="line.445"></a>
-<span class="sourceLineNo">446</span>    for (ServerName serverName : serverNames) {<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      ServerLoad serverLoad = new ServerLoad(admin.getClusterMetrics(<a name="line.447"></a>
-<span class="sourceLineNo">448</span>        EnumSet.of(Option.LIVE_SERVERS)).getLiveServerMetrics().get(serverName));<a name="line.448"></a>
-<span class="sourceLineNo">449</span>      Map&lt;byte[], RegionLoad&gt; regionsLoad = serverLoad.getRegionsLoad();<a name="line.449"></a>
-<span class="sourceLineNo">450</span>      RegionLoad regionLoad = regionsLoad.get(regionName);<a name="line.450"></a>
-<span class="sourceLineNo">451</span>      if (regionLoad != null) {<a name="line.451"></a>
-<span class="sourceLineNo">452</span>        LOG.debug("server read request is " + serverLoad.getReadRequestsCount()<a name="line.452"></a>
-<span class="sourceLineNo">453</span>            + ", region read request is " + regionLoad.getReadRequestsCount());<a name="line.453"></a>
-<span class="sourceLineNo">454</span>        assertEquals(3, serverLoad.getReadRequestsCount());<a name="line.454"></a>
-<span class="sourceLineNo">455</span>        assertEquals(3, regionLoad.getReadRequestsCount());<a name="line.455"></a>
-<span class="sourceLineNo">456</span>      }<a name="line.456"></a>
-<span class="sourceLineNo">457</span>    }<a name="line.457"></a>
-<span class="sourceLineNo">458</span>  }<a name="line.458"></a>
-<span class="sourceLineNo">459</span><a name="line.459"></a>
-<span class="sourceLineNo">460</span>  public static class ScanRegionCoprocessor implements RegionCoprocessor, RegionObserver {<a name="line.460"></a>
-<span class="sourceLineNo">461</span>    @Override<a name="line.461"></a>
-<span class="sourceLineNo">462</span>    public Optional&lt;RegionObserver&gt; getRegionObserver() {<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      return Optional.of(this);<a name="line.463"></a>
-<span class="sourceLineNo">464</span>    }<a name="line.464"></a>
-<span class="sourceLineNo">465</span><a name="line.465"></a>
-<span class="sourceLineNo">466</span>    @Override<a name="line.466"></a>
-<span class="sourceLineNo">467</span>    public void postOpen(ObserverContext&lt;RegionCoprocessorEnvironment&gt; c) {<a name="line.467"></a>
-<span class="sourceLineNo">468</span>      RegionCoprocessorEnvironment env = c.getEnvironment();<a name="line.468"></a>
-<span class="sourceLineNo">469</span>      Region region = env.getRegion();<a name="line.469"></a>
-<span class="sourceLineNo">470</span>      try {<a name="line.470"></a>
-<span class="sourceLineNo">471</span>        putData(region);<a name="line.471"></a>
-<span class="sourceLineNo">472</span>        RegionScanner scanner = region.getScanner(new Scan());<a name="line.472"></a>
-<span class="sourceLineNo">473</span>        List&lt;Cell&gt; result = new LinkedList&lt;&gt;();<a name="line.473"></a>
-<span class="sourceLineNo">474</span>        while (scanner.next(result)) {<a name="line.474"></a>
-<span class="sourceLineNo">475</span>          result.clear();<a name="line.475"></a>
-<span class="sourceLineNo">476</span>        }<a name="line.476"></a>
-<span class="sourceLineNo">477</span>      } catch (Exception e) {<a name="line.477"></a>
-<span class="sourceLineNo">478</span>        LOG.warn("Got exception in coprocessor", e);<a name="line.478"></a>
-<span class="sourceLineNo">479</span>      }<a name="line.479"></a>
-<span class="sourceLineNo">480</span>    }<a name="line.480"></a>
-<span class="sourceLineNo">481</span><a name="line.481"></a>
-<span class="sourceLineNo">482</span>    private void putData(Region region) throws Exception {<a name="line.482"></a>
-<span class="sourceLineNo">483</span>      Put put = new Put(ROW1);<a name="line.483"></a>
-<span class="sourceLineNo">484</span>      put.addColumn(CF1, COL1, VAL1);<a name="line.484"></a>
-<span class="sourceLineNo">485</span>      region.put(put);<a name="line.485"></a>
-<span class="sourceLineNo">486</span>      put = new Put(ROW2);<a name="line.486"></a>
-<span class="sourceLineNo">487</span>      put.addColumn(CF1, COL1, VAL1);<a name="line.487"></a>
-<span class="sourceLineNo">488</span>      region.put(put);<a name="line.488"></a>
-<span class="sourceLineNo">489</span>      put = new Put(ROW3);<a name="line.489"></a>
-<span class="sourceLineNo">490</span>      put.addColumn(CF1, COL1, VAL1);<a name="line.490"></a>
-<span class="sourceLineNo">491</span>      region.put(put);<a name="line.491"></a>
-<span class="sourceLineNo">492</span>    }<a name="line.492"></a>
-<span class="sourceLineNo">493</span>  }<a name="line.493"></a>
-<span class="sourceLineNo">494</span><a name="line.494"></a>
-<span class="sourceLineNo">495</span>  private enum Metric {REGION_READ, SERVER_READ, FILTERED_REGION_READ, FILTERED_SERVER_READ}<a name="line.495"></a>
-<span class="sourceLineNo">496</span>}<a name="line.496"></a>
+<span class="sourceLineNo">243</span>    Thread.sleep(TTL * 1000);<a name="line.243"></a>
+<span class="sourceLineNo">244</span><a name="line.244"></a>
+<span class="sourceLineNo">245</span>    put = new Put(ROW2);<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    put.addColumn(CF2, COL1, VAL1);<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    put.addColumn(CF2, COL2, VAL2);<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    table.put(put);<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>    put = new Put(ROW3);<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    put.addColumn(CF2, COL1, VAL1);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>    put.addColumn(CF2, COL2, VAL2);<a name="line.252"></a>
+<span class="sourceLineNo">253</span>    table.put(put);<a name="line.253"></a>
+<span class="sourceLineNo">254</span>  }<a name="line.254"></a>
+<span class="sourceLineNo">255</span><a name="line.255"></a>
+<span class="sourceLineNo">256</span>  @AfterClass<a name="line.256"></a>
+<span class="sourceLineNo">257</span>  public static void tearDownOnce() throws Exception {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>    TEST_UTIL.shutdownMiniCluster();<a name="line.258"></a>
+<span class="sourceLineNo">259</span>  }<a name="line.259"></a>
+<span class="sourceLineNo">260</span><a name="line.260"></a>
+<span class="sourceLineNo">261</span>  @Test<a name="line.261"></a>
+<span class="sourceLineNo">262</span>  public void testReadRequestsCountNotFiltered() throws Exception {<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    int resultCount;<a name="line.263"></a>
+<span class="sourceLineNo">264</span>    Scan scan;<a name="line.264"></a>
+<span class="sourceLineNo">265</span>    Append append;<a name="line.265"></a>
+<span class="sourceLineNo">266</span>    Put put;<a name="line.266"></a>
+<span class="sourceLineNo">267</span>    Increment increment;<a name="line.267"></a>
+<span class="sourceLineNo">268</span>    Get get;<a name="line.268"></a>
+<span class="sourceLineNo">269</span><a name="line.269"></a>
+<span class="sourceLineNo">270</span>    // test for scan<a name="line.270"></a>
+<span class="sourceLineNo">271</span>    scan = new Scan();<a name="line.271"></a>
+<span class="sourceLineNo">272</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>      resultCount = 0;<a name="line.273"></a>
+<span class="sourceLineNo">274</span>      for (Result ignore : scanner) {<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        resultCount++;<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      }<a name="line.276"></a>
+<span class="sourceLineNo">277</span>      testReadRequests(resultCount, 3, 0);<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    }<a name="line.278"></a>
+<span class="sourceLineNo">279</span><a name="line.279"></a>
+<span class="sourceLineNo">280</span>    // test for scan<a name="line.280"></a>
+<span class="sourceLineNo">281</span>    scan = new Scan(ROW2, ROW3);<a name="line.281"></a>
+<span class="sourceLineNo">282</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      resultCount = 0;<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      for (Result ignore : scanner) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>        resultCount++;<a name="line.285"></a>
+<span class="sourceLineNo">286</span>      }<a name="line.286"></a>
+<span class="sourceLineNo">287</span>      testReadRequests(resultCount, 1, 0);<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>    // test for get<a name="line.290"></a>
+<span class="sourceLineNo">291</span>    get = new Get(ROW2);<a name="line.291"></a>
+<span class="sourceLineNo">292</span>    Result result = table.get(get);<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    resultCount = result.isEmpty() ? 0 : 1;<a name="line.293"></a>
+<span class="sourceLineNo">294</span>    testReadRequests(resultCount, 1, 0);<a name="line.294"></a>
+<span class="sourceLineNo">295</span><a name="line.295"></a>
+<span class="sourceLineNo">296</span>    // test for increment<a name="line.296"></a>
+<span class="sourceLineNo">297</span>    increment = new Increment(ROW1);<a name="line.297"></a>
+<span class="sourceLineNo">298</span>    increment.addColumn(CF1, COL3, 1);<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    result = table.increment(increment);<a name="line.299"></a>
+<span class="sourceLineNo">300</span>    resultCount = result.isEmpty() ? 0 : 1;<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    testReadRequests(resultCount, 1, 0);<a name="line.301"></a>
+<span class="sourceLineNo">302</span><a name="line.302"></a>
+<span class="sourceLineNo">303</span>    // test for checkAndPut<a name="line.303"></a>
+<span class="sourceLineNo">304</span>    put = new Put(ROW1);<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    put.addColumn(CF1, COL2, VAL2);<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    boolean checkAndPut =<a name="line.306"></a>
+<span class="sourceLineNo">307</span>        table.checkAndMutate(ROW1, CF1).qualifier(COL2).ifEquals(VAL2).thenPut(put);<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    resultCount = checkAndPut ? 1 : 0;<a name="line.308"></a>
+<span class="sourceLineNo">309</span>    testReadRequests(resultCount, 1, 0);<a name="line.309"></a>
+<span class="sourceLineNo">310</span><a name="line.310"></a>
+<span class="sourceLineNo">311</span>    // test for append<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    append = new Append(ROW1);<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    append.addColumn(CF1, COL2, VAL2);<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    result = table.append(append);<a name="line.314"></a>
+<span class="sourceLineNo">315</span>    resultCount = result.isEmpty() ? 0 : 1;<a name="line.315"></a>
+<span class="sourceLineNo">316</span>    testReadRequests(resultCount, 1, 0);<a name="line.316"></a>
+<span class="sourceLineNo">317</span><a name="line.317"></a>
+<span class="sourceLineNo">318</span>    // test for checkAndMutate<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    put = new Put(ROW1);<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    put.addColumn(CF1, COL1, VAL1);<a name="line.320"></a>
+<span class="sourceLineNo">321</span>    RowMutations rm = new RowMutations(ROW1);<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    rm.add(put);<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    boolean checkAndMutate =<a name="line.323"></a>
+<span class="sourceLineNo">324</span>        table.checkAndMutate(ROW1, CF1).qualifier(COL1).ifEquals(VAL1).thenMutate(rm);<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    resultCount = checkAndMutate ? 1 : 0;<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    testReadRequests(resultCount, 1, 0);<a name="line.326"></a>
+<span class="sourceLineNo">327</span>  }<a name="line.327"></a>
+<span class="sourceLineNo">328</span><a name="line.328"></a>
+<span class="sourceLineNo">329</span>  @Test<a name="line.329"></a>
+<span class="sourceLineNo">330</span>  public void testReadRequestsCountWithFilter() throws Exception {<a name="line.330"></a>
+<span class="sourceLineNo">331</span>    int resultCount;<a name="line.331"></a>
+<span class="sourceLineNo">332</span>    Scan scan;<a name="line.332"></a>
+<span class="sourceLineNo">333</span><a name="line.333"></a>
+<span class="sourceLineNo">334</span>    // test for scan<a name="line.334"></a>
+<span class="sourceLineNo">335</span>    scan = new Scan();<a name="line.335"></a>
+<span class="sourceLineNo">336</span>    scan.setFilter(new SingleColumnValueFilter(CF1, COL1, CompareFilter.CompareOp.EQUAL, VAL1));<a name="line.336"></a>
+<span class="sourceLineNo">337</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.337"></a>
+<span class="sourceLineNo">338</span>      resultCount = 0;<a name="line.338"></a>
+<span class="sourceLineNo">339</span>      for (Result ignore : scanner) {<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        resultCount++;<a name="line.340"></a>
+<span class="sourceLineNo">341</span>      }<a name="line.341"></a>
+<span class="sourceLineNo">342</span>      testReadRequests(resultCount, 2, 1);<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>    // test for scan<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    scan = new Scan();<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    scan.setFilter(new RowFilter(CompareFilter.CompareOp.EQUAL, new BinaryComparator(ROW1)));<a name="line.347"></a>
+<span class="sourceLineNo">348</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>      resultCount = 0;<a name="line.349"></a>
+<span class="sourceLineNo">350</span>      for (Result ignore : scanner) {<a name="line.350"></a>
+<span class="sourceLineNo">351</span>        resultCount++;<a name="line.351"></a>
+<span class="sourceLineNo">352</span>      }<a name="line.352"></a>
+<span class="sourceLineNo">353</span>      testReadRequests(resultCount, 1, 2);<a name="line.353"></a>
+<span class="sourceLineNo">354</span>    }<a name="line.354"></a>
+<span class="sourceLineNo">355</span><a name="line.355"></a>
+<span class="sourceLineNo">356</span>    // test for scan<a name="line.356"></a>
+<span class="sourceLineNo">357</span>    scan = new Scan(ROW2, ROW3);<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    scan.setFilter(new RowFilter(CompareFilter.CompareOp.EQUAL, new BinaryComparator(ROW1)));<a name="line.358"></a>
+<span class="sourceLineNo">359</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.359"></a>
+<span class="sourceLineNo">360</span>      resultCount = 0;<a name="line.360"></a>
+<span class="sourceLineNo">361</span>      for (Result ignore : scanner) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>        resultCount++;<a name="line.362"></a>
+<span class="sourceLineNo">363</span>      }<a name="line.363"></a>
+<span class="sourceLineNo">364</span>      testReadRequests(resultCount, 0, 1);<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    }<a name="line.365"></a>
+<span class="sourceLineNo">366</span><a name="line.366"></a>
+<span class="sourceLineNo">367</span>    // fixme filtered get should not increase readRequestsCount<a name="line.367"></a>
+<span class="sourceLineNo">368</span>//    Get get = new Get(ROW2);<a name="line.368"></a>
+<span class="sourceLineNo">369</span>//    get.setFilter(new SingleColumnValueFilter(CF1, COL1, CompareFilter.CompareOp.EQUAL, VAL1));<a name="line.369"></a>
+<span class="sourceLineNo">370</span>//    Result result = table.get(get);<a name="line.370"></a>
+<span class="sourceLineNo">371</span>//    resultCount = result.isEmpty() ? 0 : 1;<a name="line.371"></a>
+<span class="sourceLineNo">372</span>//    testReadRequests(resultCount, 0, 1);<a name="line.372"></a>
+<span class="sourceLineNo">373</span>  }<a name="line.373"></a>
+<span class="sourceLineNo">374</span><a name="line.374"></a>
+<span class="sourceLineNo">375</span>  @Test<a name="line.375"></a>
+<span class="sourceLineNo">376</span>  public void testReadRequestsCountWithDeletedRow() throws Exception {<a name="line.376"></a>
+<span class="sourceLineNo">377</span>    try {<a name="line.377"></a>
+<span class="sourceLineNo">378</span>      Delete delete = new Delete(ROW3);<a name="line.378"></a>
+<span class="sourceLineNo">379</span>      table.delete(delete);<a name="line.379"></a>
+<span class="sourceLineNo">380</span><a name="line.380"></a>
+<span class="sourceLineNo">381</span>      Scan scan = new Scan();<a name="line.381"></a>
+<span class="sourceLineNo">382</span>      try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.382"></a>
+<span class="sourceLineNo">383</span>        int resultCount = 0;<a name="line.383"></a>
+<span class="sourceLineNo">384</span>        for (Result ignore : scanner) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>          resultCount++;<a name="line.385"></a>
+<span class="sourceLineNo">386</span>        }<a name="line.386"></a>
+<span class="sourceLineNo">387</span>        testReadRequests(resultCount, 2, 1);<a name="line.387"></a>
+<span class="sourceLineNo">388</span>      }<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    } finally {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>      Put put = new Put(ROW3);<a name="line.390"></a>
+<span class="sourceLineNo">391</span>      put.addColumn(CF1, COL1, VAL1);<a name="line.391"></a>
+<span class="sourceLineNo">392</span>      put.addColumn(CF1, COL2, VAL2);<a name="line.392"></a>
+<span class="sourceLineNo">393</span>      table.put(put);<a name="line.393"></a>
+<span class="sourceLineNo">394</span>    }<a name="line.394"></a>
+<span class="sourceLineNo">395</span>  }<a name="line.395"></a>
+<span class="sourceLineNo">396</span><a name="line.396"></a>
+<span class="sourceLineNo">397</span>  @Test<a name="line.397"></a>
+<span class="sourceLineNo">398</span>  public void testReadRequestsCountWithTTLExpiration() throws Exception {<a name="line.398"></a>
+<span class="sourceLineNo">399</span>    putTTLExpiredData();<a name="line.399"></a>
+<span class="sourceLineNo">400</span><a name="line.400"></a>
+<span class="sourceLineNo">401</span>    Scan scan = new Scan();<a name="line.401"></a>
+<span class="sourceLineNo">402</span>    scan.addFamily(CF2);<a name="line.402"></a>
+<span class="sourceLineNo">403</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.403"></a>
+<span class="sourceLineNo">404</span>      int resultCount = 0;<a name="line.404"></a>
+<span class="sourceLineNo">405</span>      for (Result ignore : scanner) {<a name="line.405"></a>
+<span class="sourceLineNo">406</span>        resultCount++;<a name="line.406"></a>
+<span class="sourceLineNo">407</span>      }<a name="line.407"></a>
+<span class="sourceLineNo">408</span>      testReadRequests(resultCount, 2, 1);<a name="line.408"></a>
+<span class="sourceLineNo">409</span>    }<a name="line.409"></a>
+<span class="sourceLineNo">410</span>  }<a name="line.410"></a>
+<span class="sourceLineNo">411</span><a name="line.411"></a>
+<span class="sourceLineNo">412</span>  @Test<a name="line.412"></a>
+<span class="sourceLineNo">413</span>  public void testReadRequestsWithCoprocessor() throws Exception {<a name="line.413"></a>
+<span class="sourceLineNo">414</span>    TableName tableName = TableName.valueOf("testReadRequestsWithCoprocessor");<a name="line.414"></a>
+<span class="sourceLineNo">415</span>    TableDescriptorBuilder builder = TableDescriptorBuilder.newBuilder(tableName);<a name="line.415"></a>
+<span class="sourceLineNo">416</span>    builder.addColumnFamily(ColumnFamilyDescriptorBuilder.of(CF1));<a name="line.416"></a>
+<span class="sourceLineNo">417</span>    builder.addCoprocessor(ScanRegionCoprocessor.class.getName());<a name="line.417"></a>
+<span class="sourceLineNo">418</span>    admin.createTable(builder.build());<a name="line.418"></a>
+<span class="sourceLineNo">419</span><a name="line.419"></a>
+<span class="sourceLineNo">420</span>    try {<a name="line.420"></a>
+<span class="sourceLineNo">421</span>      TEST_UTIL.waitTableAvailable(tableName);<a name="line.421"></a>
+<span class="sourceLineNo">422</span>      List&lt;RegionInfo&gt; regionInfos = admin.getRegions(tableName);<a name="line.422"></a>
+<span class="sourceLineNo">423</span>      assertEquals("Table " + TABLE_NAME + " should have 1 region", 1, regionInfos.size());<a name="line.423"></a>
+<span class="sourceLineNo">424</span>      boolean success = true;<a name="line.424"></a>
+<span class="sourceLineNo">425</span>      int i = 0;<a name="line.425"></a>
+<span class="sourceLineNo">426</span>      for (; i &lt; MAX_TRY; i++) {<a name="line.426"></a>
+<span class="sourceLineNo">427</span>        try {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>          testReadRequests(regionInfos.get(0).getRegionName(), 3);<a name="line.428"></a>
+<span class="sourceLineNo">429</span>        } catch (Throwable t) {<a name="line.429"></a>
+<span class="sourceLineNo">430</span>          LOG.warn("Got exception when try " + i + " times", t);<a name="line.430"></a>
+<span class="sourceLineNo">431</span>          Thread.sleep(SLEEP_MS);<a name="line.431"></a>
+<span class="sourceLineNo">432</span>          success = false;<a name="line.432"></a>
+<span class="sourceLineNo">433</span>        }<a name="line.433"></a>
+<span class="sourceLineNo">434</span>        if (success) {<a name="line.434"></a>
+<span class="sourceLineNo">435</span>          break;<a name="line.435"></a>
+<span class="sourceLineNo">436</span>        }<a name="line.436"></a>
+<span class="sourceLineNo">437</span>      }<a name="line.437"></a>
+<span class="sourceLineNo">438</span>      if (i == MAX_TRY) {<a name="line.438"></a>
+<span class="sourceLineNo">439</span>        fail("Failed to get right read requests metric after try " + i + " times");<a name="line.439"></a>
+<span class="sourceLineNo">440</span>      }<a name="line.440"></a>
+<span class="sourceLineNo">441</span>    } finally {<a name="line.441"></a>
+<span class="sourceLineNo">442</span>      admin.disableTable(tableName);<a name="line.442"></a>
+<span class="sourceLineNo">443</span>      admin.deleteTable(tableName);<a name="line.443"></a>
+<span class="sourceLineNo">444</span>    }<a name="line.444"></a>
+<span class="sourceLineNo">445</span>  }<a name="line.445"></a>
+<span class="sourceLineNo">446</span><a name="line.446"></a>
+<span class="sourceLineNo">447</span>  private void testReadRequests(byte[] regionName, int expectedReadRequests) throws Exception {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>    for (ServerName serverName : serverNames) {<a name="line.448"></a>
+<span class="sourceLineNo">449</span>      ServerLoad serverLoad = new ServerLoad(admin.getClusterMetrics(<a name="line.449"></a>
+<span class="sourceLineNo">450</span>        EnumSet.of(Option.LIVE_SERVERS)).getLiveServerMetrics().get(serverName));<a name="line.450"></a>
+<span class="sourceLineNo">451</span>      Map&lt;byte[], RegionLoad&gt; regionsLoad = serverLoad.getRegionsLoad();<a name="line.451"></a>
+<span class="sourceLineNo">452</span>      RegionLoad regionLoad = regionsLoad.get(regionName);<a name="line.452"></a>
+<span class="sourceLineNo">453</span>      if (regionLoad != null) {<a name="line.453"></a>
+<span class="sourceLineNo">454</span>        LOG.debug("server read request is " + serverLoad.getReadRequestsCount()<a name="line.454"></a>
+<span class="sourceLineNo">455</span>            + ", region read request is " + regionLoad.getReadRequestsCount());<a name="line.455"></a>
+<span class="sourceLineNo">456</span>        assertEquals(3, serverLoad.getReadRequestsCount());<a name="line.456"></a>
+<span class="sourceLineNo">457</span>        assertEquals(3, regionLoad.getReadRequestsCount());<a name="line.457"></a>
+<span class="sourceLineNo">458</span>      }<a name="line.458"></a>
+<span class="sourceLineNo">459</span>    }<a name="line.459"></a>
+<span class="sourceLineNo">460</span>  }<a name="line.460"></a>
+<span class="sourceLineNo">461</span><a name="line.461"></a>
+<span class="sourceLineNo">462</span>  public static class ScanRegionCoprocessor implements RegionCoprocessor, RegionObserver {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>    @Override<a name="line.463"></a>
+<span class="sourceLineNo">464</span>    public Optional&lt;RegionObserver&gt; getRegionObserver() {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>      return Optional.of(this);<a name="line.465"></a>
+<span class="sourceLineNo">466</span>    }<a name="line.466"></a>
+<span class="sourceLineNo">467</span><a name="line.467"></a>
+<span class="sourceLineNo">468</span>    @Override<a name="line.468"></a>
+<span class="sourceLineNo">469</span>    public void postOpen(ObserverContext&lt;RegionCoprocessorEnvironment&gt; c) {<a name="line.469"></a>
+<span class="sourceLineNo">470</span>      RegionCoprocessorEnvironment env = c.getEnvironment();<a name="line.470"></a>
+<span class="sourceLineNo">471</span>      Region region = env.getRegion();<a name="line.471"></a>
+<span class="sourceLineNo">472</span>      try {<a name="line.472"></a>
+<span class="sourceLineNo">473</span>        putData(region);<a name="line.473"></a>
+<span class="sourceLineNo">474</span>        RegionScanner scanner = region.getScanner(new Scan());<a name="line.474"></a>
+<span class="sourceLineNo">475</span>        List&lt;Cell&gt; result = new LinkedList&lt;&gt;();<a name="line.475"></a>
+<span class="sourceLineNo">476</span>        while (scanner.next(result)) {<a name="line.476"></a>
+<span class="sourceLineNo">477</span>          result.clear();<a name="line.477"></a>
+<span class="sourceLineNo">478</span>        }<a name="line.478"></a>
+<span class="sourceLineNo">479</span>      } catch (Exception e) {<a name="line.479"></a>
+<span class="sourceLineNo">480</span>        LOG.warn("Got exception in coprocessor", e);<a name="line.480"></a>
+<span class="sourceLineNo">481</span>      }<a name="line.481"></a>
+<span class="sourceLineNo">482</span>    }<a name="line.482"></a>
+<span class="sourceLineNo">483</span><a name="line.483"></a>
+<span class="sourceLineNo">484</span>    private void putData(Region region) throws Exception {<a name="line.484"></a>
+<span class="sourceLineNo">485</span>      Put put = new Put(ROW1);<a name="line.485"></a>
+<span class="sourceLineNo">486</span>      put.addColumn(CF1, COL1, VAL1);<a name="line.486"></a>
+<span class="sourceLineNo">487</span>      region.put(put);<a name="line.487"></a>
+<span class="sourceLineNo">488</span>      put = new Put(ROW2);<a name="line.488"></a>
+<span class="sourceLineNo">489</span>      put.addColumn(CF1, COL1, VAL1);<a name="line.489"></a>
+<span class="sourceLineNo">490</span>      region.put(put);<a name="line.490"></a>
+<span class="sourceLineNo">491</span>      put = new Put(ROW3);<a name="line.491"></a>
+<span class="sourceLineNo">492</span>      put.addColumn(CF1, COL1, VAL1);<a name="line.492"></a>
+<span class="sourceLineNo">493</span>      region.put(put);<a name="line.493"></a>
+<span class="sourceLineNo">494</span>    }<a name="line.494"></a>
+<span class="sourceLineNo">495</span>  }<a name="line.495"></a>
+<span class="sourceLineNo">496</span><a name="line.496"></a>
+<span class="sourceLineNo">497</span>  private enum Metric {REGION_READ, SERVER_READ, FILTERED_REGION_READ, FILTERED_SERVER_READ}<a name="line.497"></a>
+<span class="sourceLineNo">498</span>}<a name="line.498"></a>
 
 
 


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html
index 24db4ca..bf924bf 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html
@@ -6,7 +6,7 @@
 </head>
 <body>
 <div class="sourceContainer">
-<pre><span class="sourceLineNo">001</span>/**<a name="line.1"></a>
+<pre><span class="sourceLineNo">001</span>/*<a name="line.1"></a>
 <span class="sourceLineNo">002</span> *<a name="line.2"></a>
 <span class="sourceLineNo">003</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.3"></a>
 <span class="sourceLineNo">004</span> * or more contributor license agreements.  See the NOTICE file<a name="line.4"></a>
@@ -71,437 +71,439 @@
 <span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.63"></a>
 <span class="sourceLineNo">064</span>import org.junit.AfterClass;<a name="line.64"></a>
 <span class="sourceLineNo">065</span>import org.junit.BeforeClass;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.junit.Test;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.junit.experimental.categories.Category;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.slf4j.Logger;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.slf4j.LoggerFactory;<a name="line.69"></a>
-<span class="sourceLineNo">070</span><a name="line.70"></a>
-<span class="sourceLineNo">071</span>@Category(MediumTests.class)<a name="line.71"></a>
-<span class="sourceLineNo">072</span>public class TestRegionServerReadRequestMetrics {<a name="line.72"></a>
-<span class="sourceLineNo">073</span>  private static final Logger LOG =<a name="line.73"></a>
-<span class="sourceLineNo">074</span>      LoggerFactory.getLogger(TestRegionServerReadRequestMetrics.class);<a name="line.74"></a>
-<span class="sourceLineNo">075</span>  private static final HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();<a name="line.75"></a>
-<span class="sourceLineNo">076</span>  private static final TableName TABLE_NAME = TableName.valueOf("test");<a name="line.76"></a>
-<span class="sourceLineNo">077</span>  private static final byte[] CF1 = "c1".getBytes();<a name="line.77"></a>
-<span class="sourceLineNo">078</span>  private static final byte[] CF2 = "c2".getBytes();<a name="line.78"></a>
-<span class="sourceLineNo">079</span><a name="line.79"></a>
-<span class="sourceLineNo">080</span>  private static final byte[] ROW1 = "a".getBytes();<a name="line.80"></a>
-<span class="sourceLineNo">081</span>  private static final byte[] ROW2 = "b".getBytes();<a name="line.81"></a>
-<span class="sourceLineNo">082</span>  private static final byte[] ROW3 = "c".getBytes();<a name="line.82"></a>
-<span class="sourceLineNo">083</span>  private static final byte[] COL1 = "q1".getBytes();<a name="line.83"></a>
-<span class="sourceLineNo">084</span>  private static final byte[] COL2 = "q2".getBytes();<a name="line.84"></a>
-<span class="sourceLineNo">085</span>  private static final byte[] COL3 = "q3".getBytes();<a name="line.85"></a>
-<span class="sourceLineNo">086</span>  private static final byte[] VAL1 = "v1".getBytes();<a name="line.86"></a>
-<span class="sourceLineNo">087</span>  private static final byte[] VAL2 = "v2".getBytes();<a name="line.87"></a>
-<span class="sourceLineNo">088</span>  private static final byte[] VAL3 = Bytes.toBytes(0L);<a name="line.88"></a>
-<span class="sourceLineNo">089</span><a name="line.89"></a>
-<span class="sourceLineNo">090</span>  private static final int MAX_TRY = 20;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>  private static final int SLEEP_MS = 100;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>  private static final int TTL = 1;<a name="line.92"></a>
-<span class="sourceLineNo">093</span><a name="line.93"></a>
-<span class="sourceLineNo">094</span>  private static Admin admin;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>  private static Collection&lt;ServerName&gt; serverNames;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>  private static Table table;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>  private static RegionInfo regionInfo;<a name="line.97"></a>
-<span class="sourceLineNo">098</span><a name="line.98"></a>
-<span class="sourceLineNo">099</span>  private static Map&lt;Metric, Long&gt; requestsMap = new HashMap&lt;&gt;();<a name="line.99"></a>
-<span class="sourceLineNo">100</span>  private static Map&lt;Metric, Long&gt; requestsMapPrev = new HashMap&lt;&gt;();<a name="line.100"></a>
-<span class="sourceLineNo">101</span><a name="line.101"></a>
-<span class="sourceLineNo">102</span>  @BeforeClass<a name="line.102"></a>
-<span class="sourceLineNo">103</span>  public static void setUpOnce() throws Exception {<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    // Default starts one regionserver only.<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    TEST_UTIL.getConfiguration().setBoolean(LoadBalancer.TABLES_ON_MASTER, true);<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    TEST_UTIL.getConfiguration().setBoolean(LoadBalancer.SYSTEM_TABLES_ON_MASTER, true);<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    TEST_UTIL.startMiniCluster();<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    admin = TEST_UTIL.getAdmin();<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    serverNames = admin.getClusterMetrics(EnumSet.of(Option.LIVE_SERVERS))<a name="line.109"></a>
-<span class="sourceLineNo">110</span>      .getLiveServerMetrics().keySet();<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    table = createTable();<a name="line.111"></a>
-<span class="sourceLineNo">112</span>    putData();<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    List&lt;RegionInfo&gt; regions = admin.getRegions(TABLE_NAME);<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    assertEquals("Table " + TABLE_NAME + " should have 1 region", 1, regions.size());<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    regionInfo = regions.get(0);<a name="line.115"></a>
-<span class="sourceLineNo">116</span><a name="line.116"></a>
-<span class="sourceLineNo">117</span>    for (Metric metric : Metric.values()) {<a name="line.117"></a>
-<span class="sourceLineNo">118</span>      requestsMap.put(metric, 0L);<a name="line.118"></a>
-<span class="sourceLineNo">119</span>      requestsMapPrev.put(metric, 0L);<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    }<a name="line.120"></a>
-<span class="sourceLineNo">121</span>  }<a name="line.121"></a>
-<span class="sourceLineNo">122</span><a name="line.122"></a>
-<span class="sourceLineNo">123</span>  private static Table createTable() throws IOException {<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    TableDescriptorBuilder builder = TableDescriptorBuilder.newBuilder(TABLE_NAME);<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    builder.addColumnFamily(ColumnFamilyDescriptorBuilder.of(CF1));<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    builder.addColumnFamily(ColumnFamilyDescriptorBuilder.newBuilder(CF2).setTimeToLive(TTL)<a name="line.126"></a>
-<span class="sourceLineNo">127</span>        .build());<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    admin.createTable(builder.build());<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    return TEST_UTIL.getConnection().getTable(TABLE_NAME);<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>  private static void testReadRequests(long resultCount,<a name="line.132"></a>
-<span class="sourceLineNo">133</span>    long expectedReadRequests, long expectedFilteredReadRequests)<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    throws IOException, InterruptedException {<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    updateMetricsMap();<a name="line.135"></a>
-<span class="sourceLineNo">136</span>    System.out.println("requestsMapPrev = " + requestsMapPrev);<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    System.out.println("requestsMap = " + requestsMap);<a name="line.137"></a>
-<span class="sourceLineNo">138</span><a name="line.138"></a>
-<span class="sourceLineNo">139</span>    assertEquals(expectedReadRequests,<a name="line.139"></a>
-<span class="sourceLineNo">140</span>      requestsMap.get(Metric.REGION_READ) - requestsMapPrev.get(Metric.REGION_READ));<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    boolean tablesOnMaster = LoadBalancer.isTablesOnMaster(TEST_UTIL.getConfiguration());<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    if (tablesOnMaster) {<a name="line.142"></a>
-<span class="sourceLineNo">143</span>      // If NO tables on master, then the single regionserver in this test carries user-space<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      // tables and the meta table. The first time through, the read will be inflated by meta<a name="line.144"></a>
-<span class="sourceLineNo">145</span>      // lookups. We don't know which test will be first through since junit randomizes. This<a name="line.145"></a>
-<span class="sourceLineNo">146</span>      // method is used by a bunch of tests. Just do this check if master is hosting (system)<a name="line.146"></a>
-<span class="sourceLineNo">147</span>      // regions only.<a name="line.147"></a>
-<span class="sourceLineNo">148</span>      assertEquals(expectedReadRequests,<a name="line.148"></a>
-<span class="sourceLineNo">149</span>      requestsMap.get(Metric.SERVER_READ) - requestsMapPrev.get(Metric.SERVER_READ));<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    }<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    assertEquals(expectedFilteredReadRequests,<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      requestsMap.get(Metric.FILTERED_REGION_READ)<a name="line.152"></a>
-<span class="sourceLineNo">153</span>        - requestsMapPrev.get(Metric.FILTERED_REGION_READ));<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    assertEquals(expectedFilteredReadRequests,<a name="line.154"></a>
-<span class="sourceLineNo">155</span>      requestsMap.get(Metric.FILTERED_SERVER_READ)<a name="line.155"></a>
-<span class="sourceLineNo">156</span>        - requestsMapPrev.get(Metric.FILTERED_SERVER_READ));<a name="line.156"></a>
-<span class="sourceLineNo">157</span>    assertEquals(expectedReadRequests, resultCount);<a name="line.157"></a>
-<span class="sourceLineNo">158</span>  }<a name="line.158"></a>
-<span class="sourceLineNo">159</span><a name="line.159"></a>
-<span class="sourceLineNo">160</span>  private static void updateMetricsMap() throws IOException, InterruptedException {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    for (Metric metric : Metric.values()) {<a name="line.161"></a>
-<span class="sourceLineNo">162</span>      requestsMapPrev.put(metric, requestsMap.get(metric));<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>    ServerLoad serverLoad = null;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>    RegionLoad regionLoadOuter = null;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>    boolean metricsUpdated = false;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    for (int i = 0; i &lt; MAX_TRY; i++) {<a name="line.168"></a>
-<span class="sourceLineNo">169</span>      for (ServerName serverName : serverNames) {<a name="line.169"></a>
-<span class="sourceLineNo">170</span>        serverLoad = new ServerLoad(admin.getClusterMetrics(EnumSet.of(Option.LIVE_SERVERS))<a name="line.170"></a>
-<span class="sourceLineNo">171</span>          .getLiveServerMetrics().get(serverName));<a name="line.171"></a>
-<span class="sourceLineNo">172</span><a name="line.172"></a>
-<span class="sourceLineNo">173</span>        Map&lt;byte[], RegionLoad&gt; regionsLoad = serverLoad.getRegionsLoad();<a name="line.173"></a>
-<span class="sourceLineNo">174</span>        RegionLoad regionLoad = regionsLoad.get(regionInfo.getRegionName());<a name="line.174"></a>
-<span class="sourceLineNo">175</span>        if (regionLoad != null) {<a name="line.175"></a>
-<span class="sourceLineNo">176</span>          regionLoadOuter = regionLoad;<a name="line.176"></a>
-<span class="sourceLineNo">177</span>          for (Metric metric : Metric.values()) {<a name="line.177"></a>
-<span class="sourceLineNo">178</span>            if (getReadRequest(serverLoad, regionLoad, metric) &gt; requestsMapPrev.get(metric)) {<a name="line.178"></a>
-<span class="sourceLineNo">179</span>              for (Metric metricInner : Metric.values()) {<a name="line.179"></a>
-<span class="sourceLineNo">180</span>                requestsMap.put(metricInner, getReadRequest(serverLoad, regionLoad, metricInner));<a name="line.180"></a>
-<span class="sourceLineNo">181</span>              }<a name="line.181"></a>
-<span class="sourceLineNo">182</span>              metricsUpdated = true;<a name="line.182"></a>
-<span class="sourceLineNo">183</span>              break;<a name="line.183"></a>
-<span class="sourceLineNo">184</span>            }<a name="line.184"></a>
-<span class="sourceLineNo">185</span>          }<a name="line.185"></a>
-<span class="sourceLineNo">186</span>        }<a name="line.186"></a>
-<span class="sourceLineNo">187</span>      }<a name="line.187"></a>
-<span class="sourceLineNo">188</span>      if (metricsUpdated) {<a name="line.188"></a>
-<span class="sourceLineNo">189</span>        break;<a name="line.189"></a>
-<span class="sourceLineNo">190</span>      }<a name="line.190"></a>
-<span class="sourceLineNo">191</span>      Thread.sleep(SLEEP_MS);<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    }<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    if (!metricsUpdated) {<a name="line.193"></a>
-<span class="sourceLineNo">194</span>      for (Metric metric : Metric.values()) {<a name="line.194"></a>
-<span class="sourceLineNo">195</span>        requestsMap.put(metric, getReadRequest(serverLoad, regionLoadOuter, metric));<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      }<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    }<a name="line.197"></a>
-<span class="sourceLineNo">198</span>  }<a name="line.198"></a>
-<span class="sourceLineNo">199</span><a name="line.199"></a>
-<span class="sourceLineNo">200</span>  private static long getReadRequest(ServerLoad serverLoad, RegionLoad regionLoad, Metric metric) {<a name="line.200"></a>
-<span class="sourceLineNo">201</span>    switch (metric) {<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      case REGION_READ:<a name="line.202"></a>
-<span class="sourceLineNo">203</span>        return regionLoad.getReadRequestsCount();<a name="line.203"></a>
-<span class="sourceLineNo">204</span>      case SERVER_READ:<a name="line.204"></a>
-<span class="sourceLineNo">205</span>        return serverLoad.getReadRequestsCount();<a name="line.205"></a>
-<span class="sourceLineNo">206</span>      case FILTERED_REGION_READ:<a name="line.206"></a>
-<span class="sourceLineNo">207</span>        return regionLoad.getFilteredReadRequestsCount();<a name="line.207"></a>
-<span class="sourceLineNo">208</span>      case FILTERED_SERVER_READ:<a name="line.208"></a>
-<span class="sourceLineNo">209</span>        return serverLoad.getFilteredReadRequestsCount();<a name="line.209"></a>
-<span class="sourceLineNo">210</span>      default:<a name="line.210"></a>
-<span class="sourceLineNo">211</span>        throw new IllegalStateException();<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    }<a name="line.212"></a>
-<span class="sourceLineNo">213</span>  }<a name="line.213"></a>
-<span class="sourceLineNo">214</span><a name="line.214"></a>
-<span class="sourceLineNo">215</span>  private static void putData() throws IOException {<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    Put put;<a name="line.216"></a>
-<span class="sourceLineNo">217</span><a name="line.217"></a>
-<span class="sourceLineNo">218</span>    put = new Put(ROW1);<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    put.addColumn(CF1, COL1, VAL1);<a name="line.219"></a>
-<span class="sourceLineNo">220</span>    put.addColumn(CF1, COL2, VAL2);<a name="line.220"></a>
-<span class="sourceLineNo">221</span>    put.addColumn(CF1, COL3, VAL3);<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    table.put(put);<a name="line.222"></a>
-<span class="sourceLineNo">223</span>    put = new Put(ROW2);<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    put.addColumn(CF1, COL1, VAL2);  // put val2 instead of val1<a name="line.224"></a>
-<span class="sourceLineNo">225</span>    put.addColumn(CF1, COL2, VAL2);<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    table.put(put);<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    put = new Put(ROW3);<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    put.addColumn(CF1, COL1, VAL1);<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    put.addColumn(CF1, COL2, VAL2);<a name="line.229"></a>
-<span class="sourceLineNo">230</span>    table.put(put);<a name="line.230"></a>
-<span class="sourceLineNo">231</span>  }<a name="line.231"></a>
-<span class="sourceLineNo">232</span><a name="line.232"></a>
-<span class="sourceLineNo">233</span>  private static void putTTLExpiredData() throws IOException, InterruptedException {<a name="line.233"></a>
-<span class="sourceLineNo">234</span>    Put put;<a name="line.234"></a>
-<span class="sourceLineNo">235</span><a name="line.235"></a>
-<span class="sourceLineNo">236</span>    put = new Put(ROW1);<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    put.addColumn(CF2, COL1, VAL1);<a name="line.237"></a>
-<span class="sourceLineNo">238</span>    put.addColumn(CF2, COL2, VAL2);<a name="line.238"></a>
-<span class="sourceLineNo">239</span>    table.put(put);<a name="line.239"></a>
-<span class="sourceLineNo">240</span><a name="line.240"></a>
-<span class="sourceLineNo">241</span>    Thread.sleep(TTL * 1000);<a name="line.241"></a>
+<span class="sourceLineNo">066</span>import org.junit.Ignore;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.junit.Test;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.junit.experimental.categories.Category;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.slf4j.Logger;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.slf4j.LoggerFactory;<a name="line.70"></a>
+<span class="sourceLineNo">071</span><a name="line.71"></a>
+<span class="sourceLineNo">072</span>@Ignore // Depends on Master being able to host regions. Needs fixing.<a name="line.72"></a>
+<span class="sourceLineNo">073</span>@Category(MediumTests.class)<a name="line.73"></a>
+<span class="sourceLineNo">074</span>public class TestRegionServerReadRequestMetrics {<a name="line.74"></a>
+<span class="sourceLineNo">075</span>  private static final Logger LOG =<a name="line.75"></a>
+<span class="sourceLineNo">076</span>      LoggerFactory.getLogger(TestRegionServerReadRequestMetrics.class);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>  private static final HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();<a name="line.77"></a>
+<span class="sourceLineNo">078</span>  private static final TableName TABLE_NAME = TableName.valueOf("test");<a name="line.78"></a>
+<span class="sourceLineNo">079</span>  private static final byte[] CF1 = "c1".getBytes();<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  private static final byte[] CF2 = "c2".getBytes();<a name="line.80"></a>
+<span class="sourceLineNo">081</span><a name="line.81"></a>
+<span class="sourceLineNo">082</span>  private static final byte[] ROW1 = "a".getBytes();<a name="line.82"></a>
+<span class="sourceLineNo">083</span>  private static final byte[] ROW2 = "b".getBytes();<a name="line.83"></a>
+<span class="sourceLineNo">084</span>  private static final byte[] ROW3 = "c".getBytes();<a name="line.84"></a>
+<span class="sourceLineNo">085</span>  private static final byte[] COL1 = "q1".getBytes();<a name="line.85"></a>
+<span class="sourceLineNo">086</span>  private static final byte[] COL2 = "q2".getBytes();<a name="line.86"></a>
+<span class="sourceLineNo">087</span>  private static final byte[] COL3 = "q3".getBytes();<a name="line.87"></a>
+<span class="sourceLineNo">088</span>  private static final byte[] VAL1 = "v1".getBytes();<a name="line.88"></a>
+<span class="sourceLineNo">089</span>  private static final byte[] VAL2 = "v2".getBytes();<a name="line.89"></a>
+<span class="sourceLineNo">090</span>  private static final byte[] VAL3 = Bytes.toBytes(0L);<a name="line.90"></a>
+<span class="sourceLineNo">091</span><a name="line.91"></a>
+<span class="sourceLineNo">092</span>  private static final int MAX_TRY = 20;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>  private static final int SLEEP_MS = 100;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>  private static final int TTL = 1;<a name="line.94"></a>
+<span class="sourceLineNo">095</span><a name="line.95"></a>
+<span class="sourceLineNo">096</span>  private static Admin admin;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>  private static Collection&lt;ServerName&gt; serverNames;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>  private static Table table;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>  private static RegionInfo regionInfo;<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>  private static Map&lt;Metric, Long&gt; requestsMap = new HashMap&lt;&gt;();<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  private static Map&lt;Metric, Long&gt; requestsMapPrev = new HashMap&lt;&gt;();<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>  @BeforeClass<a name="line.104"></a>
+<span class="sourceLineNo">105</span>  public static void setUpOnce() throws Exception {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    // Default starts one regionserver only.<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    TEST_UTIL.getConfiguration().setBoolean(LoadBalancer.TABLES_ON_MASTER, true);<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    TEST_UTIL.getConfiguration().setBoolean(LoadBalancer.SYSTEM_TABLES_ON_MASTER, true);<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    TEST_UTIL.startMiniCluster();<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    admin = TEST_UTIL.getAdmin();<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    serverNames = admin.getClusterMetrics(EnumSet.of(Option.LIVE_SERVERS))<a name="line.111"></a>
+<span class="sourceLineNo">112</span>      .getLiveServerMetrics().keySet();<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    table = createTable();<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    putData();<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    List&lt;RegionInfo&gt; regions = admin.getRegions(TABLE_NAME);<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    assertEquals("Table " + TABLE_NAME + " should have 1 region", 1, regions.size());<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    regionInfo = regions.get(0);<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>    for (Metric metric : Metric.values()) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>      requestsMap.put(metric, 0L);<a name="line.120"></a>
+<span class="sourceLineNo">121</span>      requestsMapPrev.put(metric, 0L);<a name="line.121"></a>
+<span class="sourceLineNo">122</span>    }<a name="line.122"></a>
+<span class="sourceLineNo">123</span>  }<a name="line.123"></a>
+<span class="sourceLineNo">124</span><a name="line.124"></a>
+<span class="sourceLineNo">125</span>  private static Table createTable() throws IOException {<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    TableDescriptorBuilder builder = TableDescriptorBuilder.newBuilder(TABLE_NAME);<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    builder.addColumnFamily(ColumnFamilyDescriptorBuilder.of(CF1));<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    builder.addColumnFamily(ColumnFamilyDescriptorBuilder.newBuilder(CF2).setTimeToLive(TTL)<a name="line.128"></a>
+<span class="sourceLineNo">129</span>        .build());<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    admin.createTable(builder.build());<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    return TEST_UTIL.getConnection().getTable(TABLE_NAME);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>  }<a name="line.132"></a>
+<span class="sourceLineNo">133</span><a name="line.133"></a>
+<span class="sourceLineNo">134</span>  private static void testReadRequests(long resultCount,<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    long expectedReadRequests, long expectedFilteredReadRequests)<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    throws IOException, InterruptedException {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>    updateMetricsMap();<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    System.out.println("requestsMapPrev = " + requestsMapPrev);<a name="line.138"></a>
+<span class="sourceLineNo">139</span>    System.out.println("requestsMap = " + requestsMap);<a name="line.139"></a>
+<span class="sourceLineNo">140</span><a name="line.140"></a>
+<span class="sourceLineNo">141</span>    assertEquals(expectedReadRequests,<a name="line.141"></a>
+<span class="sourceLineNo">142</span>      requestsMap.get(Metric.REGION_READ) - requestsMapPrev.get(Metric.REGION_READ));<a name="line.142"></a>
+<span class="sourceLineNo">143</span>    boolean tablesOnMaster = LoadBalancer.isTablesOnMaster(TEST_UTIL.getConfiguration());<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    if (tablesOnMaster) {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>      // If NO tables on master, then the single regionserver in this test carries user-space<a name="line.145"></a>
+<span class="sourceLineNo">146</span>      // tables and the meta table. The first time through, the read will be inflated by meta<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      // lookups. We don't know which test will be first through since junit randomizes. This<a name="line.147"></a>
+<span class="sourceLineNo">148</span>      // method is used by a bunch of tests. Just do this check if master is hosting (system)<a name="line.148"></a>
+<span class="sourceLineNo">149</span>      // regions only.<a name="line.149"></a>
+<span class="sourceLineNo">150</span>      assertEquals(expectedReadRequests,<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      requestsMap.get(Metric.SERVER_READ) - requestsMapPrev.get(Metric.SERVER_READ));<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    }<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    assertEquals(expectedFilteredReadRequests,<a name="line.153"></a>
+<span class="sourceLineNo">154</span>      requestsMap.get(Metric.FILTERED_REGION_READ)<a name="line.154"></a>
+<span class="sourceLineNo">155</span>        - requestsMapPrev.get(Metric.FILTERED_REGION_READ));<a name="line.155"></a>
+<span class="sourceLineNo">156</span>    assertEquals(expectedFilteredReadRequests,<a name="line.156"></a>
+<span class="sourceLineNo">157</span>      requestsMap.get(Metric.FILTERED_SERVER_READ)<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        - requestsMapPrev.get(Metric.FILTERED_SERVER_READ));<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    assertEquals(expectedReadRequests, resultCount);<a name="line.159"></a>
+<span class="sourceLineNo">160</span>  }<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>  private static void updateMetricsMap() throws IOException, InterruptedException {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>    for (Metric metric : Metric.values()) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span>      requestsMapPrev.put(metric, requestsMap.get(metric));<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    }<a name="line.165"></a>
+<span class="sourceLineNo">166</span><a name="line.166"></a>
+<span class="sourceLineNo">167</span>    ServerLoad serverLoad = null;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    RegionLoad regionLoadOuter = null;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    boolean metricsUpdated = false;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    for (int i = 0; i &lt; MAX_TRY; i++) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>      for (ServerName serverName : serverNames) {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>        serverLoad = new ServerLoad(admin.getClusterMetrics(EnumSet.of(Option.LIVE_SERVERS))<a name="line.172"></a>
+<span class="sourceLineNo">173</span>          .getLiveServerMetrics().get(serverName));<a name="line.173"></a>
+<span class="sourceLineNo">174</span><a name="line.174"></a>
+<span class="sourceLineNo">175</span>        Map&lt;byte[], RegionLoad&gt; regionsLoad = serverLoad.getRegionsLoad();<a name="line.175"></a>
+<span class="sourceLineNo">176</span>        RegionLoad regionLoad = regionsLoad.get(regionInfo.getRegionName());<a name="line.176"></a>
+<span class="sourceLineNo">177</span>        if (regionLoad != null) {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>          regionLoadOuter = regionLoad;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>          for (Metric metric : Metric.values()) {<a name="line.179"></a>
+<span class="sourceLineNo">180</span>            if (getReadRequest(serverLoad, regionLoad, metric) &gt; requestsMapPrev.get(metric)) {<a name="line.180"></a>
+<span class="sourceLineNo">181</span>              for (Metric metricInner : Metric.values()) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                requestsMap.put(metricInner, getReadRequest(serverLoad, regionLoad, metricInner));<a name="line.182"></a>
+<span class="sourceLineNo">183</span>              }<a name="line.183"></a>
+<span class="sourceLineNo">184</span>              metricsUpdated = true;<a name="line.184"></a>
+<span class="sourceLineNo">185</span>              break;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>            }<a name="line.186"></a>
+<span class="sourceLineNo">187</span>          }<a name="line.187"></a>
+<span class="sourceLineNo">188</span>        }<a name="line.188"></a>
+<span class="sourceLineNo">189</span>      }<a name="line.189"></a>
+<span class="sourceLineNo">190</span>      if (metricsUpdated) {<a name="line.190"></a>
+<span class="sourceLineNo">191</span>        break;<a name="line.191"></a>
+<span class="sourceLineNo">192</span>      }<a name="line.192"></a>
+<span class="sourceLineNo">193</span>      Thread.sleep(SLEEP_MS);<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    }<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    if (!metricsUpdated) {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>      for (Metric metric : Metric.values()) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>        requestsMap.put(metric, getReadRequest(serverLoad, regionLoadOuter, metric));<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>  }<a name="line.200"></a>
+<span class="sourceLineNo">201</span><a name="line.201"></a>
+<span class="sourceLineNo">202</span>  private static long getReadRequest(ServerLoad serverLoad, RegionLoad regionLoad, Metric metric) {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>    switch (metric) {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>      case REGION_READ:<a name="line.204"></a>
+<span class="sourceLineNo">205</span>        return regionLoad.getReadRequestsCount();<a name="line.205"></a>
+<span class="sourceLineNo">206</span>      case SERVER_READ:<a name="line.206"></a>
+<span class="sourceLineNo">207</span>        return serverLoad.getReadRequestsCount();<a name="line.207"></a>
+<span class="sourceLineNo">208</span>      case FILTERED_REGION_READ:<a name="line.208"></a>
+<span class="sourceLineNo">209</span>        return regionLoad.getFilteredReadRequestsCount();<a name="line.209"></a>
+<span class="sourceLineNo">210</span>      case FILTERED_SERVER_READ:<a name="line.210"></a>
+<span class="sourceLineNo">211</span>        return serverLoad.getFilteredReadRequestsCount();<a name="line.211"></a>
+<span class="sourceLineNo">212</span>      default:<a name="line.212"></a>
+<span class="sourceLineNo">213</span>        throw new IllegalStateException();<a name="line.213"></a>
+<span class="sourceLineNo">214</span>    }<a name="line.214"></a>
+<span class="sourceLineNo">215</span>  }<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>  private static void putData() throws IOException {<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    Put put;<a name="line.218"></a>
+<span class="sourceLineNo">219</span><a name="line.219"></a>
+<span class="sourceLineNo">220</span>    put = new Put(ROW1);<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    put.addColumn(CF1, COL1, VAL1);<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    put.addColumn(CF1, COL2, VAL2);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    put.addColumn(CF1, COL3, VAL3);<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    table.put(put);<a name="line.224"></a>
+<span class="sourceLineNo">225</span>    put = new Put(ROW2);<a name="line.225"></a>
+<span class="sourceLineNo">226</span>    put.addColumn(CF1, COL1, VAL2);  // put val2 instead of val1<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    put.addColumn(CF1, COL2, VAL2);<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    table.put(put);<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    put = new Put(ROW3);<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    put.addColumn(CF1, COL1, VAL1);<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    put.addColumn(CF1, COL2, VAL2);<a name="line.231"></a>
+<span class="sourceLineNo">232</span>    table.put(put);<a name="line.232"></a>
+<span class="sourceLineNo">233</span>  }<a name="line.233"></a>
+<span class="sourceLineNo">234</span><a name="line.234"></a>
+<span class="sourceLineNo">235</span>  private static void putTTLExpiredData() throws IOException, InterruptedException {<a name="line.235"></a>
+<span class="sourceLineNo">236</span>    Put put;<a name="line.236"></a>
+<span class="sourceLineNo">237</span><a name="line.237"></a>
+<span class="sourceLineNo">238</span>    put = new Put(ROW1);<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    put.addColumn(CF2, COL1, VAL1);<a name="line.239"></a>
+<span class="sourceLineNo">240</span>    put.addColumn(CF2, COL2, VAL2);<a name="line.240"></a>
+<span class="sourceLineNo">241</span>    table.put(put);<a name="line.241"></a>
 <span class="sourceLineNo">242</span><a name="line.242"></a>
-<span class="sourceLineNo">243</span>    put = new Put(ROW2);<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    put.addColumn(CF2, COL1, VAL1);<a name="line.244"></a>
-<span class="sourceLineNo">245</span>    put.addColumn(CF2, COL2, VAL2);<a name="line.245"></a>
-<span class="sourceLineNo">246</span>    table.put(put);<a name="line.246"></a>
-<span class="sourceLineNo">247</span><a name="line.247"></a>
-<span class="sourceLineNo">248</span>    put = new Put(ROW3);<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    put.addColumn(CF2, COL1, VAL1);<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    put.addColumn(CF2, COL2, VAL2);<a name="line.250"></a>
-<span class="sourceLineNo">251</span>    table.put(put);<a name="line.251"></a>
-<span class="sourceLineNo">252</span>  }<a name="line.252"></a>
-<span class="sourceLineNo">253</span><a name="line.253"></a>
-<span class="sourceLineNo">254</span>  @AfterClass<a name="line.254"></a>
-<span class="sourceLineNo">255</span>  public static void tearDownOnce() throws Exception {<a name="line.255"></a>
-<span class="sourceLineNo">256</span>    TEST_UTIL.shutdownMiniCluster();<a name="line.256"></a>
-<span class="sourceLineNo">257</span>  }<a name="line.257"></a>
-<span class="sourceLineNo">258</span><a name="line.258"></a>
-<span class="sourceLineNo">259</span>  @Test<a name="line.259"></a>
-<span class="sourceLineNo">260</span>  public void testReadRequestsCountNotFiltered() throws Exception {<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    int resultCount;<a name="line.261"></a>
-<span class="sourceLineNo">262</span>    Scan scan;<a name="line.262"></a>
-<span class="sourceLineNo">263</span>    Append append;<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    Put put;<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    Increment increment;<a name="line.265"></a>
-<span class="sourceLineNo">266</span>    Get get;<a name="line.266"></a>
-<span class="sourceLineNo">267</span><a name="line.267"></a>
-<span class="sourceLineNo">268</span>    // test for scan<a name="line.268"></a>
-<span class="sourceLineNo">269</span>    scan = new Scan();<a name="line.269"></a>
-<span class="sourceLineNo">270</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.270"></a>
-<span class="sourceLineNo">271</span>      resultCount = 0;<a name="line.271"></a>
-<span class="sourceLineNo">272</span>      for (Result ignore : scanner) {<a name="line.272"></a>
-<span class="sourceLineNo">273</span>        resultCount++;<a name="line.273"></a>
-<span class="sourceLineNo">274</span>      }<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      testReadRequests(resultCount, 3, 0);<a name="line.275"></a>
-<span class="sourceLineNo">276</span>    }<a name="line.276"></a>
-<span class="sourceLineNo">277</span><a name="line.277"></a>
-<span class="sourceLineNo">278</span>    // test for scan<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    scan = new Scan(ROW2, ROW3);<a name="line.279"></a>
-<span class="sourceLineNo">280</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.280"></a>
-<span class="sourceLineNo">281</span>      resultCount = 0;<a name="line.281"></a>
-<span class="sourceLineNo">282</span>      for (Result ignore : scanner) {<a name="line.282"></a>
-<span class="sourceLineNo">283</span>        resultCount++;<a name="line.283"></a>
-<span class="sourceLineNo">284</span>      }<a name="line.284"></a>
-<span class="sourceLineNo">285</span>      testReadRequests(resultCount, 1, 0);<a name="line.285"></a>
-<span class="sourceLineNo">286</span>    }<a name="line.286"></a>
-<span class="sourceLineNo">287</span><a name="line.287"></a>
-<span class="sourceLineNo">288</span>    // test for get<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    get = new Get(ROW2);<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    Result result = table.get(get);<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    resultCount = result.isEmpty() ? 0 : 1;<a name="line.291"></a>
-<span class="sourceLineNo">292</span>    testReadRequests(resultCount, 1, 0);<a name="line.292"></a>
-<span class="sourceLineNo">293</span><a name="line.293"></a>
-<span class="sourceLineNo">294</span>    // test for increment<a name="line.294"></a>
-<span class="sourceLineNo">295</span>    increment = new Increment(ROW1);<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    increment.addColumn(CF1, COL3, 1);<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    result = table.increment(increment);<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    resultCount = result.isEmpty() ? 0 : 1;<a name="line.298"></a>
-<span class="sourceLineNo">299</span>    testReadRequests(resultCount, 1, 0);<a name="line.299"></a>
-<span class="sourceLineNo">300</span><a name="line.300"></a>
-<span class="sourceLineNo">301</span>    // test for checkAndPut<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    put = new Put(ROW1);<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    put.addColumn(CF1, COL2, VAL2);<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    boolean checkAndPut =<a name="line.304"></a>
-<span class="sourceLineNo">305</span>        table.checkAndMutate(ROW1, CF1).qualifier(COL2).ifEquals(VAL2).thenPut(put);<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    resultCount = checkAndPut ? 1 : 0;<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    testReadRequests(resultCount, 1, 0);<a name="line.307"></a>
-<span class="sourceLineNo">308</span><a name="line.308"></a>
-<span class="sourceLineNo">309</span>    // test for append<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    append = new Append(ROW1);<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    append.addColumn(CF1, COL2, VAL2);<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    result = table.append(append);<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    resultCount = result.isEmpty() ? 0 : 1;<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    testReadRequests(resultCount, 1, 0);<a name="line.314"></a>
-<span class="sourceLineNo">315</span><a name="line.315"></a>
-<span class="sourceLineNo">316</span>    // test for checkAndMutate<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    put = new Put(ROW1);<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    put.addColumn(CF1, COL1, VAL1);<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    RowMutations rm = new RowMutations(ROW1);<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    rm.add(put);<a name="line.320"></a>
-<span class="sourceLineNo">321</span>    boolean checkAndMutate =<a name="line.321"></a>
-<span class="sourceLineNo">322</span>        table.checkAndMutate(ROW1, CF1).qualifier(COL1).ifEquals(VAL1).thenMutate(rm);<a name="line.322"></a>
-<span class="sourceLineNo">323</span>    resultCount = checkAndMutate ? 1 : 0;<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    testReadRequests(resultCount, 1, 0);<a name="line.324"></a>
-<span class="sourceLineNo">325</span>  }<a name="line.325"></a>
-<span class="sourceLineNo">326</span><a name="line.326"></a>
-<span class="sourceLineNo">327</span>  @Test<a name="line.327"></a>
-<span class="sourceLineNo">328</span>  public void testReadRequestsCountWithFilter() throws Exception {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    int resultCount;<a name="line.329"></a>
-<span class="sourceLineNo">330</span>    Scan scan;<a name="line.330"></a>
-<span class="sourceLineNo">331</span><a name="line.331"></a>
-<span class="sourceLineNo">332</span>    // test for scan<a name="line.332"></a>
-<span class="sourceLineNo">333</span>    scan = new Scan();<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    scan.setFilter(new SingleColumnValueFilter(CF1, COL1, CompareFilter.CompareOp.EQUAL, VAL1));<a name="line.334"></a>
-<span class="sourceLineNo">335</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.335"></a>
-<span class="sourceLineNo">336</span>      resultCount = 0;<a name="line.336"></a>
-<span class="sourceLineNo">337</span>      for (Result ignore : scanner) {<a name="line.337"></a>
-<span class="sourceLineNo">338</span>        resultCount++;<a name="line.338"></a>
-<span class="sourceLineNo">339</span>      }<a name="line.339"></a>
-<span class="sourceLineNo">340</span>      testReadRequests(resultCount, 2, 1);<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    }<a name="line.341"></a>
-<span class="sourceLineNo">342</span><a name="line.342"></a>
-<span class="sourceLineNo">343</span>    // test for scan<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    scan = new Scan();<a name="line.344"></a>
-<span class="sourceLineNo">345</span>    scan.setFilter(new RowFilter(CompareFilter.CompareOp.EQUAL, new BinaryComparator(ROW1)));<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.346"></a>
-<span class="sourceLineNo">347</span>      resultCount = 0;<a name="line.347"></a>
-<span class="sourceLineNo">348</span>      for (Result ignore : scanner) {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>        resultCount++;<a name="line.349"></a>
-<span class="sourceLineNo">350</span>      }<a name="line.350"></a>
-<span class="sourceLineNo">351</span>      testReadRequests(resultCount, 1, 2);<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    }<a name="line.352"></a>
-<span class="sourceLineNo">353</span><a name="line.353"></a>
-<span class="sourceLineNo">354</span>    // test for scan<a name="line.354"></a>
-<span class="sourceLineNo">355</span>    scan = new Scan(ROW2, ROW3);<a name="line.355"></a>
-<span class="sourceLineNo">356</span>    scan.setFilter(new RowFilter(CompareFilter.CompareOp.EQUAL, new BinaryComparator(ROW1)));<a name="line.356"></a>
-<span class="sourceLineNo">357</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.357"></a>
-<span class="sourceLineNo">358</span>      resultCount = 0;<a name="line.358"></a>
-<span class="sourceLineNo">359</span>      for (Result ignore : scanner) {<a name="line.359"></a>
-<span class="sourceLineNo">360</span>        resultCount++;<a name="line.360"></a>
-<span class="sourceLineNo">361</span>      }<a name="line.361"></a>
-<span class="sourceLineNo">362</span>      testReadRequests(resultCount, 0, 1);<a name="line.362"></a>
-<span class="sourceLineNo">363</span>    }<a name="line.363"></a>
-<span class="sourceLineNo">364</span><a name="line.364"></a>
-<span class="sourceLineNo">365</span>    // fixme filtered get should not increase readRequestsCount<a name="line.365"></a>
-<span class="sourceLineNo">366</span>//    Get get = new Get(ROW2);<a name="line.366"></a>
-<span class="sourceLineNo">367</span>//    get.setFilter(new SingleColumnValueFilter(CF1, COL1, CompareFilter.CompareOp.EQUAL, VAL1));<a name="line.367"></a>
-<span class="sourceLineNo">368</span>//    Result result = table.get(get);<a name="line.368"></a>
-<span class="sourceLineNo">369</span>//    resultCount = result.isEmpty() ? 0 : 1;<a name="line.369"></a>
-<span class="sourceLineNo">370</span>//    testReadRequests(resultCount, 0, 1);<a name="line.370"></a>
-<span class="sourceLineNo">371</span>  }<a name="line.371"></a>
-<span class="sourceLineNo">372</span><a name="line.372"></a>
-<span class="sourceLineNo">373</span>  @Test<a name="line.373"></a>
-<span class="sourceLineNo">374</span>  public void testReadRequestsCountWithDeletedRow() throws Exception {<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    try {<a name="line.375"></a>
-<span class="sourceLineNo">376</span>      Delete delete = new Delete(ROW3);<a name="line.376"></a>
-<span class="sourceLineNo">377</span>      table.delete(delete);<a name="line.377"></a>
-<span class="sourceLineNo">378</span><a name="line.378"></a>
-<span class="sourceLineNo">379</span>      Scan scan = new Scan();<a name="line.379"></a>
-<span class="sourceLineNo">380</span>      try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>        int resultCount = 0;<a name="line.381"></a>
-<span class="sourceLineNo">382</span>        for (Result ignore : scanner) {<a name="line.382"></a>
-<span class="sourceLineNo">383</span>          resultCount++;<a name="line.383"></a>
-<span class="sourceLineNo">384</span>        }<a name="line.384"></a>
-<span class="sourceLineNo">385</span>        testReadRequests(resultCount, 2, 1);<a name="line.385"></a>
-<span class="sourceLineNo">386</span>      }<a name="line.386"></a>
-<span class="sourceLineNo">387</span>    } finally {<a name="line.387"></a>
-<span class="sourceLineNo">388</span>      Put put = new Put(ROW3);<a name="line.388"></a>
-<span class="sourceLineNo">389</span>      put.addColumn(CF1, COL1, VAL1);<a name="line.389"></a>
-<span class="sourceLineNo">390</span>      put.addColumn(CF1, COL2, VAL2);<a name="line.390"></a>
-<span class="sourceLineNo">391</span>      table.put(put);<a name="line.391"></a>
-<span class="sourceLineNo">392</span>    }<a name="line.392"></a>
-<span class="sourceLineNo">393</span>  }<a name="line.393"></a>
-<span class="sourceLineNo">394</span><a name="line.394"></a>
-<span class="sourceLineNo">395</span>  @Test<a name="line.395"></a>
-<span class="sourceLineNo">396</span>  public void testReadRequestsCountWithTTLExpiration() throws Exception {<a name="line.396"></a>
-<span class="sourceLineNo">397</span>    putTTLExpiredData();<a name="line.397"></a>
-<span class="sourceLineNo">398</span><a name="line.398"></a>
-<span class="sourceLineNo">399</span>    Scan scan = new Scan();<a name="line.399"></a>
-<span class="sourceLineNo">400</span>    scan.addFamily(CF2);<a name="line.400"></a>
-<span class="sourceLineNo">401</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>      int resultCount = 0;<a name="line.402"></a>
-<span class="sourceLineNo">403</span>      for (Result ignore : scanner) {<a name="line.403"></a>
-<span class="sourceLineNo">404</span>        resultCount++;<a name="line.404"></a>
-<span class="sourceLineNo">405</span>      }<a name="line.405"></a>
-<span class="sourceLineNo">406</span>      testReadRequests(resultCount, 2, 1);<a name="line.406"></a>
-<span class="sourceLineNo">407</span>    }<a name="line.407"></a>
-<span class="sourceLineNo">408</span>  }<a name="line.408"></a>
-<span class="sourceLineNo">409</span><a name="line.409"></a>
-<span class="sourceLineNo">410</span>  @Test<a name="line.410"></a>
-<span class="sourceLineNo">411</span>  public void testReadRequestsWithCoprocessor() throws Exception {<a name="line.411"></a>
-<span class="sourceLineNo">412</span>    TableName tableName = TableName.valueOf("testReadRequestsWithCoprocessor");<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    TableDescriptorBuilder builder = TableDescriptorBuilder.newBuilder(tableName);<a name="line.413"></a>
-<span class="sourceLineNo">414</span>    builder.addColumnFamily(ColumnFamilyDescriptorBuilder.of(CF1));<a name="line.414"></a>
-<span class="sourceLineNo">415</span>    builder.addCoprocessor(ScanRegionCoprocessor.class.getName());<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    admin.createTable(builder.build());<a name="line.416"></a>
-<span class="sourceLineNo">417</span><a name="line.417"></a>
-<span class="sourceLineNo">418</span>    try {<a name="line.418"></a>
-<span class="sourceLineNo">419</span>      TEST_UTIL.waitTableAvailable(tableName);<a name="line.419"></a>
-<span class="sourceLineNo">420</span>      List&lt;RegionInfo&gt; regionInfos = admin.getRegions(tableName);<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      assertEquals("Table " + TABLE_NAME + " should have 1 region", 1, regionInfos.size());<a name="line.421"></a>
-<span class="sourceLineNo">422</span>      boolean success = true;<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      int i = 0;<a name="line.423"></a>
-<span class="sourceLineNo">424</span>      for (; i &lt; MAX_TRY; i++) {<a name="line.424"></a>
-<span class="sourceLineNo">425</span>        try {<a name="line.425"></a>
-<span class="sourceLineNo">426</span>          testReadRequests(regionInfos.get(0).getRegionName(), 3);<a name="line.426"></a>
-<span class="sourceLineNo">427</span>        } catch (Throwable t) {<a name="line.427"></a>
-<span class="sourceLineNo">428</span>          LOG.warn("Got exception when try " + i + " times", t);<a name="line.428"></a>
-<span class="sourceLineNo">429</span>          Thread.sleep(SLEEP_MS);<a name="line.429"></a>
-<span class="sourceLineNo">430</span>          success = false;<a name="line.430"></a>
-<span class="sourceLineNo">431</span>        }<a name="line.431"></a>
-<span class="sourceLineNo">432</span>        if (success) {<a name="line.432"></a>
-<span class="sourceLineNo">433</span>          break;<a name="line.433"></a>
-<span class="sourceLineNo">434</span>        }<a name="line.434"></a>
-<span class="sourceLineNo">435</span>      }<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      if (i == MAX_TRY) {<a name="line.436"></a>
-<span class="sourceLineNo">437</span>        fail("Failed to get right read requests metric after try " + i + " times");<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      }<a name="line.438"></a>
-<span class="sourceLineNo">439</span>    } finally {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>      admin.disableTable(tableName);<a name="line.440"></a>
-<span class="sourceLineNo">441</span>      admin.deleteTable(tableName);<a name="line.441"></a>
-<span class="sourceLineNo">442</span>    }<a name="line.442"></a>
-<span class="sourceLineNo">443</span>  }<a name="line.443"></a>
-<span class="sourceLineNo">444</span><a name="line.444"></a>
-<span class="sourceLineNo">445</span>  private void testReadRequests(byte[] regionName, int expectedReadRequests) throws Exception {<a name="line.445"></a>
-<span class="sourceLineNo">446</span>    for (ServerName serverName : serverNames) {<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      ServerLoad serverLoad = new ServerLoad(admin.getClusterMetrics(<a name="line.447"></a>
-<span class="sourceLineNo">448</span>        EnumSet.of(Option.LIVE_SERVERS)).getLiveServerMetrics().get(serverName));<a name="line.448"></a>
-<span class="sourceLineNo">449</span>      Map&lt;byte[], RegionLoad&gt; regionsLoad = serverLoad.getRegionsLoad();<a name="line.449"></a>
-<span class="sourceLineNo">450</span>      RegionLoad regionLoad = regionsLoad.get(regionName);<a name="line.450"></a>
-<span class="sourceLineNo">451</span>      if (regionLoad != null) {<a name="line.451"></a>
-<span class="sourceLineNo">452</span>        LOG.debug("server read request is " + serverLoad.getReadRequestsCount()<a name="line.452"></a>
-<span class="sourceLineNo">453</span>            + ", region read request is " + regionLoad.getReadRequestsCount());<a name="line.453"></a>
-<span class="sourceLineNo">454</span>        assertEquals(3, serverLoad.getReadRequestsCount());<a name="line.454"></a>
-<span class="sourceLineNo">455</span>        assertEquals(3, regionLoad.getReadRequestsCount());<a name="line.455"></a>
-<span class="sourceLineNo">456</span>      }<a name="line.456"></a>
-<span class="sourceLineNo">457</span>    }<a name="line.457"></a>
-<span class="sourceLineNo">458</span>  }<a name="line.458"></a>
-<span class="sourceLineNo">459</span><a name="line.459"></a>
-<span class="sourceLineNo">460</span>  public static class ScanRegionCoprocessor implements RegionCoprocessor, RegionObserver {<a name="line.460"></a>
-<span class="sourceLineNo">461</span>    @Override<a name="line.461"></a>
-<span class="sourceLineNo">462</span>    public Optional&lt;RegionObserver&gt; getRegionObserver() {<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      return Optional.of(this);<a name="line.463"></a>
-<span class="sourceLineNo">464</span>    }<a name="line.464"></a>
-<span class="sourceLineNo">465</span><a name="line.465"></a>
-<span class="sourceLineNo">466</span>    @Override<a name="line.466"></a>
-<span class="sourceLineNo">467</span>    public void postOpen(ObserverContext&lt;RegionCoprocessorEnvironment&gt; c) {<a name="line.467"></a>
-<span class="sourceLineNo">468</span>      RegionCoprocessorEnvironment env = c.getEnvironment();<a name="line.468"></a>
-<span class="sourceLineNo">469</span>      Region region = env.getRegion();<a name="line.469"></a>
-<span class="sourceLineNo">470</span>      try {<a name="line.470"></a>
-<span class="sourceLineNo">471</span>        putData(region);<a name="line.471"></a>
-<span class="sourceLineNo">472</span>        RegionScanner scanner = region.getScanner(new Scan());<a name="line.472"></a>
-<span class="sourceLineNo">473</span>        List&lt;Cell&gt; result = new LinkedList&lt;&gt;();<a name="line.473"></a>
-<span class="sourceLineNo">474</span>        while (scanner.next(result)) {<a name="line.474"></a>
-<span class="sourceLineNo">475</span>          result.clear();<a name="line.475"></a>
-<span class="sourceLineNo">476</span>        }<a name="line.476"></a>
-<span class="sourceLineNo">477</span>      } catch (Exception e) {<a name="line.477"></a>
-<span class="sourceLineNo">478</span>        LOG.warn("Got exception in coprocessor", e);<a name="line.478"></a>
-<span class="sourceLineNo">479</span>      }<a name="line.479"></a>
-<span class="sourceLineNo">480</span>    }<a name="line.480"></a>
-<span class="sourceLineNo">481</span><a name="line.481"></a>
-<span class="sourceLineNo">482</span>    private void putData(Region region) throws Exception {<a name="line.482"></a>
-<span class="sourceLineNo">483</span>      Put put = new Put(ROW1);<a name="line.483"></a>
-<span class="sourceLineNo">484</span>      put.addColumn(CF1, COL1, VAL1);<a name="line.484"></a>
-<span class="sourceLineNo">485</span>      region.put(put);<a name="line.485"></a>
-<span class="sourceLineNo">486</span>      put = new Put(ROW2);<a name="line.486"></a>
-<span class="sourceLineNo">487</span>      put.addColumn(CF1, COL1, VAL1);<a name="line.487"></a>
-<span class="sourceLineNo">488</span>      region.put(put);<a name="line.488"></a>
-<span class="sourceLineNo">489</span>      put = new Put(ROW3);<a name="line.489"></a>
-<span class="sourceLineNo">490</span>      put.addColumn(CF1, COL1, VAL1);<a name="line.490"></a>
-<span class="sourceLineNo">491</span>      region.put(put);<a name="line.491"></a>
-<span class="sourceLineNo">492</span>    }<a name="line.492"></a>
-<span class="sourceLineNo">493</span>  }<a name="line.493"></a>
-<span class="sourceLineNo">494</span><a name="line.494"></a>
-<span class="sourceLineNo">495</span>  private enum Metric {REGION_READ, SERVER_READ, FILTERED_REGION_READ, FILTERED_SERVER_READ}<a name="line.495"></a>
-<span class="sourceLineNo">496</span>}<a name="line.496"></a>
+<span class="sourceLineNo">243</span>    Thread.sleep(TTL * 1000);<a name="line.243"></a>
+<span class="sourceLineNo">244</span><a name="line.244"></a>
+<span class="sourceLineNo">245</span>    put = new Put(ROW2);<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    put.addColumn(CF2, COL1, VAL1);<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    put.addColumn(CF2, COL2, VAL2);<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    table.put(put);<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>    put = new Put(ROW3);<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    put.addColumn(CF2, COL1, VAL1);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>    put.addColumn(CF2, COL2, VAL2);<a name="line.252"></a>
+<span class="sourceLineNo">253</span>    table.put(put);<a name="line.253"></a>
+<span class="sourceLineNo">254</span>  }<a name="line.254"></a>
+<span class="sourceLineNo">255</span><a name="line.255"></a>
+<span class="sourceLineNo">256</span>  @AfterClass<a name="line.256"></a>
+<span class="sourceLineNo">257</span>  public static void tearDownOnce() throws Exception {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>    TEST_UTIL.shutdownMiniCluster();<a name="line.258"></a>
+<span class="sourceLineNo">259</span>  }<a name="line.259"></a>
+<span class="sourceLineNo">260</span><a name="line.260"></a>
+<span class="sourceLineNo">261</span>  @Test<a name="line.261"></a>
+<span class="sourceLineNo">262</span>  public void testReadRequestsCountNotFiltered() throws Exception {<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    int resultCount;<a name="line.263"></a>
+<span class="sourceLineNo">264</span>    Scan scan;<a name="line.264"></a>
+<span class="sourceLineNo">265</span>    Append append;<a name="line.265"></a>
+<span class="sourceLineNo">266</span>    Put put;<a name="line.266"></a>
+<span class="sourceLineNo">267</span>    Increment increment;<a name="line.267"></a>
+<span class="sourceLineNo">268</span>    Get get;<a name="line.268"></a>
+<span class="sourceLineNo">269</span><a name="line.269"></a>
+<span class="sourceLineNo">270</span>    // test for scan<a name="line.270"></a>
+<span class="sourceLineNo">271</span>    scan = new Scan();<a name="line.271"></a>
+<span class="sourceLineNo">272</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>      resultCount = 0;<a name="line.273"></a>
+<span class="sourceLineNo">274</span>      for (Result ignore : scanner) {<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        resultCount++;<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      }<a name="line.276"></a>
+<span class="sourceLineNo">277</span>      testReadRequests(resultCount, 3, 0);<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    }<a name="line.278"></a>
+<span class="sourceLineNo">279</span><a name="line.279"></a>
+<span class="sourceLineNo">280</span>    // test for scan<a name="line.280"></a>
+<span class="sourceLineNo">281</span>    scan = new Scan(ROW2, ROW3);<a name="line.281"></a>
+<span class="sourceLineNo">282</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      resultCount = 0;<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      for (Result ignore : scanner) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>        resultCount++;<a name="line.285"></a>
+<span class="sourceLineNo">286</span>      }<a name="line.286"></a>
+<span class="sourceLineNo">287</span>      testReadRequests(resultCount, 1, 0);<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>    // test for get<a name="line.290"></a>
+<span class="sourceLineNo">291</span>    get = new Get(ROW2);<a name="line.291"></a>
+<span class="sourceLineNo">292</span>    Result result = table.get(get);<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    resultCount = result.isEmpty() ? 0 : 1;<a name="line.293"></a>
+<span class="sourceLineNo">294</span>    testReadRequests(resultCount, 1, 0);<a name="line.294"></a>
+<span class="sourceLineNo">295</span><a name="line.295"></a>
+<span class="sourceLineNo">296</span>    // test for increment<a name="line.296"></a>
+<span class="sourceLineNo">297</span>    increment = new Increment(ROW1);<a name="line.297"></a>
+<span class="sourceLineNo">298</span>    increment.addColumn(CF1, COL3, 1);<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    result = table.increment(increment);<a name="line.299"></a>
+<span class="sourceLineNo">300</span>    resultCount = result.isEmpty() ? 0 : 1;<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    testReadRequests(resultCount, 1, 0);<a name="line.301"></a>
+<span class="sourceLineNo">302</span><a name="line.302"></a>
+<span class="sourceLineNo">303</span>    // test for checkAndPut<a name="line.303"></a>
+<span class="sourceLineNo">304</span>    put = new Put(ROW1);<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    put.addColumn(CF1, COL2, VAL2);<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    boolean checkAndPut =<a name="line.306"></a>
+<span class="sourceLineNo">307</span>        table.checkAndMutate(ROW1, CF1).qualifier(COL2).ifEquals(VAL2).thenPut(put);<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    resultCount = checkAndPut ? 1 : 0;<a name="line.308"></a>
+<span class="sourceLineNo">309</span>    testReadRequests(resultCount, 1, 0);<a name="line.309"></a>
+<span class="sourceLineNo">310</span><a name="line.310"></a>
+<span class="sourceLineNo">311</span>    // test for append<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    append = new Append(ROW1);<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    append.addColumn(CF1, COL2, VAL2);<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    result = table.append(append);<a name="line.314"></a>
+<span class="sourceLineNo">315</span>    resultCount = result.isEmpty() ? 0 : 1;<a name="line.315"></a>
+<span class="sourceLineNo">316</span>    testReadRequests(resultCount, 1, 0);<a name="line.316"></a>
+<span class="sourceLineNo">317</span><a name="line.317"></a>
+<span class="sourceLineNo">318</span>    // test for checkAndMutate<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    put = new Put(ROW1);<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    put.addColumn(CF1, COL1, VAL1);<a name="line.320"></a>
+<span class="sourceLineNo">321</span>    RowMutations rm = new RowMutations(ROW1);<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    rm.add(put);<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    boolean checkAndMutate =<a name="line.323"></a>
+<span class="sourceLineNo">324</span>        table.checkAndMutate(ROW1, CF1).qualifier(COL1).ifEquals(VAL1).thenMutate(rm);<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    resultCount = checkAndMutate ? 1 : 0;<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    testReadRequests(resultCount, 1, 0);<a name="line.326"></a>
+<span class="sourceLineNo">327</span>  }<a name="line.327"></a>
+<span class="sourceLineNo">328</span><a name="line.328"></a>
+<span class="sourceLineNo">329</span>  @Test<a name="line.329"></a>
+<span class="sourceLineNo">330</span>  public void testReadRequestsCountWithFilter() throws Exception {<a name="line.330"></a>
+<span class="sourceLineNo">331</span>    int resultCount;<a name="line.331"></a>
+<span class="sourceLineNo">332</span>    Scan scan;<a name="line.332"></a>
+<span class="sourceLineNo">333</span><a name="line.333"></a>
+<span class="sourceLineNo">334</span>    // test for scan<a name="line.334"></a>
+<span class="sourceLineNo">335</span>    scan = new Scan();<a name="line.335"></a>
+<span class="sourceLineNo">336</span>    scan.setFilter(new SingleColumnValueFilter(CF1, COL1, CompareFilter.CompareOp.EQUAL, VAL1));<a name="line.336"></a>
+<span class="sourceLineNo">337</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.337"></a>
+<span class="sourceLineNo">338</span>      resultCount = 0;<a name="line.338"></a>
+<span class="sourceLineNo">339</span>      for (Result ignore : scanner) {<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        resultCount++;<a name="line.340"></a>
+<span class="sourceLineNo">341</span>      }<a name="line.341"></a>
+<span class="sourceLineNo">342</span>      testReadRequests(resultCount, 2, 1);<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>    // test for scan<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    scan = new Scan();<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    scan.setFilter(new RowFilter(CompareFilter.CompareOp.EQUAL, new BinaryComparator(ROW1)));<a name="line.347"></a>
+<span class="sourceLineNo">348</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>      resultCount = 0;<a name="line.349"></a>
+<span class="sourceLineNo">350</span>      for (Result ignore : scanner) {<a name="line.350"></a>
+<span class="sourceLineNo">351</span>        resultCount++;<a name="line.351"></a>
+<span class="sourceLineNo">352</span>      }<a name="line.352"></a>
+<span class="sourceLineNo">353</span>      testReadRequests(resultCount, 1, 2);<a name="line.353"></a>
+<span class="sourceLineNo">354</span>    }<a name="line.354"></a>
+<span class="sourceLineNo">355</span><a name="line.355"></a>
+<span class="sourceLineNo">356</span>    // test for scan<a name="line.356"></a>
+<span class="sourceLineNo">357</span>    scan = new Scan(ROW2, ROW3);<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    scan.setFilter(new RowFilter(CompareFilter.CompareOp.EQUAL, new BinaryComparator(ROW1)));<a name="line.358"></a>
+<span class="sourceLineNo">359</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.359"></a>
+<span class="sourceLineNo">360</span>      resultCount = 0;<a name="line.360"></a>
+<span class="sourceLineNo">361</span>      for (Result ignore : scanner) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>        resultCount++;<a name="line.362"></a>
+<span class="sourceLineNo">363</span>      }<a name="line.363"></a>
+<span class="sourceLineNo">364</span>      testReadRequests(resultCount, 0, 1);<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    }<a name="line.365"></a>
+<span class="sourceLineNo">366</span><a name="line.366"></a>
+<span class="sourceLineNo">367</span>    // fixme filtered get should not increase readRequestsCount<a name="line.367"></a>
+<span class="sourceLineNo">368</span>//    Get get = new Get(ROW2);<a name="line.368"></a>
+<span class="sourceLineNo">369</span>//    get.setFilter(new SingleColumnValueFilter(CF1, COL1, CompareFilter.CompareOp.EQUAL, VAL1));<a name="line.369"></a>
+<span class="sourceLineNo">370</span>//    Result result = table.get(get);<a name="line.370"></a>
+<span class="sourceLineNo">371</span>//    resultCount = result.isEmpty() ? 0 : 1;<a name="line.371"></a>
+<span class="sourceLineNo">372</span>//    testReadRequests(resultCount, 0, 1);<a name="line.372"></a>
+<span class="sourceLineNo">373</span>  }<a name="line.373"></a>
+<span class="sourceLineNo">374</span><a name="line.374"></a>
+<span class="sourceLineNo">375</span>  @Test<a name="line.375"></a>
+<span class="sourceLineNo">376</span>  public void testReadRequestsCountWithDeletedRow() throws Exception {<a name="line.376"></a>
+<span class="sourceLineNo">377</span>    try {<a name="line.377"></a>
+<span class="sourceLineNo">378</span>      Delete delete = new Delete(ROW3);<a name="line.378"></a>
+<span class="sourceLineNo">379</span>      table.delete(delete);<a name="line.379"></a>
+<span class="sourceLineNo">380</span><a name="line.380"></a>
+<span class="sourceLineNo">381</span>      Scan scan = new Scan();<a name="line.381"></a>
+<span class="sourceLineNo">382</span>      try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.382"></a>
+<span class="sourceLineNo">383</span>        int resultCount = 0;<a name="line.383"></a>
+<span class="sourceLineNo">384</span>        for (Result ignore : scanner) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>          resultCount++;<a name="line.385"></a>
+<span class="sourceLineNo">386</span>        }<a name="line.386"></a>
+<span class="sourceLineNo">387</span>        testReadRequests(resultCount, 2, 1);<a name="line.387"></a>
+<span class="sourceLineNo">388</span>      }<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    } finally {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>      Put put = new Put(ROW3);<a name="line.390"></a>
+<span class="sourceLineNo">391</span>      put.addColumn(CF1, COL1, VAL1);<a name="line.391"></a>
+<span class="sourceLineNo">392</span>      put.addColumn(CF1, COL2, VAL2);<a name="line.392"></a>
+<span class="sourceLineNo">393</span>      table.put(put);<a name="line.393"></a>
+<span class="sourceLineNo">394</span>    }<a name="line.394"></a>
+<span class="sourceLineNo">395</span>  }<a name="line.395"></a>
+<span class="sourceLineNo">396</span><a name="line.396"></a>
+<span class="sourceLineNo">397</span>  @Test<a name="line.397"></a>
+<span class="sourceLineNo">398</span>  public void testReadRequestsCountWithTTLExpiration() throws Exception {<a name="line.398"></a>
+<span class="sourceLineNo">399</span>    putTTLExpiredData();<a name="line.399"></a>
+<span class="sourceLineNo">400</span><a name="line.400"></a>
+<span class="sourceLineNo">401</span>    Scan scan = new Scan();<a name="line.401"></a>
+<span class="sourceLineNo">402</span>    scan.addFamily(CF2);<a name="line.402"></a>
+<span class="sourceLineNo">403</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.403"></a>
+<span class="sourceLineNo">404</span>      int resultCount = 0;<a name="line.404"></a>
+<span class="sourceLineNo">405</span>      for (Result ignore : scanner) {<a name="line.405"></a>
+<span class="sourceLineNo">406</span>        resultCount++;<a name="line.406"></a>
+<span class="sourceLineNo">407</span>      }<a name="line.407"></a>
+<span class="sourceLineNo">408</span>      testReadRequests(resultCount, 2, 1);<a name="line.408"></a>
+<span class="sourceLineNo">409</span>    }<a name="line.409"></a>
+<span class="sourceLineNo">410</span>  }<a name="line.410"></a>
+<span class="sourceLineNo">411</span><a name="line.411"></a>
+<span class="sourceLineNo">412</span>  @Test<a name="line.412"></a>
+<span class="sourceLineNo">413</span>  public void testReadRequestsWithCoprocessor() throws Exception {<a name="line.413"></a>
+<span class="sourceLineNo">414</span>    TableName tableName = TableName.valueOf("testReadRequestsWithCoprocessor");<a name="line.414"></a>
+<span class="sourceLineNo">415</span>    TableDescriptorBuilder builder = TableDescriptorBuilder.newBuilder(tableName);<a name="line.415"></a>
+<span class="sourceLineNo">416</span>    builder.addColumnFamily(ColumnFamilyDescriptorBuilder.of(CF1));<a name="line.416"></a>
+<span class="sourceLineNo">417</span>    builder.addCoprocessor(ScanRegionCoprocessor.class.getName());<a name="line.417"></a>
+<span class="sourceLineNo">418</span>    admin.createTable(builder.build());<a name="line.418"></a>
+<span class="sourceLineNo">419</span><a name="line.419"></a>
+<span class="sourceLineNo">420</span>    try {<a name="line.420"></a>
+<span class="sourceLineNo">421</span>      TEST_UTIL.waitTableAvailable(tableName);<a name="line.421"></a>
+<span class="sourceLineNo">422</span>      List&lt;RegionInfo&gt; regionInfos = admin.getRegions(tableName);<a name="line.422"></a>
+<span class="sourceLineNo">423</span>      assertEquals("Table " + TABLE_NAME + " should have 1 region", 1, regionInfos.size());<a name="line.423"></a>
+<span class="sourceLineNo">424</span>      boolean success = true;<a name="line.424"></a>
+<span class="sourceLineNo">425</span>      int i = 0;<a name="line.425"></a>
+<span class="sourceLineNo">426</span>      for (; i &lt; MAX_TRY; i++) {<a name="line.426"></a>
+<span class="sourceLineNo">427</span>        try {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>          testReadRequests(regionInfos.get(0).getRegionName(), 3);<a name="line.428"></a>
+<span class="sourceLineNo">429</span>        } catch (Throwable t) {<a name="line.429"></a>
+<span class="sourceLineNo">430</span>          LOG.warn("Got exception when try " + i + " times", t);<a name="line.430"></a>
+<span class="sourceLineNo">431</span>          Thread.sleep(SLEEP_MS);<a name="line.431"></a>
+<span class="sourceLineNo">432</span>          success = false;<a name="line.432"></a>
+<span class="sourceLineNo">433</span>        }<a name="line.433"></a>
+<span class="sourceLineNo">434</span>        if (success) {<a name="line.434"></a>
+<span class="sourceLineNo">435</span>          break;<a name="line.435"></a>
+<span class="sourceLineNo">436</span>        }<a name="line.436"></a>
+<span class="sourceLineNo">437</span>      }<a name="line.437"></a>
+<span class="sourceLineNo">438</span>      if (i == MAX_TRY) {<a name="line.438"></a>
+<span class="sourceLineNo">439</span>        fail("Failed to get right read requests metric after try " + i + " times");<a name="line.439"></a>
+<span class="sourceLineNo">440</span>      }<a name="line.440"></a>
+<span class="sourceLineNo">441</span>    } finally {<a name="line.441"></a>
+<span class="sourceLineNo">442</span>      admin.disableTable(tableName);<a name="line.442"></a>
+<span class="sourceLineNo">443</span>      admin.deleteTable(tableName);<a name="line.443"></a>
+<span class="sourceLineNo">444</span>    }<a name="line.444"></a>
+<span class="sourceLineNo">445</span>  }<a name="line.445"></a>
+<span class="sourceLineNo">446</span><a name="line.446"></a>
+<span class="sourceLineNo">447</span>  private void testReadRequests(byte[] regionName, int expectedReadRequests) throws Exception {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>    for (ServerName serverName : serverNames) {<a name="line.448"></a>
+<span class="sourceLineNo">449</span>      ServerLoad serverLoad = new ServerLoad(admin.getClusterMetrics(<a name="line.449"></a>
+<span class="sourceLineNo">450</span>        EnumSet.of(Option.LIVE_SERVERS)).getLiveServerMetrics().get(serverName));<a name="line.450"></a>
+<span class="sourceLineNo">451</span>      Map&lt;byte[], RegionLoad&gt; regionsLoad = serverLoad.getRegionsLoad();<a name="line.451"></a>
+<span class="sourceLineNo">452</span>      RegionLoad regionLoad = regionsLoad.get(regionName);<a name="line.452"></a>
+<span class="sourceLineNo">453</span>      if (regionLoad != null) {<a name="line.453"></a>
+<span class="sourceLineNo">454</span>        LOG.debug("server read request is " + serverLoad.getReadRequestsCount()<a name="line.454"></a>
+<span class="sourceLineNo">455</span>            + ", region read request is " + regionLoad.getReadRequestsCount());<a name="line.455"></a>
+<span class="sourceLineNo">456</span>        assertEquals(3, serverLoad.getReadRequestsCount());<a name="line.456"></a>
+<span class="sourceLineNo">457</span>        assertEquals(3, regionLoad.getReadRequestsCount());<a name="line.457"></a>
+<span class="sourceLineNo">458</span>      }<a name="line.458"></a>
+<span class="sourceLineNo">459</span>    }<a name="line.459"></a>
+<span class="sourceLineNo">460</span>  }<a name="line.460"></a>
+<span class="sourceLineNo">461</span><a name="line.461"></a>
+<span class="sourceLineNo">462</span>  public static class ScanRegionCoprocessor implements RegionCoprocessor, RegionObserver {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>    @Override<a name="line.463"></a>
+<span class="sourceLineNo">464</span>    public Optional&lt;RegionObserver&gt; getRegionObserver() {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>      return Optional.of(this);<a name="line.465"></a>
+<span class="sourceLineNo">466</span>    }<a name="line.466"></a>
+<span class="sourceLineNo">467</span><a name="line.467"></a>
+<span class="sourceLineNo">468</span>    @Override<a name="line.468"></a>
+<span class="sourceLineNo">469</span>    public void postOpen(ObserverContext&lt;RegionCoprocessorEnvironment&gt; c) {<a name="line.469"></a>
+<span class="sourceLineNo">470</span>      RegionCoprocessorEnvironment env = c.getEnvironment();<a name="line.470"></a>
+<span class="sourceLineNo">471</span>      Region region = env.getRegion();<a name="line.471"></a>
+<span class="sourceLineNo">472</span>      try {<a name="line.472"></a>
+<span class="sourceLineNo">473</span>        putData(region);<a name="line.473"></a>
+<span class="sourceLineNo">474</span>        RegionScanner scanner = region.getScanner(new Scan());<a name="line.474"></a>
+<span class="sourceLineNo">475</span>        List&lt;Cell&gt; result = new LinkedList&lt;&gt;();<a name="line.475"></a>
+<span class="sourceLineNo">476</span>        while (scanner.next(result)) {<a name="line.476"></a>
+<span class="sourceLineNo">477</span>          result.clear();<a name="line.477"></a>
+<span class="sourceLineNo">478</span>        }<a name="line.478"></a>
+<span class="sourceLineNo">479</span>      } catch (Exception e) {<a name="line.479"></a>
+<span class="sourceLineNo">480</span>        LOG.warn("Got exception in coprocessor", e);<a name="line.480"></a>
+<span class="sourceLineNo">481</span>      }<a name="line.481"></a>
+<span class="sourceLineNo">482</span>    }<a name="line.482"></a>
+<span class="sourceLineNo">483</span><a name="line.483"></a>
+<span class="sourceLineNo">484</span>    private void putData(Region region) throws Exception {<a name="line.484"></a>
+<span class="sourceLineNo">485</span>      Put put = new Put(ROW1);<a name="line.485"></a>
+<span class="sourceLineNo">486</span>      put.addColumn(CF1, COL1, VAL1);<a name="line.486"></a>
+<span class="sourceLineNo">487</span>      region.put(put);<a name="line.487"></a>
+<span class="sourceLineNo">488</span>      put = new Put(ROW2);<a name="line.488"></a>
+<span class="sourceLineNo">489</span>      put.addColumn(CF1, COL1, VAL1);<a name="line.489"></a>
+<span class="sourceLineNo">490</span>      region.put(put);<a name="line.490"></a>
+<span class="sourceLineNo">491</span>      put = new Put(ROW3);<a name="line.491"></a>
+<span class="sourceLineNo">492</span>      put.addColumn(CF1, COL1, VAL1);<a name="line.492"></a>
+<span class="sourceLineNo">493</span>      region.put(put);<a name="line.493"></a>
+<span class="sourceLineNo">494</span>    }<a name="line.494"></a>
+<span class="sourceLineNo">495</span>  }<a name="line.495"></a>
+<span class="sourceLineNo">496</span><a name="line.496"></a>
+<span class="sourceLineNo">497</span>  private enum Metric {REGION_READ, SERVER_READ, FILTERED_REGION_READ, FILTERED_SERVER_READ}<a name="line.497"></a>
+<span class="sourceLineNo">498</span>}<a name="line.498"></a>
 
 
 


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html b/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html
index e02ee50..a708c67 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html
@@ -42,472 +42,473 @@
 <span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.TableName;<a name="line.34"></a>
 <span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.backup.BackupInfo;<a name="line.35"></a>
 <span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.backup.BackupInfo.BackupState;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.backup.BackupRestoreConstants;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.backup.BackupType;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.backup.HBackupFileSystem;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.backup.impl.BackupManifest.BackupImage;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.backup.master.BackupLogCleaner;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.backup.master.LogRollMasterProcedureManager;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.backup.regionserver.LogRollRegionServerProcedureManager;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.client.Admin;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.client.Connection;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.procedure.ProcedureManagerHost;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.slf4j.Logger;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.slf4j.LoggerFactory;<a name="line.50"></a>
-<span class="sourceLineNo">051</span><a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hbase.thirdparty.com.google.common.annotations.VisibleForTesting;<a name="line.52"></a>
+<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.backup.BackupObserver;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.backup.BackupRestoreConstants;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.backup.BackupType;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.backup.HBackupFileSystem;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.backup.impl.BackupManifest.BackupImage;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.backup.master.BackupLogCleaner;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.backup.master.LogRollMasterProcedureManager;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.backup.regionserver.LogRollRegionServerProcedureManager;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.client.Admin;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.client.Connection;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.coprocessor.CoprocessorHost;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.procedure.ProcedureManagerHost;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.slf4j.Logger;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.slf4j.LoggerFactory;<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> * Handles backup requests, creates backup info records in backup system table to<a name="line.55"></a>
-<span class="sourceLineNo">056</span> * keep track of backup sessions, dispatches backup request.<a name="line.56"></a>
-<span class="sourceLineNo">057</span> */<a name="line.57"></a>
-<span class="sourceLineNo">058</span>@InterfaceAudience.Private<a name="line.58"></a>
-<span class="sourceLineNo">059</span>public class BackupManager implements Closeable {<a name="line.59"></a>
-<span class="sourceLineNo">060</span>  private static final Logger LOG = LoggerFactory.getLogger(BackupManager.class);<a name="line.60"></a>
-<span class="sourceLineNo">061</span><a name="line.61"></a>
-<span class="sourceLineNo">062</span>  protected Configuration conf = null;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>  protected BackupInfo backupInfo = null;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>  protected BackupSystemTable systemTable;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>  protected final Connection conn;<a name="line.65"></a>
-<span class="sourceLineNo">066</span><a name="line.66"></a>
-<span class="sourceLineNo">067</span>  /**<a name="line.67"></a>
-<span class="sourceLineNo">068</span>   * Backup manager constructor.<a name="line.68"></a>
-<span class="sourceLineNo">069</span>   * @param conn connection<a name="line.69"></a>
-<span class="sourceLineNo">070</span>   * @param conf configuration<a name="line.70"></a>
-<span class="sourceLineNo">071</span>   * @throws IOException exception<a name="line.71"></a>
-<span class="sourceLineNo">072</span>   */<a name="line.72"></a>
-<span class="sourceLineNo">073</span>  public BackupManager(Connection conn, Configuration conf) throws IOException {<a name="line.73"></a>
-<span class="sourceLineNo">074</span>    if (!conf.getBoolean(BackupRestoreConstants.BACKUP_ENABLE_KEY,<a name="line.74"></a>
-<span class="sourceLineNo">075</span>      BackupRestoreConstants.BACKUP_ENABLE_DEFAULT)) {<a name="line.75"></a>
-<span class="sourceLineNo">076</span>      throw new BackupException("HBase backup is not enabled. Check your "<a name="line.76"></a>
-<span class="sourceLineNo">077</span>          + BackupRestoreConstants.BACKUP_ENABLE_KEY + " setting.");<a name="line.77"></a>
-<span class="sourceLineNo">078</span>    }<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    this.conf = conf;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>    this.conn = conn;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    this.systemTable = new BackupSystemTable(conn);<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">054</span>import org.apache.hbase.thirdparty.com.google.common.annotations.VisibleForTesting;<a name="line.54"></a>
+<span class="sourceLineNo">055</span><a name="line.55"></a>
+<span class="sourceLineNo">056</span>/**<a name="line.56"></a>
+<span class="sourceLineNo">057</span> * Handles backup requests, creates backup info records in backup system table to<a name="line.57"></a>
+<span class="sourceLineNo">058</span> * keep track of backup sessions, dispatches backup request.<a name="line.58"></a>
+<span class="sourceLineNo">059</span> */<a name="line.59"></a>
+<span class="sourceLineNo">060</span>@InterfaceAudience.Private<a name="line.60"></a>
+<span class="sourceLineNo">061</span>public class BackupManager implements Closeable {<a name="line.61"></a>
+<span class="sourceLineNo">062</span>  private static final Logger LOG = LoggerFactory.getLogger(BackupManager.class);<a name="line.62"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span>  protected Configuration conf = null;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>  protected BackupInfo backupInfo = null;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>  protected BackupSystemTable systemTable;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>  protected final Connection conn;<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>   * Backup manager constructor.<a name="line.70"></a>
+<span class="sourceLineNo">071</span>   * @param conn connection<a name="line.71"></a>
+<span class="sourceLineNo">072</span>   * @param conf configuration<a name="line.72"></a>
+<span class="sourceLineNo">073</span>   * @throws IOException exception<a name="line.73"></a>
+<span class="sourceLineNo">074</span>   */<a name="line.74"></a>
+<span class="sourceLineNo">075</span>  public BackupManager(Connection conn, Configuration conf) throws IOException {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>    if (!conf.getBoolean(BackupRestoreConstants.BACKUP_ENABLE_KEY,<a name="line.76"></a>
+<span class="sourceLineNo">077</span>      BackupRestoreConstants.BACKUP_ENABLE_DEFAULT)) {<a name="line.77"></a>
+<span class="sourceLineNo">078</span>      throw new BackupException("HBase backup is not enabled. Check your "<a name="line.78"></a>
+<span class="sourceLineNo">079</span>          + BackupRestoreConstants.BACKUP_ENABLE_KEY + " setting.");<a name="line.79"></a>
+<span class="sourceLineNo">080</span>    }<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    this.conf = conf;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    this.conn = conn;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>    this.systemTable = new BackupSystemTable(conn);<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>   * Returns backup info<a name="line.86"></a>
-<span class="sourceLineNo">087</span>   */<a name="line.87"></a>
-<span class="sourceLineNo">088</span>  protected BackupInfo getBackupInfo() {<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    return backupInfo;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>  }<a name="line.90"></a>
-<span class="sourceLineNo">091</span><a name="line.91"></a>
-<span class="sourceLineNo">092</span>  /**<a name="line.92"></a>
-<span class="sourceLineNo">093</span>   * This method modifies the master's configuration in order to inject backup-related features<a name="line.93"></a>
-<span class="sourceLineNo">094</span>   * (TESTs only)<a name="line.94"></a>
-<span class="sourceLineNo">095</span>   * @param conf configuration<a name="line.95"></a>
-<span class="sourceLineNo">096</span>   */<a name="line.96"></a>
-<span class="sourceLineNo">097</span>  @VisibleForTesting<a name="line.97"></a>
-<span class="sourceLineNo">098</span>  public static void decorateMasterConfiguration(Configuration conf) {<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    if (!isBackupEnabled(conf)) {<a name="line.99"></a>
-<span class="sourceLineNo">100</span>      return;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    }<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    // Add WAL archive cleaner plug-in<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    String plugins = conf.get(HConstants.HBASE_MASTER_LOGCLEANER_PLUGINS);<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    String cleanerClass = BackupLogCleaner.class.getCanonicalName();<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    if (!plugins.contains(cleanerClass)) {<a name="line.105"></a>
-<span class="sourceLineNo">106</span>      conf.set(HConstants.HBASE_MASTER_LOGCLEANER_PLUGINS, plugins + "," + cleanerClass);<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    }<a name="line.107"></a>
-<span class="sourceLineNo">108</span><a name="line.108"></a>
-<span class="sourceLineNo">109</span>    String classes = conf.get(ProcedureManagerHost.MASTER_PROCEDURE_CONF_KEY);<a name="line.109"></a>
-<span class="sourceLineNo">110</span>    String masterProcedureClass = LogRollMasterProcedureManager.class.getName();<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    if (classes == null) {<a name="line.111"></a>
-<span class="sourceLineNo">112</span>      conf.set(ProcedureManagerHost.MASTER_PROCEDURE_CONF_KEY, masterProcedureClass);<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    } else if (!classes.contains(masterProcedureClass)) {<a name="line.113"></a>
-<span class="sourceLineNo">114</span>      conf.set(ProcedureManagerHost.MASTER_PROCEDURE_CONF_KEY, classes + "," + masterProcedureClass);<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    }<a name="line.115"></a>
-<span class="sourceLineNo">116</span><a name="line.116"></a>
-<span class="sourceLineNo">117</span>    if (LOG.isDebugEnabled()) {<a name="line.117"></a>
-<span class="sourceLineNo">118</span>      LOG.debug("Added log cleaner: " + cleanerClass + "\n" + "Added master procedure manager: "<a name="line.118"></a>
-<span class="sourceLineNo">119</span>          + masterProcedureClass);<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    }<a name="line.120"></a>
-<span class="sourceLineNo">121</span><a name="line.121"></a>
-<span class="sourceLineNo">122</span>  }<a name="line.122"></a>
+<span class="sourceLineNo">085</span>  }<a name="line.85"></a>
+<span class="sourceLineNo">086</span><a name="line.86"></a>
+<span class="sourceLineNo">087</span>  /**<a name="line.87"></a>
+<span class="sourceLineNo">088</span>   * Returns backup info<a name="line.88"></a>
+<span class="sourceLineNo">089</span>   */<a name="line.89"></a>
+<span class="sourceLineNo">090</span>  protected BackupInfo getBackupInfo() {<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    return backupInfo;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>  }<a name="line.92"></a>
+<span class="sourceLineNo">093</span><a name="line.93"></a>
+<span class="sourceLineNo">094</span>  /**<a name="line.94"></a>
+<span class="sourceLineNo">095</span>   * This method modifies the master's configuration in order to inject backup-related features<a name="line.95"></a>
+<span class="sourceLineNo">096</span>   * (TESTs only)<a name="line.96"></a>
+<span class="sourceLineNo">097</span>   * @param conf configuration<a name="line.97"></a>
+<span class="sourceLineNo">098</span>   */<a name="line.98"></a>
+<span class="sourceLineNo">099</span>  @VisibleForTesting<a name="line.99"></a>
+<span class="sourceLineNo">100</span>  public static void decorateMasterConfiguration(Configuration conf) {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    if (!isBackupEnabled(conf)) {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>      return;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    }<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    // Add WAL archive cleaner plug-in<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    String plugins = conf.get(HConstants.HBASE_MASTER_LOGCLEANER_PLUGINS);<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    String cleanerClass = BackupLogCleaner.class.getCanonicalName();<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    if (!plugins.contains(cleanerClass)) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>      conf.set(HConstants.HBASE_MASTER_LOGCLEANER_PLUGINS, plugins + "," + cleanerClass);<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    }<a name="line.109"></a>
+<span class="sourceLineNo">110</span><a name="line.110"></a>
+<span class="sourceLineNo">111</span>    String classes = conf.get(ProcedureManagerHost.MASTER_PROCEDURE_CONF_KEY);<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    String masterProcedureClass = LogRollMasterProcedureManager.class.getName();<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    if (classes == null) {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>      conf.set(ProcedureManagerHost.MASTER_PROCEDURE_CONF_KEY, masterProcedureClass);<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    } else if (!classes.contains(masterProcedureClass)) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>      conf.set(ProcedureManagerHost.MASTER_PROCEDURE_CONF_KEY, classes + "," + masterProcedureClass);<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    }<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>    if (LOG.isDebugEnabled()) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>      LOG.debug("Added log cleaner: " + cleanerClass + "\n" + "Added master procedure manager: "<a name="line.120"></a>
+<span class="sourceLineNo">121</span>          + masterProcedureClass);<a name="line.121"></a>
+<span class="sourceLineNo">122</span>    }<a name="line.122"></a>
 <span class="sourceLineNo">123</span><a name="line.123"></a>
-<span class="sourceLineNo">124</span>  /**<a name="line.124"></a>
-<span class="sourceLineNo">125</span>   * This method modifies the Region Server configuration in order to inject backup-related features<a name="line.125"></a>
-<span class="sourceLineNo">126</span>   * TESTs only.<a name="line.126"></a>
-<span class="sourceLineNo">127</span>   * @param conf configuration<a name="line.127"></a>
-<span class="sourceLineNo">128</span>   */<a name="line.128"></a>
-<span class="sourceLineNo">129</span>  @VisibleForTesting<a name="line.129"></a>
-<span class="sourceLineNo">130</span>  public static void decorateRegionServerConfiguration(Configuration conf) {<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    if (!isBackupEnabled(conf)) {<a name="line.131"></a>
-<span class="sourceLineNo">132</span>      return;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>    }<a name="line.133"></a>
-<span class="sourceLineNo">134</span><a name="line.134"></a>
-<span class="sourceLineNo">135</span>    String classes = conf.get(ProcedureManagerHost.REGIONSERVER_PROCEDURE_CONF_KEY);<a name="line.135"></a>
-<span class="sourceLineNo">136</span>    String regionProcedureClass = LogRollRegionServerProcedureManager.class.getName();<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    if (classes == null) {<a name="line.137"></a>
-<span class="sourceLineNo">138</span>      conf.set(ProcedureManagerHost.REGIONSERVER_PROCEDURE_CONF_KEY, regionProcedureClass);<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    } else if (!classes.contains(regionProcedureClass)) {<a name="line.139"></a>
-<span class="sourceLineNo">140</span>      conf.set(ProcedureManagerHost.REGIONSERVER_PROCEDURE_CONF_KEY, classes + ","<a name="line.140"></a>
-<span class="sourceLineNo">141</span>          + regionProcedureClass);<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    }<a name="line.142"></a>
-<span class="sourceLineNo">143</span>    if (LOG.isDebugEnabled()) {<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      LOG.debug("Added region procedure manager: " + regionProcedureClass);<a name="line.144"></a>
-<span class="sourceLineNo">145</span>    }<a name="line.145"></a>
-<span class="sourceLineNo">146</span><a name="line.146"></a>
-<span class="sourceLineNo">147</span>  }<a name="line.147"></a>
-<span class="sourceLineNo">148</span><a name="line.148"></a>
-<span class="sourceLineNo">149</span>  public static boolean isBackupEnabled(Configuration conf) {<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    return conf.getBoolean(BackupRestoreConstants.BACKUP_ENABLE_KEY,<a name="line.150"></a>
-<span class="sourceLineNo">151</span>      BackupRestoreConstants.BACKUP_ENABLE_DEFAULT);<a name="line.151"></a>
-<span class="sourceLineNo">152</span>  }<a name="line.152"></a>
-<span class="sourceLineNo">153</span><a name="line.153"></a>
-<span class="sourceLineNo">154</span>  /**<a name="line.154"></a>
-<span class="sourceLineNo">155</span>   * Get configuration<a name="line.155"></a>
-<span class="sourceLineNo">156</span>   * @return configuration<a name="line.156"></a>
-<span class="sourceLineNo">157</span>   */<a name="line.157"></a>
-<span class="sourceLineNo">158</span>  Configuration getConf() {<a name="line.158"></a>
-<span class="sourceLineNo">159</span>    return conf;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>  }<a name="line.160"></a>
-<span class="sourceLineNo">161</span><a name="line.161"></a>
-<span class="sourceLineNo">162</span>  /**<a name="line.162"></a>
-<span class="sourceLineNo">163</span>   * Stop all the work of backup.<a name="line.163"></a>
-<span class="sourceLineNo">164</span>   */<a name="line.164"></a>
-<span class="sourceLineNo">165</span>  @Override<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  public void close() {<a name="line.166"></a>
+<span class="sourceLineNo">124</span>  }<a name="line.124"></a>
+<span class="sourceLineNo">125</span><a name="line.125"></a>
+<span class="sourceLineNo">126</span>  /**<a name="line.126"></a>
+<span class="sourceLineNo">127</span>   * This method modifies the Region Server configuration in order to inject backup-related features<a name="line.127"></a>
+<span class="sourceLineNo">128</span>   * TESTs only.<a name="line.128"></a>
+<span class="sourceLineNo">129</span>   * @param conf configuration<a name="line.129"></a>
+<span class="sourceLineNo">130</span>   */<a name="line.130"></a>
+<span class="sourceLineNo">131</span>  @VisibleForTesting<a name="line.131"></a>
+<span class="sourceLineNo">132</span>  public static void decorateRegionServerConfiguration(Configuration conf) {<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    if (!isBackupEnabled(conf)) {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>      return;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    }<a name="line.135"></a>
+<span class="sourceLineNo">136</span><a name="line.136"></a>
+<span class="sourceLineNo">137</span>    String classes = conf.get(ProcedureManagerHost.REGIONSERVER_PROCEDURE_CONF_KEY);<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    String regionProcedureClass = LogRollRegionServerProcedureManager.class.getName();<a name="line.138"></a>
+<span class="sourceLineNo">139</span>    if (classes == null) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>      conf.set(ProcedureManagerHost.REGIONSERVER_PROCEDURE_CONF_KEY, regionProcedureClass);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    } else if (!classes.contains(regionProcedureClass)) {<a name="line.141"></a>
+<span class="sourceLineNo">142</span>      conf.set(ProcedureManagerHost.REGIONSERVER_PROCEDURE_CONF_KEY, classes + ","<a name="line.142"></a>
+<span class="sourceLineNo">143</span>          + regionProcedureClass);<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    }<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    String coproc = conf.get(CoprocessorHost.REGION_COPROCESSOR_CONF_KEY);<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    String regionObserverClass = BackupObserver.class.getName();<a name="line.146"></a>
+<span class="sourceLineNo">147</span>    conf.set(CoprocessorHost.REGION_COPROCESSOR_CONF_KEY, (coproc == null ? "" : coproc + ",") +<a name="line.147"></a>
+<span class="sourceLineNo">148</span>        regionObserverClass);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>    if (LOG.isDebugEnabled()) {<a name="line.149"></a>
+<span class="sourceLineNo">150</span>      LOG.debug("Added region procedure manager: " + regionProcedureClass +<a name="line.150"></a>
+<span class="sourceLineNo">151</span>        ". Added region observer: " + regionObserverClass);<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    }<a name="line.152"></a>
+<span class="sourceLineNo">153</span>  }<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span>  public static boolean isBackupEnabled(Configuration conf) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>    return conf.getBoolean(BackupRestoreConstants.BACKUP_ENABLE_KEY,<a name="line.156"></a>
+<span class="sourceLineNo">157</span>      BackupRestoreConstants.BACKUP_ENABLE_DEFAULT);<a name="line.157"></a>
+<span class="sourceLineNo">158</span>  }<a name="line.158"></a>
+<span class="sourceLineNo">159</span><a name="line.159"></a>
+<span class="sourceLineNo">160</span>  /**<a name="line.160"></a>
+<span class="sourceLineNo">161</span>   * Get configuration<a name="line.161"></a>
+<span class="sourceLineNo">162</span>   * @return configuration<a name="line.162"></a>
+<span class="sourceLineNo">163</span>   */<a name="line.163"></a>
+<span class="sourceLineNo">164</span>  Configuration getConf() {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    return conf;<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>    if (systemTable != null) {<a name="line.168"></a>
-<span class="sourceLineNo">169</span>      try {<a name="line.169"></a>
-<span class="sourceLineNo">170</span>        systemTable.close();<a name="line.170"></a>
-<span class="sourceLineNo">171</span>      } catch (Exception e) {<a name="line.171"></a>
-<span class="sourceLineNo">172</span>        LOG.error(e.toString(), e);<a name="line.172"></a>
-<span class="sourceLineNo">173</span>      }<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    }<a name="line.174"></a>
-<span class="sourceLineNo">175</span>  }<a name="line.175"></a>
-<span class="sourceLineNo">176</span><a name="line.176"></a>
-<span class="sourceLineNo">177</span>  /**<a name="line.177"></a>
-<span class="sourceLineNo">178</span>   * Creates a backup info based on input backup request.<a name="line.178"></a>
-<span class="sourceLineNo">179</span>   * @param backupId backup id<a name="line.179"></a>
-<span class="sourceLineNo">180</span>   * @param type type<a name="line.180"></a>
-<span class="sourceLineNo">181</span>   * @param tableList table list<a name="line.181"></a>
-<span class="sourceLineNo">182</span>   * @param targetRootDir root dir<a name="line.182"></a>
-<span class="sourceLineNo">183</span>   * @param workers number of parallel workers<a name="line.183"></a>
-<span class="sourceLineNo">184</span>   * @param bandwidth bandwidth per worker in MB per sec<a name="line.184"></a>
-<span class="sourceLineNo">185</span>   * @return BackupInfo<a name="line.185"></a>
-<span class="sourceLineNo">186</span>   * @throws BackupException exception<a name="line.186"></a>
-<span class="sourceLineNo">187</span>   */<a name="line.187"></a>
-<span class="sourceLineNo">188</span>  public BackupInfo createBackupInfo(String backupId, BackupType type, List&lt;TableName&gt; tableList,<a name="line.188"></a>
-<span class="sourceLineNo">189</span>      String targetRootDir, int workers, long bandwidth) throws BackupException {<a name="line.189"></a>
-<span class="sourceLineNo">190</span>    if (targetRootDir == null) {<a name="line.190"></a>
-<span class="sourceLineNo">191</span>      throw new BackupException("Wrong backup request parameter: target backup root directory");<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    }<a name="line.192"></a>
-<span class="sourceLineNo">193</span><a name="line.193"></a>
-<span class="sourceLineNo">194</span>    if (type == BackupType.FULL &amp;&amp; (tableList == null || tableList.isEmpty())) {<a name="line.194"></a>
-<span class="sourceLineNo">195</span>      // If table list is null for full backup, which means backup all tables. Then fill the table<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      // list with all user tables from meta. It no table available, throw the request exception.<a name="line.196"></a>
-<span class="sourceLineNo">197</span><a name="line.197"></a>
-<span class="sourceLineNo">198</span>      HTableDescriptor[] htds = null;<a name="line.198"></a>
-<span class="sourceLineNo">199</span>      try (Admin admin = conn.getAdmin()) {<a name="line.199"></a>
-<span class="sourceLineNo">200</span>        htds = admin.listTables();<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      } catch (Exception e) {<a name="line.201"></a>
-<span class="sourceLineNo">202</span>        throw new BackupException(e);<a name="line.202"></a>
-<span class="sourceLineNo">203</span>      }<a name="line.203"></a>
-<span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span>      if (htds == null) {<a name="line.205"></a>
-<span class="sourceLineNo">206</span>        throw new BackupException("No table exists for full backup of all tables.");<a name="line.206"></a>
-<span class="sourceLineNo">207</span>      } else {<a name="line.207"></a>
-<span class="sourceLineNo">208</span>        tableList = new ArrayList&lt;&gt;();<a name="line.208"></a>
-<span class="sourceLineNo">209</span>        for (HTableDescriptor hTableDescriptor : htds) {<a name="line.209"></a>
-<span class="sourceLineNo">210</span>          TableName tn = hTableDescriptor.getTableName();<a name="line.210"></a>
-<span class="sourceLineNo">211</span>          if (tn.equals(BackupSystemTable.getTableName(conf))) {<a name="line.211"></a>
-<span class="sourceLineNo">212</span>            // skip backup system table<a name="line.212"></a>
-<span class="sourceLineNo">213</span>            continue;<a name="line.213"></a>
-<span class="sourceLineNo">214</span>          }<a name="line.214"></a>
-<span class="sourceLineNo">215</span>          tableList.add(hTableDescriptor.getTableName());<a name="line.215"></a>
-<span class="sourceLineNo">216</span>        }<a name="line.216"></a>
-<span class="sourceLineNo">217</span><a name="line.217"></a>
-<span class="sourceLineNo">218</span>        LOG.info("Full backup all the tables available in the cluster: " + tableList);<a name="line.218"></a>
-<span class="sourceLineNo">219</span>      }<a name="line.219"></a>
-<span class="sourceLineNo">220</span>    }<a name="line.220"></a>
-<span class="sourceLineNo">221</span><a name="line.221"></a>
-<span class="sourceLineNo">222</span>    // there are one or more tables in the table list<a name="line.222"></a>
-<span class="sourceLineNo">223</span>    backupInfo =<a name="line.223"></a>
-<span class="sourceLineNo">224</span>        new BackupInfo(backupId, type, tableList.toArray(new TableName[tableList.size()]),<a name="line.224"></a>
-<span class="sourceLineNo">225</span>            targetRootDir);<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    backupInfo.setBandwidth(bandwidth);<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    backupInfo.setWorkers(workers);<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    return backupInfo;<a name="line.228"></a>
-<span class="sourceLineNo">229</span>  }<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span>  /**<a name="line.231"></a>
-<span class="sourceLineNo">232</span>   * Check if any ongoing backup. Currently, we only reply on checking status in backup system<a name="line.232"></a>
-<span class="sourceLineNo">233</span>   * table. We need to consider to handle the case of orphan records in the future. Otherwise, all<a name="line.233"></a>
-<span class="sourceLineNo">234</span>   * the coming request will fail.<a name="line.234"></a>
-<span class="sourceLineNo">235</span>   * @return the ongoing backup id if on going backup exists, otherwise null<a name="line.235"></a>
-<span class="sourceLineNo">236</span>   * @throws IOException exception<a name="line.236"></a>
-<span class="sourceLineNo">237</span>   */<a name="line.237"></a>
-<span class="sourceLineNo">238</span>  private String getOngoingBackupId() throws IOException {<a name="line.238"></a>
-<span class="sourceLineNo">239</span><a name="line.239"></a>
-<span class="sourceLineNo">240</span>    ArrayList&lt;BackupInfo&gt; sessions = systemTable.getBackupInfos(BackupState.RUNNING);<a name="line.240"></a>
-<span class="sourceLineNo">241</span>    if (sessions.size() == 0) {<a name="line.241"></a>
-<span class="sourceLineNo">242</span>      return null;<a name="line.242"></a>
-<span class="sourceLineNo">243</span>    }<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    return sessions.get(0).getBackupId();<a name="line.244"></a>
-<span class="sourceLineNo">245</span>  }<a name="line.245"></a>
-<span class="sourceLineNo">246</span><a name="line.246"></a>
-<span class="sourceLineNo">247</span>  /**<a name="line.247"></a>
-<span class="sourceLineNo">248</span>   * Start the backup manager service.<a name="line.248"></a>
-<span class="sourceLineNo">249</span>   * @throws IOException exception<a name="line.249"></a>
-<span class="sourceLineNo">250</span>   */<a name="line.250"></a>
-<span class="sourceLineNo">251</span>  public void initialize() throws IOException {<a name="line.251"></a>
-<span class="sourceLineNo">252</span>    String ongoingBackupId = this.getOngoingBackupId();<a name="line.252"></a>
-<span class="sourceLineNo">253</span>    if (ongoingBackupId != null) {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      LOG.info("There is a ongoing backup " + ongoingBackupId<a name="line.254"></a>
-<span class="sourceLineNo">255</span>          + ". Can not launch new backup until no ongoing backup remains.");<a name="line.255"></a>
-<span class="sourceLineNo">256</span>      throw new BackupException("There is ongoing backup.");<a name="line.256"></a>
-<span class="sourceLineNo">257</span>    }<a name="line.257"></a>
-<span class="sourceLineNo">258</span>  }<a name="line.258"></a>
-<span class="sourceLineNo">259</span><a name="line.259"></a>
-<span class="sourceLineNo">260</span>  public void setBackupInfo(BackupInfo backupInfo) {<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    this.backupInfo = backupInfo;<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>  /**<a name="line.264"></a>
-<span class="sourceLineNo">265</span>   * Get direct ancestors of the current backup.<a name="line.265"></a>
-<span class="sourceLineNo">266</span>   * @param backupInfo The backup info for the current backup<a name="line.266"></a>
-<span class="sourceLineNo">267</span>   * @return The ancestors for the current backup<a name="line.267"></a>
-<span class="sourceLineNo">268</span>   * @throws IOException exception<a name="line.268"></a>
-<span class="sourceLineNo">269</span>   * @throws BackupException exception<a name="line.269"></a>
-<span class="sourceLineNo">270</span>   */<a name="line.270"></a>
-<span class="sourceLineNo">271</span>  public ArrayList&lt;BackupImage&gt; getAncestors(BackupInfo backupInfo) throws IOException,<a name="line.271"></a>
-<span class="sourceLineNo">272</span>      BackupException {<a name="line.272"></a>
-<span class="sourceLineNo">273</span>    LOG.debug("Getting the direct ancestors of the current backup " + backupInfo.getBackupId());<a name="line.273"></a>
-<span class="sourceLineNo">274</span><a name="line.274"></a>
-<span class="sourceLineNo">275</span>    ArrayList&lt;BackupImage&gt; ancestors = new ArrayList&lt;BackupImage&gt;();<a name="line.275"></a>
-<span class="sourceLineNo">276</span><a name="line.276"></a>
-<span class="sourceLineNo">277</span>    // full backup does not have ancestor<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    if (backupInfo.getType() == BackupType.FULL) {<a name="line.278"></a>
-<span class="sourceLineNo">279</span>      LOG.debug("Current backup is a full backup, no direct ancestor for it.");<a name="line.279"></a>
-<span class="sourceLineNo">280</span>      return ancestors;<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    }<a name="line.281"></a>
+<span class="sourceLineNo">168</span>  /**<a name="line.168"></a>
+<span class="sourceLineNo">169</span>   * Stop all the work of backup.<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 close() {<a name="line.172"></a>
+<span class="sourceLineNo">173</span><a name="line.173"></a>
+<span class="sourceLineNo">174</span>    if (systemTable != null) {<a name="line.174"></a>
+<span class="sourceLineNo">175</span>      try {<a name="line.175"></a>
+<span class="sourceLineNo">176</span>        systemTable.close();<a name="line.176"></a>
+<span class="sourceLineNo">177</span>      } catch (Exception e) {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>        LOG.error(e.toString(), e);<a name="line.178"></a>
+<span class="sourceLineNo">179</span>      }<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    }<a name="line.180"></a>
+<span class="sourceLineNo">181</span>  }<a name="line.181"></a>
+<span class="sourceLineNo">182</span><a name="line.182"></a>
+<span class="sourceLineNo">183</span>  /**<a name="line.183"></a>
+<span class="sourceLineNo">184</span>   * Creates a backup info based on input backup request.<a name="line.184"></a>
+<span class="sourceLineNo">185</span>   * @param backupId backup id<a name="line.185"></a>
+<span class="sourceLineNo">186</span>   * @param type type<a name="line.186"></a>
+<span class="sourceLineNo">187</span>   * @param tableList table list<a name="line.187"></a>
+<span class="sourceLineNo">188</span>   * @param targetRootDir root dir<a name="line.188"></a>
+<span class="sourceLineNo">189</span>   * @param workers number of parallel workers<a name="line.189"></a>
+<span class="sourceLineNo">190</span>   * @param bandwidth bandwidth per worker in MB per sec<a name="line.190"></a>
+<span class="sourceLineNo">191</span>   * @return BackupInfo<a name="line.191"></a>
+<span class="sourceLineNo">192</span>   * @throws BackupException exception<a name="line.192"></a>
+<span class="sourceLineNo">193</span>   */<a name="line.193"></a>
+<span class="sourceLineNo">194</span>  public BackupInfo createBackupInfo(String backupId, BackupType type, List&lt;TableName&gt; tableList,<a name="line.194"></a>
+<span class="sourceLineNo">195</span>      String targetRootDir, int workers, long bandwidth) throws BackupException {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    if (targetRootDir == null) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>      throw new BackupException("Wrong backup request parameter: target backup root directory");<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>    if (type == BackupType.FULL &amp;&amp; (tableList == null || tableList.isEmpty())) {<a name="line.200"></a>
+<span class="sourceLineNo">201</span>      // If table list is null for full backup, which means backup all tables. Then fill the table<a name="line.201"></a>
+<span class="sourceLineNo">202</span>      // list with all user tables from meta. It no table available, throw the request exception.<a name="line.202"></a>
+<span class="sourceLineNo">203</span><a name="line.203"></a>
+<span class="sourceLineNo">204</span>      HTableDescriptor[] htds = null;<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      try (Admin admin = conn.getAdmin()) {<a name="line.205"></a>
+<span class="sourceLineNo">206</span>        htds = admin.listTables();<a name="line.206"></a>
+<span class="sourceLineNo">207</span>      } catch (Exception e) {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>        throw new BackupException(e);<a name="line.208"></a>
+<span class="sourceLineNo">209</span>      }<a name="line.209"></a>
+<span class="sourceLineNo">210</span><a name="line.210"></a>
+<span class="sourceLineNo">211</span>      if (htds == null) {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>        throw new BackupException("No table exists for full backup of all tables.");<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      } else {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>        tableList = new ArrayList&lt;&gt;();<a name="line.214"></a>
+<span class="sourceLineNo">215</span>        for (HTableDescriptor hTableDescriptor : htds) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>          TableName tn = hTableDescriptor.getTableName();<a name="line.216"></a>
+<span class="sourceLineNo">217</span>          if (tn.equals(BackupSystemTable.getTableName(conf))) {<a name="line.217"></a>
+<span class="sourceLineNo">218</span>            // skip backup system table<a name="line.218"></a>
+<span class="sourceLineNo">219</span>            continue;<a name="line.219"></a>
+<span class="sourceLineNo">220</span>          }<a name="line.220"></a>
+<span class="sourceLineNo">221</span>          tableList.add(hTableDescriptor.getTableName());<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>        LOG.info("Full backup all the tables available in the cluster: " + tableList);<a name="line.224"></a>
+<span class="sourceLineNo">225</span>      }<a name="line.225"></a>
+<span class="sourceLineNo">226</span>    }<a name="line.226"></a>
+<span class="sourceLineNo">227</span><a name="line.227"></a>
+<span class="sourceLineNo">228</span>    // there are one or more tables in the table list<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    backupInfo =<a name="line.229"></a>
+<span class="sourceLineNo">230</span>        new BackupInfo(backupId, type, tableList.toArray(new TableName[tableList.size()]),<a name="line.230"></a>
+<span class="sourceLineNo">231</span>            targetRootDir);<a name="line.231"></a>
+<span class="sourceLineNo">232</span>    backupInfo.setBandwidth(bandwidth);<a name="line.232"></a>
+<span class="sourceLineNo">233</span>    backupInfo.setWorkers(workers);<a name="line.233"></a>
+<span class="sourceLineNo">234</span>    return backupInfo;<a name="line.234"></a>
+<span class="sourceLineNo">235</span>  }<a name="line.235"></a>
+<span class="sourceLineNo">236</span><a name="line.236"></a>
+<span class="sourceLineNo">237</span>  /**<a name="line.237"></a>
+<span class="sourceLineNo">238</span>   * Check if any ongoing backup. Currently, we only reply on checking status in backup system<a name="line.238"></a>
+<span class="sourceLineNo">239</span>   * table. We need to consider to handle the case of orphan records in the future. Otherwise, all<a name="line.239"></a>
+<span class="sourceLineNo">240</span>   * the coming request will fail.<a name="line.240"></a>
+<span class="sourceLineNo">241</span>   * @return the ongoing backup id if on going backup exists, otherwise null<a name="line.241"></a>
+<span class="sourceLineNo">242</span>   * @throws IOException exception<a name="line.242"></a>
+<span class="sourceLineNo">243</span>   */<a name="line.243"></a>
+<span class="sourceLineNo">244</span>  private String getOngoingBackupId() throws IOException {<a name="line.244"></a>
+<span class="sourceLineNo">245</span><a name="line.245"></a>
+<span class="sourceLineNo">246</span>    ArrayList&lt;BackupInfo&gt; sessions = systemTable.getBackupInfos(BackupState.RUNNING);<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    if (sessions.size() == 0) {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>      return null;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    }<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    return sessions.get(0).getBackupId();<a name="line.250"></a>
+<span class="sourceLineNo">251</span>  }<a name="line.251"></a>
+<span class="sourceLineNo">252</span><a name="line.252"></a>
+<span class="sourceLineNo">253</span>  /**<a name="line.253"></a>
+<span class="sourceLineNo">254</span>   * Start the backup manager service.<a name="line.254"></a>
+<span class="sourceLineNo">255</span>   * @throws IOException exception<a name="line.255"></a>
+<span class="sourceLineNo">256</span>   */<a name="line.256"></a>
+<span class="sourceLineNo">257</span>  public void initialize() throws IOException {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>    String ongoingBackupId = this.getOngoingBackupId();<a name="line.258"></a>
+<span class="sourceLineNo">259</span>    if (ongoingBackupId != null) {<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      LOG.info("There is a ongoing backup " + ongoingBackupId<a name="line.260"></a>
+<span class="sourceLineNo">261</span>          + ". Can not launch new backup until no ongoing backup remains.");<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      throw new BackupException("There is ongoing backup.");<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    }<a name="line.263"></a>
+<span class="sourceLineNo">264</span>  }<a name="line.264"></a>
+<span class="sourceLineNo">265</span><a name="line.265"></a>
+<span class="sourceLineNo">266</span>  public void setBackupInfo(BackupInfo backupInfo) {<a name="line.266"></a>
+<span class="sourceLineNo">267</span>    this.backupInfo = backupInfo;<a name="line.267"></a>
+<span class="sourceLineNo">268</span>  }<a name="line.268"></a>
+<span class="sourceLineNo">269</span><a name="line.269"></a>
+<span class="sourceLineNo">270</span>  /**<a name="line.270"></a>
+<span class="sourceLineNo">271</span>   * Get direct ancestors of the current backup.<a name="line.271"></a>
+<span class="sourceLineNo">272</span>   * @param backupInfo The backup info for the current backup<a name="line.272"></a>
+<span class="sourceLineNo">273</span>   * @return The ancestors for the current backup<a name="line.273"></a>
+<span class="sourceLineNo">274</span>   * @throws IOException exception<a name="line.274"></a>
+<span class="sourceLineNo">275</span>   * @throws BackupException exception<a name="line.275"></a>
+<span class="sourceLineNo">276</span>   */<a name="line.276"></a>
+<span class="sourceLineNo">277</span>  public ArrayList&lt;BackupImage&gt; getAncestors(BackupInfo backupInfo) throws IOException,<a name="line.277"></a>
+<span class="sourceLineNo">278</span>      BackupException {<a name="line.278"></a>
+<span class="sourceLineNo">279</span>    LOG.debug("Getting the direct ancestors of the current backup " + backupInfo.getBackupId());<a name="line.279"></a>
+<span class="sourceLineNo">280</span><a name="line.280"></a>
+<span class="sourceLineNo">281</span>    ArrayList&lt;BackupImage&gt; ancestors = new ArrayList&lt;BackupImage&gt;();<a name="line.281"></a>
 <span class="sourceLineNo">282</span><a name="line.282"></a>
-<span class="sourceLineNo">283</span>    // get all backup history list in descending order<a name="line.283"></a>
-<span class="sourceLineNo">284</span><a name="line.284"></a>
-<span class="sourceLineNo">285</span>    ArrayList&lt;BackupInfo&gt; allHistoryList = getBackupHistory(true);<a name="line.285"></a>
-<span class="sourceLineNo">286</span>    for (BackupInfo backup : allHistoryList) {<a name="line.286"></a>
-<span class="sourceLineNo">287</span><a name="line.287"></a>
-<span class="sourceLineNo">288</span>      BackupImage.Builder builder = BackupImage.newBuilder();<a name="line.288"></a>
-<span class="sourceLineNo">289</span><a name="line.289"></a>
-<span class="sourceLineNo">290</span>      BackupImage image =<a name="line.290"></a>
-<span class="sourceLineNo">291</span>          builder.withBackupId(backup.getBackupId()).withType(backup.getType())<a name="line.291"></a>
-<span class="sourceLineNo">292</span>              .withRootDir(backup.getBackupRootDir()).withTableList(backup.getTableNames())<a name="line.292"></a>
-<span class="sourceLineNo">293</span>              .withStartTime(backup.getStartTs()).withCompleteTime(backup.getCompleteTs()).build();<a name="line.293"></a>
-<span class="sourceLineNo">294</span><a name="line.294"></a>
-<span class="sourceLineNo">295</span>      // add the full backup image as an ancestor until the last incremental backup<a name="line.295"></a>
-<span class="sourceLineNo">296</span>      if (backup.getType().equals(BackupType.FULL)) {<a name="line.296"></a>
-<span class="sourceLineNo">297</span>        // check the backup image coverage, if previous image could be covered by the newer ones,<a name="line.297"></a>
-<span class="sourceLineNo">298</span>        // then no need to add<a name="line.298"></a>
-<span class="sourceLineNo">299</span>        if (!BackupManifest.canCoverImage(ancestors, image)) {<a name="line.299"></a>
-<span class="sourceLineNo">300</span>          ancestors.add(image);<a name="line.300"></a>
-<span class="sourceLineNo">301</span>        }<a name="line.301"></a>
-<span class="sourceLineNo">302</span>      } else {<a name="line.302"></a>
-<span class="sourceLineNo">303</span>        // found last incremental backup, if previously added full backup ancestor images can cover<a name="line.303"></a>
-<span class="sourceLineNo">304</span>        // it, then this incremental ancestor is not the dependent of the current incremental<a name="line.304"></a>
-<span class="sourceLineNo">305</span>        // backup, that is to say, this is the backup scope boundary of current table set.<a name="line.305"></a>
-<span class="sourceLineNo">306</span>        // Otherwise, this incremental backup ancestor is the dependent ancestor of the ongoing<a name="line.306"></a>
-<span class="sourceLineNo">307</span>        // incremental backup<a name="line.307"></a>
-<span class="sourceLineNo">308</span>        if (BackupManifest.canCoverImage(ancestors, image)) {<a name="line.308"></a>
-<span class="sourceLineNo">309</span>          LOG.debug("Met the backup boundary of the current table set:");<a name="line.309"></a>
-<span class="sourceLineNo">310</span>          for (BackupImage image1 : ancestors) {<a name="line.310"></a>
-<span class="sourceLineNo">311</span>            LOG.debug("  BackupID=" + image1.getBackupId() + ", BackupDir=" + image1.getRootDir());<a name="line.311"></a>
-<span class="sourceLineNo">312</span>          }<a name="line.312"></a>
-<span class="sourceLineNo">313</span>        } else {<a name="line.313"></a>
-<span class="sourceLineNo">314</span>          Path logBackupPath =<a name="line.314"></a>
-<span class="sourceLineNo">315</span>              HBackupFileSystem.getBackupPath(backup.getBackupRootDir(), backup.getBackupId());<a name="line.315"></a>
-<span class="sourceLineNo">316</span>          LOG.debug("Current backup has an incremental backup ancestor, "<a name="line.316"></a>
-<span class="sourceLineNo">317</span>              + "touching its image manifest in " + logBackupPath.toString()<a name="line.317"></a>
-<span class="sourceLineNo">318</span>              + " to construct the dependency.");<a name="line.318"></a>
-<span class="sourceLineNo">319</span>          BackupManifest lastIncrImgManifest = new BackupManifest(conf, logBackupPath);<a name="line.319"></a>
-<span class="sourceLineNo">320</span>          BackupImage lastIncrImage = lastIncrImgManifest.getBackupImage();<a name="line.320"></a>
-<span class="sourceLineNo">321</span>          ancestors.add(lastIncrImage);<a name="line.321"></a>
-<span class="sourceLineNo">322</span><a name="line.322"></a>
-<span class="sourceLineNo">323</span>          LOG.debug("Last dependent incremental backup image: " + "{BackupID="<a name="line.323"></a>
-<span class="sourceLineNo">324</span>              + lastIncrImage.getBackupId() + "," + "BackupDir=" + lastIncrImage.getRootDir() + "}");<a name="line.324"></a>
-<span class="sourceLineNo">325</span>        }<a name="line.325"></a>
-<span class="sourceLineNo">326</span>      }<a name="line.326"></a>
-<span class="sourceLineNo">327</span>    }<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    LOG.debug("Got " + ancestors.size() + " ancestors for the current backup.");<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    return ancestors;<a name="line.329"></a>
-<span class="sourceLineNo">330</span>  }<a name="line.330"></a>
-<span class="sourceLineNo">331</span><a name="line.331"></a>
-<span class="sourceLineNo">332</span>  /**<a name="line.332"></a>
-<span class="sourceLineNo">333</span>   * Get the direct ancestors of this backup for one table involved.<a name="line.333"></a>
-<span class="sourceLineNo">334</span>   * @param backupInfo backup info<a name="line.334"></a>
-<span class="sourceLineNo">335</span>   * @param table table<a name="line.335"></a>
-<span class="sourceLineNo">336</span>   * @return backupImages on the dependency list<a name="line.336"></a>
-<span class="sourceLineNo">337</span>   * @throws BackupException exception<a name="line.337"></a>
-<span class="sourceLineNo">338</span>   * @throws IOException exception<a name="line.338"></a>
-<span class="sourceLineNo">339</span>   */<a name="line.339"></a>
-<span class="sourceLineNo">340</span>  public ArrayList&lt;BackupImage&gt; getAncestors(BackupInfo backupInfo, TableName table)<a name="line.340"></a>
-<span class="sourceLineNo">341</span>      throws BackupException, IOException {<a name="line.341"></a>
-<span class="sourceLineNo">342</span>    ArrayList&lt;BackupImage&gt; ancestors = getAncestors(backupInfo);<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    ArrayList&lt;BackupImage&gt; tableAncestors = new ArrayList&lt;BackupImage&gt;();<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    for (BackupImage image : ancestors) {<a name="line.344"></a>
-<span class="sourceLineNo">345</span>      if (image.hasTable(table)) {<a name="line.345"></a>
-<span class="sourceLineNo">346</span>        tableAncestors.add(image);<a name="line.346"></a>
-<span class="sourceLineNo">347</span>        if (image.getType() == BackupType.FULL) {<a name="line.347"></a>
-<span class="sourceLineNo">348</span>          break;<a name="line.348"></a>
-<span class="sourceLineNo">349</span>        }<a name="line.349"></a>
-<span class="sourceLineNo">350</span>      }<a name="line.350"></a>
-<span class="sourceLineNo">351</span>    }<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    return tableAncestors;<a name="line.352"></a>
-<span class="sourceLineNo">353</span>  }<a name="line.353"></a>
-<span class="sourceLineNo">354</span><a name="line.354"></a>
-<span class="sourceLineNo">355</span>  /*<a name="line.355"></a>
-<span class="sourceLineNo">356</span>   * backup system table operations<a name="line.356"></a>
-<span class="sourceLineNo">357</span>   */<a name="line.357"></a>
-<span class="sourceLineNo">358</span><a name="line.358"></a>
-<span class="sourceLineNo">359</span>  /**<a name="line.359"></a>
-<span class="sourceLineNo">360</span>   * Updates status (state) of a backup session in a persistent store<a name="line.360"></a>
-<span class="sourceLineNo">361</span>   * @param context context<a name="line.361"></a>
-<span class="sourceLineNo">362</span>   * @throws IOException exception<a name="line.362"></a>
+<span class="sourceLineNo">283</span>    // full backup does not have ancestor<a name="line.283"></a>
+<span class="sourceLineNo">284</span>    if (backupInfo.getType() == BackupType.FULL) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>      LOG.debug("Current backup is a full backup, no direct ancestor for it.");<a name="line.285"></a>
+<span class="sourceLineNo">286</span>      return ancestors;<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    }<a name="line.287"></a>
+<span class="sourceLineNo">288</span><a name="line.288"></a>
+<span class="sourceLineNo">289</span>    // get all backup history list in descending order<a name="line.289"></a>
+<span class="sourceLineNo">290</span><a name="line.290"></a>
+<span class="sourceLineNo">291</span>    ArrayList&lt;BackupInfo&gt; allHistoryList = getBackupHistory(true);<a name="line.291"></a>
+<span class="sourceLineNo">292</span>    for (BackupInfo backup : allHistoryList) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span><a name="line.293"></a>
+<span class="sourceLineNo">294</span>      BackupImage.Builder builder = BackupImage.newBuilder();<a name="line.294"></a>
+<span class="sourceLineNo">295</span><a name="line.295"></a>
+<span class="sourceLineNo">296</span>      BackupImage image =<a name="line.296"></a>
+<span class="sourceLineNo">297</span>          builder.withBackupId(backup.getBackupId()).withType(backup.getType())<a name="line.297"></a>
+<span class="sourceLineNo">298</span>              .withRootDir(backup.getBackupRootDir()).withTableList(backup.getTableNames())<a name="line.298"></a>
+<span class="sourceLineNo">299</span>              .withStartTime(backup.getStartTs()).withCompleteTime(backup.getCompleteTs()).build();<a name="line.299"></a>
+<span class="sourceLineNo">300</span><a name="line.300"></a>
+<span class="sourceLineNo">301</span>      // add the full backup image as an ancestor until the last incremental backup<a name="line.301"></a>
+<span class="sourceLineNo">302</span>      if (backup.getType().equals(BackupType.FULL)) {<a name="line.302"></a>
+<span class="sourceLineNo">303</span>        // check the backup image coverage, if previous image could be covered by the newer ones,<a name="line.303"></a>
+<span class="sourceLineNo">304</span>        // then no need to add<a name="line.304"></a>
+<span class="sourceLineNo">305</span>        if (!BackupManifest.canCoverImage(ancestors, image)) {<a name="line.305"></a>
+<span class="sourceLineNo">306</span>          ancestors.add(image);<a name="line.306"></a>
+<span class="sourceLineNo">307</span>        }<a name="line.307"></a>
+<span class="sourceLineNo">308</span>      } else {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        // found last incremental backup, if previously added full backup ancestor images can cover<a name="line.309"></a>
+<span class="sourceLineNo">310</span>        // it, then this incremental ancestor is not the dependent of the current incremental<a name="line.310"></a>
+<span class="sourceLineNo">311</span>        // backup, that is to say, this is the backup scope boundary of current table set.<a name="line.311"></a>
+<span class="sourceLineNo">312</span>        // Otherwise, this incremental backup ancestor is the dependent ancestor of the ongoing<a name="line.312"></a>
+<span class="sourceLineNo">313</span>        // incremental backup<a name="line.313"></a>
+<span class="sourceLineNo">314</span>        if (BackupManifest.canCoverImage(ancestors, image)) {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>          LOG.debug("Met the backup boundary of the current table set:");<a name="line.315"></a>
+<span class="sourceLineNo">316</span>          for (BackupImage image1 : ancestors) {<a name="line.316"></a>
+<span class="sourceLineNo">317</span>            LOG.debug("  BackupID=" + image1.getBackupId() + ", BackupDir=" + image1.getRootDir());<a name="line.317"></a>
+<span class="sourceLineNo">318</span>          }<a name="line.318"></a>
+<span class="sourceLineNo">319</span>        } else {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>          Path logBackupPath =<a name="line.320"></a>
+<span class="sourceLineNo">321</span>              HBackupFileSystem.getBackupPath(backup.getBackupRootDir(), backup.getBackupId());<a name="line.321"></a>
+<span class="sourceLineNo">322</span>          LOG.debug("Current backup has an incremental backup ancestor, "<a name="line.322"></a>
+<span class="sourceLineNo">323</span>              + "touching its image manifest in " + logBackupPath.toString()<a name="line.323"></a>
+<span class="sourceLineNo">324</span>              + " to construct the dependency.");<a name="line.324"></a>
+<span class="sourceLineNo">325</span>          BackupManifest lastIncrImgManifest = new BackupManifest(conf, logBackupPath);<a name="line.325"></a>
+<span class="sourceLineNo">326</span>          BackupImage lastIncrImage = lastIncrImgManifest.getBackupImage();<a name="line.326"></a>
+<span class="sourceLineNo">327</span>          ancestors.add(lastIncrImage);<a name="line.327"></a>
+<span class="sourceLineNo">328</span><a name="line.328"></a>
+<span class="sourceLineNo">329</span>          LOG.debug("Last dependent incremental backup image: " + "{BackupID="<a name="line.329"></a>
+<span class="sourceLineNo">330</span>              + lastIncrImage.getBackupId() + "," + "BackupDir=" + lastIncrImage.getRootDir() + "}");<a name="line.330"></a>
+<span class="sourceLineNo">331</span>        }<a name="line.331"></a>
+<span class="sourceLineNo">332</span>      }<a name="line.332"></a>
+<span class="sourceLineNo">333</span>    }<a name="line.333"></a>
+<span class="sourceLineNo">334</span>    LOG.debug("Got " + ancestors.size() + " ancestors for the current backup.");<a name="line.334"></a>
+<span class="sourceLineNo">335</span>    return ancestors;<a name="line.335"></a>
+<span class="sourceLineNo">336</span>  }<a name="line.336"></a>
+<span class="sourceLineNo">337</span><a name="line.337"></a>
+<span class="sourceLineNo">338</span>  /**<a name="line.338"></a>
+<span class="sourceLineNo">339</span>   * Get the direct ancestors of this backup for one table involved.<a name="line.339"></a>
+<span class="sourceLineNo">340</span>   * @param backupInfo backup info<a name="line.340"></a>
+<span class="sourceLineNo">341</span>   * @param table table<a name="line.341"></a>
+<span class="sourceLineNo">342</span>   * @return backupImages on the dependency list<a name="line.342"></a>
+<span class="sourceLineNo">343</span>   * @throws BackupException exception<a name="line.343"></a>
+<span class="sourceLineNo">344</span>   * @throws IOException exception<a name="line.344"></a>
+<span class="sourceLineNo">345</span>   */<a name="line.345"></a>
+<span class="sourceLineNo">346</span>  public ArrayList&lt;BackupImage&gt; getAncestors(BackupInfo backupInfo, TableName table)<a name="line.346"></a>
+<span class="sourceLineNo">347</span>      throws BackupException, IOException {<a name="line.347"></a>
+<span class="sourceLineNo">348</span>    ArrayList&lt;BackupImage&gt; ancestors = getAncestors(backupInfo);<a name="line.348"></a>
+<span class="sourceLineNo">349</span>    ArrayList&lt;BackupImage&gt; tableAncestors = new ArrayList&lt;BackupImage&gt;();<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    for (BackupImage image : ancestors) {<a name="line.350"></a>
+<span class="sourceLineNo">351</span>      if (image.hasTable(table)) {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>        tableAncestors.add(image);<a name="line.352"></a>
+<span class="sourceLineNo">353</span>        if (image.getType() == BackupType.FULL) {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>          break;<a name="line.354"></a>
+<span class="sourceLineNo">355</span>        }<a name="line.355"></a>
+<span class="sourceLineNo">356</span>      }<a name="line.356"></a>
+<span class="sourceLineNo">357</span>    }<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    return tableAncestors;<a name="line.358"></a>
+<span class="sourceLineNo">359</span>  }<a name="line.359"></a>
+<span class="sourceLineNo">360</span><a name="line.360"></a>
+<span class="sourceLineNo">361</span>  /*<a name="line.361"></a>
+<span class="sourceLineNo">362</span>   * backup system table operations<a name="line.362"></a>
 <span class="sourceLineNo">363</span>   */<a name="line.363"></a>
-<span class="sourceLineNo">364</span>  public void updateBackupInfo(BackupInfo context) throws IOException {<a name="line.364"></a>
-<span class="sourceLineNo">365</span>    systemTable.updateBackupInfo(context);<a name="line.365"></a>
-<span class="sourceLineNo">366</span>  }<a name="line.366"></a>
-<span class="sourceLineNo">367</span><a name="line.367"></a>
-<span class="sourceLineNo">368</span>  /**<a name="line.368"></a>
-<span class="sourceLineNo">369</span>   * Starts new backup session<a name="line.369"></a>
-<span class="sourceLineNo">370</span>   * @throws IOException if active session already exists<a name="line.370"></a>
-<span class="sourceLineNo">371</span>   */<a name="line.371"></a>
-<span class="sourceLineNo">372</span>  public void startBackupSession() throws IOException {<a name="line.372"></a>
-<span class="sourceLineNo">373</span>    systemTable.startBackupExclusiveOperation();<a name="line.373"></a>
-<span class="sourceLineNo">374</span>  }<a name="line.374"></a>
-<span class="sourceLineNo">375</span><a name="line.375"></a>
-<span class="sourceLineNo">376</span>  /**<a name="line.376"></a>
-<span class="sourceLineNo">377</span>   * Finishes active backup session<a name="line.377"></a>
-<span class="sourceLineNo">378</span>   * @throws IOException if no active session<a name="line.378"></a>
-<span class="sourceLineNo">379</span>   */<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  public void finishBackupSession() throws IOException {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    systemTable.finishBackupExclusiveOperation();<a name="line.381"></a>
-<span class="sourceLineNo">382</span>  }<a name="line.382"></a>
-<span class="sourceLineNo">383</span><a name="line.383"></a>
-<span class="sourceLineNo">384</span>  /**<a name="line.384"></a>
-<span class="sourceLineNo">385</span>   * Read the last backup start code (timestamp) of last successful backup. Will return null if<a name="line.385"></a>
-<span class="sourceLineNo">386</span>   * there is no startcode stored in backup system table or the value is of length 0. These two<a name="line.386"></a>
-<span class="sourceLineNo">387</span>   * cases indicate there is no successful backup completed so far.<a name="line.387"></a>
-<span class="sourceLineNo">388</span>   * @return the timestamp of a last successful backup<a name="line.388"></a>
-<span class="sourceLineNo">389</span>   * @throws IOException exception<a name="line.389"></a>
-<span class="sourceLineNo">390</span>   */<a name="line.390"></a>
-<span class="sourceLineNo">391</span>  public String readBackupStartCode() throws IOException {<a name="line.391"></a>
-<span class="sourceLineNo">392</span>    return systemTable.readBackupStartCode(backupInfo.getBackupRootDir());<a name="line.392"></a>
-<span class="sourceLineNo">393</span>  }<a name="line.393"></a>
-<span class="sourceLineNo">394</span><a name="line.394"></a>
-<span class="sourceLineNo">395</span>  /**<a name="line.395"></a>
-<span class="sourceLineNo">396</span>   * Write the start code (timestamp) to backup system table. If passed in null, then write 0 byte.<a name="line.396"></a>
-<span class="sourceLineNo">397</span>   * @param startCode start code<a name="line.397"></a>
-<span class="sourceLineNo">398</span>   * @throws IOException exception<a name="line.398"></a>
-<span class="sourceLineNo">399</span>   */<a name="line.399"></a>
-<span class="sourceLineNo">400</span>  public void writeBackupStartCode(Long startCode) throws IOException {<a name="line.400"></a>
-<span class="sourceLineNo">401</span>    systemTable.writeBackupStartCode(startCode, backupInfo.getBackupRootDir());<a name="line.401"></a>
-<span class="sourceLineNo">402</span>  }<a name="line.402"></a>
-<span class="sourceLineNo">403</span><a name="line.403"></a>
-<span class="sourceLineNo">404</span>  /**<a name="line.404"></a>
-<span class="sourceLineNo">405</span>   * Get the RS log information after the last log roll from backup system table.<a name="line.405"></a>
-<span class="sourceLineNo">406</span>   * @return RS log info<a name="line.406"></a>
-<span class="sourceLineNo">407</span>   * @throws IOException exception<a name="line.407"></a>
-<span class="sourceLineNo">408</span>   */<a name="line.408"></a>
-<span class="sourceLineNo">409</span>  public HashMap&lt;String, Long&gt; readRegionServerLastLogRollResult() throws IOException {<a name="line.409"></a>
-<span class="sourceLineNo">410</span>    return systemTable.readRegionServerLastLogRollResult(backupInfo.getBackupRootDir());<a name="line.410"></a>
-<span class="sourceLineNo">411</span>  }<a name="line.411"></a>
-<span class="sourceLineNo">412</span><a name="line.412"></a>
-<span class="sourceLineNo">413</span>  public Pair&lt;Map&lt;TableName, Map&lt;String, Map&lt;String, List&lt;Pair&lt;String, Boolean&gt;&gt;&gt;&gt;&gt;, List&lt;byte[]&gt;&gt;<a name="line.413"></a>
-<span class="sourceLineNo">414</span>      readBulkloadRows(List&lt;TableName&gt; tableList) throws IOException {<a name="line.414"></a>
-<span class="sourceLineNo">415</span>    return systemTable.readBulkloadRows(tableList);<a name="line.415"></a>
-<span class="sourceLineNo">416</span>  }<a name="line.416"></a>
-<span class="sourceLineNo">417</span><a name="line.417"></a>
-<span class="sourceLineNo">418</span>  public void removeBulkLoadedRows(List&lt;TableName&gt; lst, List&lt;byte[]&gt; rows) throws IOException {<a name="line.418"></a>
-<span class="sourceLineNo">419</span>    systemTable.removeBulkLoadedRows(lst, rows);<a name="line.419"></a>
-<span class="sourceLineNo">420</span>  }<a name="line.420"></a>
-<span class="sourceLineNo">421</span><a name="line.421"></a>
-<span class="sourceLineNo">422</span>  public void writeBulkLoadedFiles(List&lt;TableName&gt; sTableList, Map&lt;byte[], List&lt;Path&gt;&gt;[] maps)<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      throws IOException {<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    systemTable.writeBulkLoadedFiles(sTableList, maps, backupInfo.getBackupId());<a name="line.424"></a>
-<span class="sourceLineNo">425</span>  }<a name="line.425"></a>
-<span class="sourceLineNo">426</span><a name="line.426"></a>
-<span class="sourceLineNo">427</span>  /**<a name="line.427"></a>
-<span class="sourceLineNo">428</span>   * Get all completed backup information (in desc order by time)<a name="line.428"></a>
-<span class="sourceLineNo">429</span>   * @return history info of BackupCompleteData<a name="line.429"></a>
-<span class="sourceLineNo">430</span>   * @throws IOException exception<a name="line.430"></a>
-<span class="sourceLineNo">431</span>   */<a name="line.431"></a>
-<span class="sourceLineNo">432</span>  public List&lt;BackupInfo&gt; getBackupHistory() throws IOException {<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    return systemTable.getBackupHistory();<a name="line.433"></a>
-<span class="sourceLineNo">434</span>  }<a name="line.434"></a>
-<span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span>  public ArrayList&lt;BackupInfo&gt; getBackupHistory(boolean completed) throws IOException {<a name="line.436"></a>
-<span class="sourceLineNo">437</span>    return systemTable.getBackupHistory(completed);<a name="line.437"></a>
-<span class="sourceLineNo">438</span>  }<a name="line.438"></a>
-<span class="sourceLineNo">439</span><a name="line.439"></a>
-<span class="sourceLineNo">440</span>  /**<a name="line.440"></a>
-<span class="sourceLineNo">441</span>   * Write the current timestamps for each regionserver to backup system table after a successful<a name="line.441"></a>
-<span class="sourceLineNo">442</span>   * full or incremental backup. Each table may have a different set of log timestamps. The saved<a name="line.442"></a>
-<span class="sourceLineNo">443</span>   * timestamp is of the last log file that was backed up already.<a name="line.443"></a>
-<span class="sourceLineNo">444</span>   * @param tables tables<a name="line.444"></a>
-<span class="sourceLineNo">445</span>   * @throws IOException exception<a name="line.445"></a>
-<span class="sourceLineNo">446</span>   */<a name="line.446"></a>
-<span class="sourceLineNo">447</span>  public void writeRegionServerLogTimestamp(Set&lt;TableName&gt; tables,<a name="line.447"></a>
-<span class="sourceLineNo">448</span>      HashMap&lt;String, Long&gt; newTimestamps) throws IOException {<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    systemTable.writeRegionServerLogTimestamp(tables, newTimestamps, backupInfo.getBackupRootDir());<a name="line.449"></a>
-<span class="sourceLineNo">450</span>  }<a name="line.450"></a>
-<span class="sourceLineNo">451</span><a name="line.451"></a>
-<span class="sourceLineNo">452</span>  /**<a name="line.452"></a>
-<span class="sourceLineNo">453</span>   * Read the timestamp for each region server log after the last successful backup. Each table has<a name="line.453"></a>
-<span class="sourceLineNo">454</span>   * its own set of the timestamps.<a name="line.454"></a>
-<span class="sourceLineNo">455</span>   * @return the timestamp for each region server. key: tableName value:<a name="line.455"></a>
-<span class="sourceLineNo">456</span>   *         RegionServer,PreviousTimeStamp<a name="line.456"></a>
-<span class="sourceLineNo">457</span>   * @throws IOException exception<a name="line.457"></a>
-<span class="sourceLineNo">458</span>   */<a name="line.458"></a>
-<span class="sourceLineNo">459</span>  public HashMap&lt;TableName, HashMap&lt;String, Long&gt;&gt; readLogTimestampMap() throws IOException {<a name="line.459"></a>
-<span class="sourceLineNo">460</span>    return systemTable.readLogTimestampMap(backupInfo.getBackupRootDir());<a name="line.460"></a>
-<span class="sourceLineNo">461</span>  }<a name="line.461"></a>
-<span class="sourceLineNo">462</span><a name="line.462"></a>
-<span class="sourceLineNo">463</span>  /**<a name="line.463"></a>
-<span class="sourceLineNo">464</span>   * Return the current tables covered by incremental backup.<a name="line.464"></a>
-<span class="sourceLineNo">465</span>   * @return set of tableNames<a name="line.465"></a>
-<span class="sourceLineNo">466</span>   * @throws IOException exception<a name="line.466"></a>
-<span class="sourceLineNo">467</span>   */<a name="line.467"></a>
-<span class="sourceLineNo">468</span>  public Set&lt;TableName&gt; getIncrementalBackupTableSet() throws IOException {<a name="line.468"></a>
-<span class="sourceLineNo">469</span>    return systemTable.getIncrementalBackupTableSet(backupInfo.getBackupRootDir());<a name="line.469"></a>
-<span class="sourceLineNo">470</span>  }<a name="line.470"></a>
-<span class="sourceLineNo">471</span><a name="line.471"></a>
-<span class="sourceLineNo">472</span>  /**<a name="line.472"></a>
-<span class="sourceLineNo">473</span>   * Adds set of tables to overall incremental backup table set<a name="line.473"></a>
-<span class="sourceLineNo">474</span>   * @param tables tables<a name="line.474"></a>
-<span class="sourceLineNo">475</span>   * @throws IOException exception<a name="line.475"></a>
-<span class="sourceLineNo">476</span>   */<a name="line.476"></a>
-<span class="sourceLineNo">477</span>  public void addIncrementalBackupTableSet(Set&lt;TableName&gt; tables) throws IOException {<a name="line.477"></a>
-<span class="sourceLineNo">478</span>    systemTable.addIncrementalBackupTableSet(tables, backupInfo.getBackupRootDir());<a name="line.478"></a>
-<span class="sourceLineNo">479</span>  }<a name="line.479"></a>
-<span class="sourceLineNo">480</span><a name="line.480"></a>
-<span class="sourceLineNo">481</span>  /**<a name="line.481"></a>
-<span class="sourceLineNo">482</span>   * Saves list of WAL files after incremental backup operation. These files will be stored until<a name="line.482"></a>
-<span class="sourceLineNo">483</span>   * TTL expiration and are used by Backup Log Cleaner plug-in to determine which WAL files can be<a name="line.483"></a>
-<span class="sourceLineNo">484</span>   * safely purged.<a name="line.484"></a>
-<span class="sourceLineNo">485</span>   */<a name="line.485"></a>
-<span class="sourceLineNo">486</span>  public void recordWALFiles(List&lt;String&gt; files) throws IOException {<a name="line.486"></a>
-<span class="sourceLineNo">487</span>    systemTable.addWALFiles(files, backupInfo.getBackupId(), backupInfo.getBackupRootDir());<a name="line.487"></a>
-<span class="sourceLineNo">488</span>  }<a name="line.488"></a>
-<span class="sourceLineNo">489</span><a name="line.489"></a>
-<span class="sourceLineNo">490</span>  /**<a name="line.490"></a>
-<span class="sourceLineNo">491</span>   * Get WAL files iterator<a name="line.491"></a>
-<span class="sourceLineNo">492</span>   * @return WAL files iterator from backup system table<a name="line.492"></a>
-<span class="sourceLineNo">493</span>   * @throws IOException<a name="line.493"></a>
-<span class="sourceLineNo">494</span>   */<a name="line.494"></a>
-<span class="sourceLineNo">495</span>  public Iterator&lt;BackupSystemTable.WALItem&gt; getWALFilesFromBackupSystem() throws IOException {<a name="line.495"></a>
-<span class="sourceLineNo">496</span>    return systemTable.getWALFilesIterator(backupInfo.getBackupRootDir());<a name="line.496"></a>
-<span class="sourceLineNo">497</span>  }<a name="line.497"></a>
-<span class="sourceLineNo">498</span><a name="line.498"></a>
-<span class="sourceLineNo">499</span>  public Connection getConnection() {<a name="line.499"></a>
-<span class="sourceLineNo">500</span>    return conn;<a name="line.500"></a>
-<span class="sourceLineNo">501</span>  }<a name="line.501"></a>
-<span class="sourceLineNo">502</span>}<a name="line.502"></a>
+<span class="sourceLineNo">364</span><a name="line.364"></a>
+<span class="sourceLineNo">365</span>  /**<a name="line.365"></a>
+<span class="sourceLineNo">366</span>   * Updates status (state) of a backup session in a persistent store<a name="line.366"></a>
+<span class="sourceLineNo">367</span>   * @param context context<a name="line.367"></a>
+<span class="sourceLineNo">368</span>   * @throws IOException exception<a name="line.368"></a>
+<span class="sourceLineNo">369</span>   */<a name="line.369"></a>
+<span class="sourceLineNo">370</span>  public void updateBackupInfo(BackupInfo context) throws IOException {<a name="line.370"></a>
+<span class="sourceLineNo">371</span>    systemTable.updateBackupInfo(context);<a name="line.371"></a>
+<span class="sourceLineNo">372</span>  }<a name="line.372"></a>
+<span class="sourceLineNo">373</span><a name="line.373"></a>
+<span class="sourceLineNo">374</span>  /**<a name="line.374"></a>
+<span class="sourceLineNo">375</span>   * Starts new backup session<a name="line.375"></a>
+<span class="sourceLineNo">376</span>   * @throws IOException if active session already exists<a name="line.376"></a>
+<span class="sourceLineNo">377</span>   */<a name="line.377"></a>
+<span class="sourceLineNo">378</span>  public void startBackupSession() throws IOException {<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    systemTable.startBackupExclusiveOperation();<a name="line.379"></a>
+<span class="sourceLineNo">380</span>  }<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span>  /**<a name="line.382"></a>
+<span class="sourceLineNo">383</span>   * Finishes active backup session<a name="line.383"></a>
+<span class="sourceLineNo">384</span>   * @throws IOException if no active session<a name="line.384"></a>
+<span class="sourceLineNo">385</span>   */<a name="line.385"></a>
+<span class="sourceLineNo">386</span>  public void finishBackupSession() throws IOException {<a name="line.386"></a>
+<span class="sourceLineNo">387</span>    systemTable.finishBackupExclusiveOperation();<a name="line.387"></a>
+<span class="sourceLineNo">388</span>  }<a name="line.388"></a>
+<span class="sourceLineNo">389</span><a name="line.389"></a>
+<span class="sourceLineNo">390</span>  /**<a name="line.390"></a>
+<span class="sourceLineNo">391</span>   * Read the last backup start code (timestamp) of last successful backup. Will return null if<a name="line.391"></a>
+<span class="sourceLineNo">392</span>   * there is no startcode stored in backup system table or the value is of length 0. These two<a name="line.392"></a>
+<span class="sourceLineNo">393</span>   * cases indicate there is no successful backup completed so far.<a name="line.393"></a>
+<span class="sourceLineNo">394</span>   * @return the timestamp of a last successful backup<a name="line.394"></a>
+<span class="sourceLineNo">395</span>   * @throws IOException exception<a name="line.395"></a>
+<span class="sourceLineNo">396</span>   */<a name="line.396"></a>
+<span class="sourceLineNo">397</span>  public String readBackupStartCode() throws IOException {<a name="line.397"></a>
+<span class="sourceLineNo">398</span>    return systemTable.readBackupStartCode(backupInfo.getBackupRootDir());<a name="line.398"></a>
+<span class="sourceLineNo">399</span>  }<a name="line.399"></a>
+<span class="sourceLineNo">400</span><a name="line.400"></a>
+<span class="sourceLineNo">401</span>  /**<a name="line.401"></a>
+<span class="sourceLineNo">402</span>   * Write the start code (timestamp) to backup system table. If passed in null, then write 0 byte.<a name="line.402"></a>
+<span class="sourceLineNo">403</span>   * @param startCode start code<a name="line.403"></a>
+<span class="sourceLineNo">404</span>   * @throws IOException exception<a name="line.404"></a>
+<span class="sourceLineNo">405</span>   */<a name="line.405"></a>
+<span class="sourceLineNo">406</span>  public void writeBackupStartCode(Long startCode) throws IOException {<a name="line.406"></a>
+<span class="sourceLineNo">407</span>    systemTable.writeBackupStartCode(startCode, backupInfo.getBackupRootDir());<a name="line.407"></a>
+<span class="sourceLineNo">408</span>  }<a name="line.408"></a>
+<span class="sourceLineNo">409</span><a name="line.409"></a>
+<span class="sourceLineNo">410</span>  /**<a name="line.410"></a>
+<span class="sourceLineNo">411</span>   * Get the RS log information after the last log roll from backup system table.<a name="line.411"></a>
+<span class="sourceLineNo">412</span>   * @return RS log info<a name="line.412"></a>
+<span class="sourceLineNo">413</span>   * @throws IOException exception<a name="line.413"></a>
+<span class="sourceLineNo">414</span>   */<a name="line.414"></a>
+<span class="sourceLineNo">415</span>  public HashMap&lt;String, Long&gt; readRegionServerLastLogRollResult() throws IOException {<a name="line.415"></a>
+<span class="sourceLineNo">416</span>    return systemTable.readRegionServerLastLogRollResult(backupInfo.getBackupRootDir());<a name="line.416"></a>
+<span class="sourceLineNo">417</span>  }<a name="line.417"></a>
+<span class="sourceLineNo">418</span><a name="line.418"></a>
+<span class="sourceLineNo">419</span>  public Pair&lt;Map&lt;TableName, Map&lt;String, Map&lt;String, List&lt;Pair&lt;String, Boolean&gt;&gt;&gt;&gt;&gt;, List&lt;byte[]&gt;&gt;<a name="line.419"></a>
+<span class="sourceLineNo">420</span>      readBulkloadRows(List&lt;TableName&gt; tableList) throws IOException {<a name="line.420"></a>
+<span class="sourceLineNo">421</span>    return systemTable.readBulkloadRows(tableList);<a name="line.421"></a>
+<span class="sourceLineNo">422</span>  }<a name="line.422"></a>
+<span class="sourceLineNo">423</span><a name="line.423"></a>
+<span class="sourceLineNo">424</span>  public void deleteBulkLoadedRows(List&lt;byte[]&gt; rows) throws IOException {<a name="line.424"></a>
+<span class="sourceLineNo">425</span>    systemTable.deleteBulkLoadedRows(rows);<a name="line.425"></a>
+<span class="sourceLineNo">426</span>  }<a name="line.426"></a>
+<span class="sourceLineNo">427</span><a name="line.427"></a>
+<span class="sourceLineNo">428</span>  /**<a name="line.428"></a>
+<span class="sourceLineNo">429</span>   * Get all completed backup information (in desc order by time)<a name="line.429"></a>
+<span class="sourceLineNo">430</span>   * @return history info of BackupCompleteData<a name="line.430"></a>
+<span class="sourceLineNo">431</span>   * @throws IOException exception<a name="line.431"></a>
+<span class="sourceLineNo">432</span>   */<a name="line.432"></a>
+<span class="sourceLineNo">433</span>  public List&lt;BackupInfo&gt; getBackupHistory() throws IOException {<a name="line.433"></a>
+<span class="sourceLineNo">434</span>    return systemTable.getBackupHistory();<a name="line.434"></a>
+<span class="sourceLineNo">435</span>  }<a name="line.435"></a>
+<span class="sourceLineNo">436</span><a name="line.436"></a>
+<span class="sourceLineNo">437</span>  public ArrayList&lt;BackupInfo&gt; getBackupHistory(boolean completed) throws IOException {<a name="line.437"></a>
+<span class="sourceLineNo">438</span>    return systemTable.getBackupHistory(completed);<a name="line.438"></a>
+<span class="sourceLineNo">439</span>  }<a name="line.439"></a>
+<span class="sourceLineNo">440</span><a name="line.440"></a>
+<span class="sourceLineNo">441</span>  /**<a name="line.441"></a>
+<span class="sourceLineNo">442</span>   * Write the current timestamps for each regionserver to backup system table after a successful<a name="line.442"></a>
+<span class="sourceLineNo">443</span>   * full or incremental backup. Each table may have a different set of log timestamps. The saved<a name="line.443"></a>
+<span class="sourceLineNo">444</span>   * timestamp is of the last log file that was backed up already.<a name="line.444"></a>
+<span class="sourceLineNo">445</span>   * @param tables tables<a name="line.445"></a>
+<span class="sourceLineNo">446</span>   * @throws IOException exception<a name="line.446"></a>
+<span class="sourceLineNo">447</span>   */<a name="line.447"></a>
+<span class="sourceLineNo">448</span>  public void writeRegionServerLogTimestamp(Set&lt;TableName&gt; tables,<a name="line.448"></a>
+<span class="sourceLineNo">449</span>      HashMap&lt;String, Long&gt; newTimestamps) throws IOException {<a name="line.449"></a>
+<span class="sourceLineNo">450</span>    systemTable.writeRegionServerLogTimestamp(tables, newTimestamps, backupInfo.getBackupRootDir());<a name="line.450"></a>
+<span class="sourceLineNo">451</span>  }<a name="line.451"></a>
+<span class="sourceLineNo">452</span><a name="line.452"></a>
+<span class="sourceLineNo">453</span>  /**<a name="line.453"></a>
+<span class="sourceLineNo">454</span>   * Read the timestamp for each region server log after the last successful backup. Each table has<a name="line.454"></a>
+<span class="sourceLineNo">455</span>   * its own set of the timestamps.<a name="line.455"></a>
+<span class="sourceLineNo">456</span>   * @return the timestamp for each region server. key: tableName value:<a name="line.456"></a>
+<span class="sourceLineNo">457</span>   *         RegionServer,PreviousTimeStamp<a name="line.457"></a>
+<span class="sourceLineNo">458</span>   * @throws IOException exception<a name="line.458"></a>
+<span class="sourceLineNo">459</span>   */<a name="line.459"></a>
+<span class="sourceLineNo">460</span>  public HashMap&lt;TableName, HashMap&lt;String, Long&gt;&gt; readLogTimestampMap() throws IOException {<a name="line.460"></a>
+<span class="sourceLineNo">461</span>    return systemTable.readLogTimestampMap(backupInfo.getBackupRootDir());<a name="line.461"></a>
+<span class="sourceLineNo">462</span>  }<a name="line.462"></a>
+<span class="sourceLineNo">463</span><a name="line.463"></a>
+<span class="sourceLineNo">464</span>  /**<a name="line.464"></a>
+<span class="sourceLineNo">465</span>   * Return the current tables covered by incremental backup.<a name="line.465"></a>
+<span class="sourceLineNo">466</span>   * @return set of tableNames<a name="line.466"></a>
+<span class="sourceLineNo">467</span>   * @throws IOException exception<a name="line.467"></a>
+<span class="sourceLineNo">468</span>   */<a name="line.468"></a>
+<span class="sourceLineNo">469</span>  public Set&lt;TableName&gt; getIncrementalBackupTableSet() throws IOException {<a name="line.469"></a>
+<span class="sourceLineNo">470</span>    return systemTable.getIncrementalBackupTableSet(backupInfo.getBackupRootDir());<a name="line.470"></a>
+<span class="sourceLineNo">471</span>  }<a name="line.471"></a>
+<span class="sourceLineNo">472</span><a name="line.472"></a>
+<span class="sourceLineNo">473</span>  /**<a name="line.473"></a>
+<span class="sourceLineNo">474</spa

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/checkstyle.rss
----------------------------------------------------------------------
diff --git a/checkstyle.rss b/checkstyle.rss
index a9a5588..9b2ef3d 100644
--- a/checkstyle.rss
+++ b/checkstyle.rss
@@ -25,8 +25,8 @@ under the License.
     <language>en-us</language>
     <copyright>&#169;2007 - 2018 The Apache Software Foundation</copyright>
     <item>
-      <title>File: 3499,
-             Errors: 18148,
+      <title>File: 3496,
+             Errors: 18141,
              Warnings: 0,
              Infos: 0
       </title>
@@ -965,7 +965,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  2
+                  1
                 </td>
               </tr>
                           <tr>
@@ -5991,7 +5991,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  13
+                  4
                 </td>
               </tr>
                           <tr>
@@ -10709,7 +10709,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  5
+                  6
                 </td>
               </tr>
                           <tr>
@@ -11423,7 +11423,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  0
+                  1
                 </td>
               </tr>
                           <tr>
@@ -17933,7 +17933,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  10
+                  9
                 </td>
               </tr>
                           <tr>
@@ -19212,20 +19212,6 @@ under the License.
               </tr>
                           <tr>
                 <td>
-                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.zookeeper.TestZKMetrics.java">org/apache/hadoop/hbase/zookeeper/TestZKMetrics.java</a>
-                </td>
-                <td>
-                  0
-                </td>
-                <td>
-                  0
-                </td>
-                <td>
-                  0
-                </td>
-              </tr>
-                          <tr>
-                <td>
                   <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.io.hfile.CompoundBloomFilter.java">org/apache/hadoop/hbase/io/hfile/CompoundBloomFilter.java</a>
                 </td>
                 <td>
@@ -24247,7 +24233,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  0
+                  3
                 </td>
               </tr>
                           <tr>
@@ -27145,7 +27131,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  12
+                  11
                 </td>
               </tr>
                           <tr>
@@ -42172,20 +42158,6 @@ under the License.
               </tr>
                           <tr>
                 <td>
-                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.zookeeper.ZKMetrics.java">org/apache/hadoop/hbase/zookeeper/ZKMetrics.java</a>
-                </td>
-                <td>
-                  0
-                </td>
-                <td>
-                  0
-                </td>
-                <td>
-                  0
-                </td>
-              </tr>
-                          <tr>
-                <td>
                   <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.regionserver.TestRegionServerAbort.java">org/apache/hadoop/hbase/regionserver/TestRegionServerAbort.java</a>
                 </td>
                 <td>
@@ -45462,20 +45434,6 @@ under the License.
               </tr>
                           <tr>
                 <td>
-                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.zookeeper.ZKMetricsListener.java">org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.java</a>
-                </td>
-                <td>
-                  0
-                </td>
-                <td>
-                  0
-                </td>
-                <td>
-                  0
-                </td>
-              </tr>
-                          <tr>
-                <td>
                   <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.regionserver.NoOpScanPolicyObserver.java">org/apache/hadoop/hbase/regionserver/NoOpScanPolicyObserver.java</a>
                 </td>
                 <td>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/coc.html
----------------------------------------------------------------------
diff --git a/coc.html b/coc.html
index 7d761cf..4a4fb60 100644
--- a/coc.html
+++ b/coc.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Code of Conduct Policy
@@ -380,7 +380,7 @@ email to <a class="externalLink" href="mailto:private@hbase.apache.org">the priv
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/cygwin.html
----------------------------------------------------------------------
diff --git a/cygwin.html b/cygwin.html
index d7a6049..4a06dd2 100644
--- a/cygwin.html
+++ b/cygwin.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Installing Apache HBase (TM) on Windows using Cygwin</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -679,7 +679,7 @@ Now your <b>HBase </b>server is running, <b>start coding</b> and build that next
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/dependencies.html
----------------------------------------------------------------------
diff --git a/dependencies.html b/dependencies.html
index bb4246e..9289c34 100644
--- a/dependencies.html
+++ b/dependencies.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -445,7 +445,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/dependency-convergence.html b/dependency-convergence.html
index 771241d..768897f 100644
--- a/dependency-convergence.html
+++ b/dependency-convergence.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -1082,7 +1082,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/dependency-info.html
----------------------------------------------------------------------
diff --git a/dependency-info.html b/dependency-info.html
index c8a2ca2..a70bc6a 100644
--- a/dependency-info.html
+++ b/dependency-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -318,7 +318,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/dependency-management.html
----------------------------------------------------------------------
diff --git a/dependency-management.html b/dependency-management.html
index 6827b55..2c7aac2 100644
--- a/dependency-management.html
+++ b/dependency-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -980,7 +980,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/allclasses-frame.html
----------------------------------------------------------------------
diff --git a/devapidocs/allclasses-frame.html b/devapidocs/allclasses-frame.html
index 4d98716..23a0b2f 100644
--- a/devapidocs/allclasses-frame.html
+++ b/devapidocs/allclasses-frame.html
@@ -2887,8 +2887,6 @@
 <li><a href="org/apache/hadoop/hbase/zookeeper/ZKMainServer.html" title="class in org.apache.hadoop.hbase.zookeeper" target="classFrame">ZKMainServer</a></li>
 <li><a href="org/apache/hadoop/hbase/zookeeper/ZKMainServer.HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain.html" title="class in org.apache.hadoop.hbase.zookeeper" target="classFrame">ZKMainServer.HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain</a></li>
 <li><a href="org/apache/hadoop/hbase/zookeeper/ZKMetadata.html" title="class in org.apache.hadoop.hbase.zookeeper" target="classFrame">ZKMetadata</a></li>
-<li><a href="org/apache/hadoop/hbase/zookeeper/ZKMetrics.html" title="class in org.apache.hadoop.hbase.zookeeper" target="classFrame">ZKMetrics</a></li>
-<li><a href="org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html" title="interface in org.apache.hadoop.hbase.zookeeper" target="classFrame"><span class="interfaceName">ZKMetricsListener</span></a></li>
 <li><a href="org/apache/hadoop/hbase/ZKNamespaceManager.html" title="class in org.apache.hadoop.hbase" target="classFrame">ZKNamespaceManager</a></li>
 <li><a href="org/apache/hadoop/hbase/zookeeper/ZKNodeTracker.html" title="class in org.apache.hadoop.hbase.zookeeper" target="classFrame">ZKNodeTracker</a></li>
 <li><a href="org/apache/hadoop/hbase/security/access/ZKPermissionWatcher.html" title="class in org.apache.hadoop.hbase.security.access" target="classFrame">ZKPermissionWatcher</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/allclasses-noframe.html
----------------------------------------------------------------------
diff --git a/devapidocs/allclasses-noframe.html b/devapidocs/allclasses-noframe.html
index 84fbb01..d5a7f3f 100644
--- a/devapidocs/allclasses-noframe.html
+++ b/devapidocs/allclasses-noframe.html
@@ -2887,8 +2887,6 @@
 <li><a href="org/apache/hadoop/hbase/zookeeper/ZKMainServer.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKMainServer</a></li>
 <li><a href="org/apache/hadoop/hbase/zookeeper/ZKMainServer.HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKMainServer.HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain</a></li>
 <li><a href="org/apache/hadoop/hbase/zookeeper/ZKMetadata.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKMetadata</a></li>
-<li><a href="org/apache/hadoop/hbase/zookeeper/ZKMetrics.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKMetrics</a></li>
-<li><a href="org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html" title="interface in org.apache.hadoop.hbase.zookeeper"><span class="interfaceName">ZKMetricsListener</span></a></li>
 <li><a href="org/apache/hadoop/hbase/ZKNamespaceManager.html" title="class in org.apache.hadoop.hbase">ZKNamespaceManager</a></li>
 <li><a href="org/apache/hadoop/hbase/zookeeper/ZKNodeTracker.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKNodeTracker</a></li>
 <li><a href="org/apache/hadoop/hbase/security/access/ZKPermissionWatcher.html" title="class in org.apache.hadoop.hbase.security.access">ZKPermissionWatcher</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/constant-values.html
----------------------------------------------------------------------
diff --git a/devapidocs/constant-values.html b/devapidocs/constant-values.html
index 9017893..d9eeffd 100644
--- a/devapidocs/constant-values.html
+++ b/devapidocs/constant-values.html
@@ -3747,21 +3747,21 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#date">date</a></code></td>
-<td class="colLast"><code>"Fri Jan 12 14:43:14 UTC 2018"</code></td>
+<td class="colLast"><code>"Sat Jan 13 14:43:08 UTC 2018"</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.revision">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="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>"20ccaef8418a34b909256c2a0b68f55b390c9dfb"</code></td>
+<td class="colLast"><code>"4ddfecac563384de6f087fc7fc8bc62c0362877d"</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>"74a7aead7c376092663990565cd6271f"</code></td>
+<td class="colLast"><code>"d0b248ebd327a6c13d61ead0aa4930e9"</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.url">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/index-all.html
----------------------------------------------------------------------
diff --git a/devapidocs/index-all.html b/devapidocs/index-all.html
index b4678f8..8c2277b 100644
--- a/devapidocs/index-all.html
+++ b/devapidocs/index-all.html
@@ -7355,6 +7355,10 @@
 <dd>
 <div class="block">Bulk load: Add a specified store file to the specified family.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#bulkLoadTableName">bulkLoadTableName</a></span> - Variable in class org.apache.hadoop.hbase.backup.impl.<a href="org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupSystemTable</a></dt>
+<dd>
+<div class="block">Backup System table name for bulk loaded files.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#bulkLoadTimer">bulkLoadTimer</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServer</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/LoadIncrementalHFiles.html#bulkToken">bulkToken</a></span> - Variable in class org.apache.hadoop.hbase.tool.<a href="org/apache/hadoop/hbase/tool/LoadIncrementalHFiles.html" title="class in org.apache.hadoop.hbase.tool">LoadIncrementalHFiles</a></dt>
@@ -23682,7 +23686,9 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html#deleteBulkLoadDirectory--">deleteBulkLoadDirectory()</a></span> - Method in class org.apache.hadoop.hbase.backup.impl.<a href="org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html" title="class in org.apache.hadoop.hbase.backup.impl">IncrementalTableBackupClient</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#deleteBulkLoadedFiles-java.util.Map-">deleteBulkLoadedFiles(Map&lt;byte[], String&gt;)</a></span> - Method in class org.apache.hadoop.hbase.backup.impl.<a href="org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupSystemTable</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/backup/impl/BackupManager.html#deleteBulkLoadedRows-java.util.List-">deleteBulkLoadedRows(List&lt;byte[]&gt;)</a></span> - Method in class org.apache.hadoop.hbase.backup.impl.<a href="org/apache/hadoop/hbase/backup/impl/BackupManager.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupManager</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#deleteBulkLoadedRows-java.util.List-">deleteBulkLoadedRows(List&lt;byte[]&gt;)</a></span> - Method in class org.apache.hadoop.hbase.backup.impl.<a href="org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupSystemTable</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/ClusterConnection.html#deleteCachedRegionLocation-org.apache.hadoop.hbase.HRegionLocation-">deleteCachedRegionLocation(HRegionLocation)</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>
@@ -32185,6 +32191,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/backup/HFileArchiver.FileConverter.html#fs">fs</a></span> - Variable in class org.apache.hadoop.hbase.backup.<a href="org/apache/hadoop/hbase/backup/HFileArchiver.FileConverter.html" title="class in org.apache.hadoop.hbase.backup">HFileArchiver.FileConverter</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#fs">fs</a></span> - Variable in class org.apache.hadoop.hbase.backup.impl.<a href="org/apache/hadoop/hbase/backup/impl/TableBackupClient.html" title="class in org.apache.hadoop.hbase.backup.impl">TableBackupClient</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/backup/util/RestoreTool.html#fs">fs</a></span> - Variable in class org.apache.hadoop.hbase.backup.util.<a href="org/apache/hadoop/hbase/backup/util/RestoreTool.html" title="class in org.apache.hadoop.hbase.backup.util">RestoreTool</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TableSnapshotScanner.html#fs">fs</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TableSnapshotScanner.html" title="class in org.apache.hadoop.hbase.client">TableSnapshotScanner</a></dt>
@@ -38191,6 +38199,8 @@
 <dd>
 <div class="block">Gets the approximate mid-point of the given file that is optimal for use in splitting it.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html#getFilesRecursively-java.lang.String-">getFilesRecursively(String)</a></span> - Method in class org.apache.hadoop.hbase.backup.impl.<a href="org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html" title="class in org.apache.hadoop.hbase.backup.impl">RestoreTablesClient</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/FileLink.html#getFileStatus-org.apache.hadoop.fs.FileSystem-">getFileStatus(FileSystem)</a></span> - Method in class org.apache.hadoop.hbase.io.<a href="org/apache/hadoop/hbase/io/FileLink.html" title="class in org.apache.hadoop.hbase.io">FileLink</a></dt>
 <dd>
 <div class="block">Get the FileStatus of the referenced file.</div>
@@ -49472,6 +49482,10 @@
 <dd>
 <div class="block">Get backup system table descriptor</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#getSystemTableForBulkLoadedDataDescriptor-org.apache.hadoop.conf.Configuration-">getSystemTableForBulkLoadedDataDescriptor(Configuration)</a></span> - Static method in class org.apache.hadoop.hbase.backup.impl.<a href="org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupSystemTable</a></dt>
+<dd>
+<div class="block">Get backup system table descriptor</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/Superusers.html#getSystemUser--">getSystemUser()</a></span> - Static method in class org.apache.hadoop.hbase.security.<a href="org/apache/hadoop/hbase/security/Superusers.html" title="class in org.apache.hadoop.hbase.security">Superusers</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/backup/BackupTableInfo.html#getTable--">getTable()</a></span> - Method in class org.apache.hadoop.hbase.backup.<a href="org/apache/hadoop/hbase/backup/BackupTableInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupTableInfo</a></dt>
@@ -49986,6 +50000,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/HBaseAdmin.html#getTableNameBeforeRestoreSnapshot-java.lang.String-">getTableNameBeforeRestoreSnapshot(String)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/HBaseAdmin.html" title="class in org.apache.hadoop.hbase.client">HBaseAdmin</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#getTableNameForBulkLoadedData-org.apache.hadoop.conf.Configuration-">getTableNameForBulkLoadedData(Configuration)</a></span> - Static method in class org.apache.hadoop.hbase.backup.impl.<a href="org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupSystemTable</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#getTableNameForReadLogTimestampMap-byte:A-">getTableNameForReadLogTimestampMap(byte[])</a></span> - Method in class org.apache.hadoop.hbase.backup.impl.<a href="org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupSystemTable</a></dt>
 <dd>
 <div class="block">Get table name from rowkey</div>
@@ -71106,8 +71122,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/thrift2/ThriftHBaseServiceHandler.THBaseServiceMetricsProxy.html#metrics">metrics</a></span> - Variable in class org.apache.hadoop.hbase.thrift2.<a href="org/apache/hadoop/hbase/thrift2/ThriftHBaseServiceHandler.THBaseServiceMetricsProxy.html" title="class in org.apache.hadoop.hbase.thrift2">ThriftHBaseServiceHandler.THBaseServiceMetricsProxy</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#metrics">metrics</a></span> - Variable in class org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html" title="class in org.apache.hadoop.hbase.zookeeper">RecoverableZooKeeper</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/metrics2/lib/DynamicMetricsRegistry.html#metrics--">metrics()</a></span> - Method in class org.apache.hadoop.metrics2.lib.<a href="org/apache/hadoop/metrics2/lib/DynamicMetricsRegistry.html" title="class in org.apache.hadoop.metrics2.lib">DynamicMetricsRegistry</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/MetricsIOSource.html#METRICS_CONTEXT">METRICS_CONTEXT</a></span> - Static variable in interface org.apache.hadoop.hbase.io.<a href="org/apache/hadoop/hbase/io/MetricsIOSource.html" title="interface in org.apache.hadoop.hbase.io">MetricsIOSource</a></dt>
@@ -88021,12 +88035,6 @@ service.</div>
 <dd>
 <div class="block">Registers the <a href="org/apache/hadoop/hbase/metrics/Metric.html" title="interface in org.apache.hadoop.hbase.metrics"><code>Metric</code></a>s in the given MetricSet.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#registerAuthFailedException--">registerAuthFailedException()</a></span> - Method in class org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZKMetrics.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKMetrics</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerAuthFailedException--">registerAuthFailedException()</a></span> - Method in interface org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html" title="interface in org.apache.hadoop.hbase.zookeeper">ZKMetricsListener</a></dt>
-<dd>
-<div class="block">An AUTHFAILED Exception was seen.</div>
-</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/conf/PropagatingConfigurationObserver.html#registerChildren-org.apache.hadoop.hbase.conf.ConfigurationManager-">registerChildren(ConfigurationManager)</a></span> - Method in interface org.apache.hadoop.hbase.conf.<a href="org/apache/hadoop/hbase/conf/PropagatingConfigurationObserver.html" title="interface in org.apache.hadoop.hbase.conf">PropagatingConfigurationObserver</a></dt>
 <dd>
 <div class="block">Needs to be called to register the children to the manager.</div>
@@ -88045,20 +88053,8 @@ service.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HRegionServer.html#registerConfigurationObservers--">registerConfigurationObservers()</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/zookeeper/ZKMetrics.html#registerConnectionLossException--">registerConnectionLossException()</a></span> - Method in class org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZKMetrics.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKMetrics</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerConnectionLossException--">registerConnectionLossException()</a></span> - Method in interface org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html" title="interface in org.apache.hadoop.hbase.zookeeper">ZKMetricsListener</a></dt>
-<dd>
-<div class="block">A CONNECTIONLOSS Exception was seen.</div>
-</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rest/RESTServlet.html#registerCustomFilter-org.apache.hadoop.conf.Configuration-">registerCustomFilter(Configuration)</a></span> - Method in class org.apache.hadoop.hbase.rest.<a href="org/apache/hadoop/hbase/rest/RESTServlet.html" title="class in org.apache.hadoop.hbase.rest">RESTServlet</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#registerDataInconsistencyException--">registerDataInconsistencyException()</a></span> - Method in class org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZKMetrics.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKMetrics</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerDataInconsistencyException--">registerDataInconsistencyException()</a></span> - Method in interface org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html" title="interface in org.apache.hadoop.hbase.zookeeper">ZKMetricsListener</a></dt>
-<dd>
-<div class="block">A DATAINCONSISTENCY Exception was seen.</div>
-</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/CacheableDeserializerIdManager.html#registerDeserializer-org.apache.hadoop.hbase.io.hfile.CacheableDeserializer-">registerDeserializer(CacheableDeserializer&lt;Cacheable&gt;)</a></span> - Static method in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/CacheableDeserializerIdManager.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheableDeserializerIdManager</a></dt>
 <dd>
 <div class="block">Register the given cacheable deserializer and generate an unique identifier
@@ -88068,12 +88064,6 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/metrics/impl/GlobalMetricRegistriesAdapter.html#registeredSources">registeredSources</a></span> - Variable in class org.apache.hadoop.hbase.metrics.impl.<a href="org/apache/hadoop/hbase/metrics/impl/GlobalMetricRegistriesAdapter.html" title="class in org.apache.hadoop.hbase.metrics.impl">GlobalMetricRegistriesAdapter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#registerFailedZKCall--">registerFailedZKCall()</a></span> - Method in class org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZKMetrics.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKMetrics</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerFailedZKCall--">registerFailedZKCall()</a></span> - Method in interface org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html" title="interface in org.apache.hadoop.hbase.zookeeper">ZKMetricsListener</a></dt>
-<dd>
-<div class="block">A ZooKeeper API Call failed.</div>
-</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/filter/ParseFilter.html#registerFilter-java.lang.String-java.lang.String-">registerFilter(String, String)</a></span> - Static method in class org.apache.hadoop.hbase.filter.<a href="org/apache/hadoop/hbase/filter/ParseFilter.html" title="class in org.apache.hadoop.hbase.filter">ParseFilter</a></dt>
 <dd>
 <div class="block">Register a new filter with the parser.</div>
@@ -88096,12 +88086,6 @@ service.</div>
 <dd>
 <div class="block">Add a connection to the list that want to write,</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#registerInvalidACLException--">registerInvalidACLException()</a></span> - Method in class org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZKMetrics.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKMetrics</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerInvalidACLException--">registerInvalidACLException()</a></span> - Method in interface org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html" title="interface in org.apache.hadoop.hbase.zookeeper">ZKMetricsListener</a></dt>
-<dd>
-<div class="block">An INVALIDACL Exception was seen.</div>
-</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/coordination/SplitLogWorkerCoordination.html#registerListener--">registerListener()</a></span> - Method in interface org.apache.hadoop.hbase.coordination.<a href="org/apache/hadoop/hbase/coordination/SplitLogWorkerCoordination.html" title="interface in org.apache.hadoop.hbase.coordination">SplitLogWorkerCoordination</a></dt>
 <dd>
 <div class="block">set the listener for task changes.</div>
@@ -88139,12 +88123,6 @@ service.</div>
 <div class="block">Register the specified listener to receive ZooKeeper events and add it as
  the first in the list of current listeners.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#registerNoAuthException--">registerNoAuthException()</a></span> - Method in class org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZKMetrics.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKMetrics</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerNoAuthException--">registerNoAuthException()</a></span> - Method in interface org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html" title="interface in org.apache.hadoop.hbase.zookeeper">ZKMetricsListener</a></dt>
-<dd>
-<div class="block">A NOAUTH Exception was seen.</div>
-</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#registerNonce-org.apache.hadoop.hbase.util.NonceKey-">registerNonce(NonceKey)</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureExecutor</a></dt>
 <dd>
 <div class="block">Register a nonce for a procedure that is going to be submitted.</div>
@@ -88153,34 +88131,16 @@ service.</div>
 <dd>
 <div class="block">Register an observer class</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#registerOperationTimeoutException--">registerOperationTimeoutException()</a></span> - Method in class org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZKMetrics.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKMetrics</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerOperationTimeoutException--">registerOperationTimeoutException()</a></span> - Method in interface org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html" title="interface in org.apache.hadoop.hbase.zookeeper">ZKMetricsListener</a></dt>
-<dd>
-<div class="block">A OPERATIONTIMEOUT Exception was seen.</div>
-</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/ReplicationPeer.html#registerPeerConfigListener-org.apache.hadoop.hbase.replication.ReplicationPeerConfigListener-">registerPeerConfigListener(ReplicationPeerConfigListener)</a></span> - Method in interface org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/ReplicationPeer.html" title="interface in org.apache.hadoop.hbase.replication">ReplicationPeer</a></dt>
 <dd>
 <div class="block">Register a peer config listener to catch the peer config change event.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/ReplicationPeerImpl.html#registerPeerConfigListener-org.apache.hadoop.hbase.replication.ReplicationPeerConfigListener-">registerPeerConfigListener(ReplicationPeerConfigListener)</a></span> - Method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/ReplicationPeerImpl.html" title="class in org.apache.hadoop.hbase.replication">ReplicationPeerImpl</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#registerReadOperationLatency-long-">registerReadOperationLatency(long)</a></span> - Method in class org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZKMetrics.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKMetrics</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerReadOperationLatency-long-">registerReadOperationLatency(long)</a></span> - Method in interface org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html" title="interface in org.apache.hadoop.hbase.zookeeper">ZKMetricsListener</a></dt>
-<dd>
-<div class="block">Register the latency incurred for read operations.</div>
-</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.Cluster.html#registerRegion-org.apache.hadoop.hbase.client.RegionInfo-int-int-java.util.Map-org.apache.hadoop.hbase.master.balancer.RegionLocationFinder-">registerRegion(RegionInfo, int, int, Map&lt;String, Deque&lt;BalancerRegionLoad&gt;&gt;, RegionLocationFinder)</a></span> - Method in class org.apache.hadoop.hbase.master.balancer.<a href="org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.Cluster.html" title="class in org.apache.hadoop.hbase.master.balancer">BaseLoadBalancer.Cluster</a></dt>
 <dd>
 <div class="block">Helper for Cluster constructor to handle a region</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#registerRuntimeInconsistencyException--">registerRuntimeInconsistencyException()</a></span> - Method in class org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZKMetrics.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKMetrics</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerRuntimeInconsistencyException--">registerRuntimeInconsistencyException()</a></span> - Method in interface org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html" title="interface in org.apache.hadoop.hbase.zookeeper">ZKMetricsListener</a></dt>
-<dd>
-<div class="block">A RUNTIMEINCONSISTENCY Exception was seen.</div>
-</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/HMaster.html#registerService-com.google.protobuf.Service-">registerService(Service)</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master">HMaster</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/MasterServices.html#registerService-com.google.protobuf.Service-">registerService(Service)</a></span> - Method in interface org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></dt>
@@ -88200,24 +88160,6 @@ service.</div>
 <div class="block">Registers a new protocol buffer <code>Service</code> subclass as a coprocessor endpoint to be
  available for handling</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#registerSessionExpiredException--">registerSessionExpiredException()</a></span> - Method in class org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZKMetrics.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKMetrics</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerSessionExpiredException--">registerSessionExpiredException()</a></span> - Method in interface org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html" title="interface in org.apache.hadoop.hbase.zookeeper">ZKMetricsListener</a></dt>
-<dd>
-<div class="block">A SESSIONEXPIRED Exception was seen.</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#registerSyncOperationLatency-long-">registerSyncOperationLatency(long)</a></span> - Method in class org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZKMetrics.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKMetrics</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerSyncOperationLatency-long-">registerSyncOperationLatency(long)</a></span> - Method in interface org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html" title="interface in org.apache.hadoop.hbase.zookeeper">ZKMetricsListener</a></dt>
-<dd>
-<div class="block">Register the latency incurred for sync operations.</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#registerSystemErrorException--">registerSystemErrorException()</a></span> - Method in class org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZKMetrics.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKMetrics</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerSystemErrorException--">registerSystemErrorException()</a></span> - Method in interface org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html" title="interface in org.apache.hadoop.hbase.zookeeper">ZKMetricsListener</a></dt>
-<dd>
-<div class="block">A SYSTEMERROR Exception was seen.</div>
-</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#registerTuneObserver-org.apache.hadoop.hbase.regionserver.HeapMemoryManager.HeapMemoryTuneObserver-">registerTuneObserver(HeapMemoryManager.HeapMemoryTuneObserver)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html" title="class in org.apache.hadoop.hbase.regionserver">HeapMemoryManager</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#registerWALActionsListener-org.apache.hadoop.hbase.regionserver.wal.WALActionsListener-">registerWALActionsListener(WALActionsListener)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AbstractFSWAL</a></dt>
@@ -88228,12 +88170,6 @@ service.</div>
 <dd>
 <div class="block">Registers WALActionsListener</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#registerWriteOperationLatency-long-">registerWriteOperationLatency(long)</a></span> - Method in class org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZKMetrics.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKMetrics</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerWriteOperationLatency-long-">registerWriteOperationLatency(long)</a></span> - Method in interface org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html" title="interface in org.apache.hadoop.hbase.zookeeper">ZKMetricsListener</a></dt>
-<dd>
-<div class="block">Register the latency incurred for write operations.</div>
-</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/SimpleRpcServerResponder.html#registerWrites--">registerWrites()</a></span> - Method in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/SimpleRpcServerResponder.html" title="class in org.apache.hadoop.hbase.ipc">SimpleRpcServerResponder</a></dt>
 <dd>
 <div class="block">Take the list of the connections that want to write, and register them in the selector.</div>
@@ -88854,10 +88790,6 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.BucketSizeInfo.html#removeBucket-org.apache.hadoop.hbase.io.hfile.bucket.BucketAllocator.Bucket-">removeBucket(BucketAllocator.Bucket)</a></span> - Method in class org.apache.hadoop.hbase.io.hfile.bucket.<a href="org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.BucketSizeInfo.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketAllocator.BucketSizeInfo</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/backup/impl/BackupManager.html#removeBulkLoadedRows-java.util.List-java.util.List-">removeBulkLoadedRows(List&lt;TableName&gt;, List&lt;byte[]&gt;)</a></span> - Method in class org.apache.hadoop.hbase.backup.impl.<a href="org/apache/hadoop/hbase/backup/impl/BackupManager.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupManager</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#removeBulkLoadedRows-java.util.List-java.util.List-">removeBulkLoadedRows(List&lt;TableName&gt;, List&lt;byte[]&gt;)</a></span> - Method in class org.apache.hadoop.hbase.backup.impl.<a href="org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupSystemTable</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/RegionLocations.html#removeByServer-org.apache.hadoop.hbase.ServerName-">removeByServer(ServerName)</a></span> - Method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/RegionLocations.html" title="class in org.apache.hadoop.hbase">RegionLocations</a></dt>
 <dd>
 <div class="block">Returns a new RegionLocations with the locations removed (set to null)
@@ -103984,8 +103916,6 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/thrift/ThriftMetrics.html#source">source</a></span> - Variable in class org.apache.hadoop.hbase.thrift.<a href="org/apache/hadoop/hbase/thrift/ThriftMetrics.html" title="class in org.apache.hadoop.hbase.thrift">ThriftMetrics</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#source">source</a></span> - Variable in class org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZKMetrics.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKMetrics</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSource.html#SOURCE_AGE_OF_LAST_SHIPPED_OP">SOURCE_AGE_OF_LAST_SHIPPED_OP</a></span> - Static variable in interface org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSource.html" title="interface in org.apache.hadoop.hbase.replication.regionserver">MetricsReplicationSourceSource</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSource.html#SOURCE_CLOSED_LOGS_WITH_UNKNOWN_LENGTH">SOURCE_CLOSED_LOGS_WITH_UNKNOWN_LENGTH</a></span> - Static variable in interface org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSource.html" title="interface in org.apache.hadoop.hbase.replication.regionserver">MetricsReplicationSourceSource</a></dt>
@@ -106015,6 +105945,8 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/TimeToLiveProcedureWALCleaner.html#stop-java.lang.String-">stop(String)</a></span> - Method in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/TimeToLiveProcedureWALCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">TimeToLiveProcedureWALCleaner</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/HMaster.html#stop-java.lang.String-">stop(String)</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master">HMaster</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/MasterFileSystem.html#stop--">stop()</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/MasterFileSystem.html" title="class in org.apache.hadoop.hbase.master">MasterFileSystem</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/MasterWalManager.html#stop--">stop()</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/MasterWalManager.html" title="class in org.apache.hadoop.hbase.master">MasterWalManager</a></dt>
@@ -108067,7 +107999,9 @@ service.</div>
 <div class="block">Constructor</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#tableName">tableName</a></span> - Variable in class org.apache.hadoop.hbase.backup.impl.<a href="org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupSystemTable</a></dt>
-<dd>&nbsp;</dd>
+<dd>
+<div class="block">Backup system table (main) name</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncBatchRpcRetryingCaller.html#tableName">tableName</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncBatchRpcRetryingCaller.html" title="class in org.apache.hadoop.hbase.client">AsyncBatchRpcRetryingCaller</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncClientScanner.html#tableName">tableName</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncClientScanner.html" title="class in org.apache.hadoop.hbase.client">AsyncClientScanner</a></dt>
@@ -113705,6 +113639,8 @@ service.</div>
 <dd>
 <div class="block">Update an assignment to the plan</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html#updateFileLists-java.util.List-java.util.List-">updateFileLists(List&lt;String&gt;, List&lt;String&gt;)</a></span> - Method in class org.apache.hadoop.hbase.backup.impl.<a href="org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html" title="class in org.apache.hadoop.hbase.backup.impl">IncrementalTableBackupClient</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#updateFiles-java.util.Collection-">updateFiles(Collection&lt;HStoreFile&gt;)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.compactions.<a href="org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">CompactionRequestImpl</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updateFlush-long-long-long-">updateFlush(long, long, long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServer</a></dt>
@@ -117302,7 +117238,7 @@ the order they are declared.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/HBaseAdmin.ProcedureFuture.html#waitForState-long-org.apache.hadoop.hbase.client.HBaseAdmin.ProcedureFuture.WaitForStateCallable-">waitForState(long, HBaseAdmin.ProcedureFuture.WaitForStateCallable)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/HBaseAdmin.ProcedureFuture.html" title="class in org.apache.hadoop.hbase.client">HBaseAdmin.ProcedureFuture</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#waitForSystemTable-org.apache.hadoop.hbase.client.Admin-">waitForSystemTable(Admin)</a></span> - Method in class org.apache.hadoop.hbase.backup.impl.<a href="org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupSystemTable</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#waitForSystemTable-org.apache.hadoop.hbase.client.Admin-org.apache.hadoop.hbase.TableName-">waitForSystemTable(Admin, TableName)</a></span> - Method in class org.apache.hadoop.hbase.backup.impl.<a href="org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupSystemTable</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/HBaseAdmin.TableFuture.html#waitForTableDisabled-long-">waitForTableDisabled(long)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/HBaseAdmin.TableFuture.html" title="class in org.apache.hadoop.hbase.client">HBaseAdmin.TableFuture</a></dt>
 <dd>&nbsp;</dd>
@@ -118943,8 +118879,6 @@ the order they are declared.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/ConnectionConfiguration.html#writeBufferSize">writeBufferSize</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/ConnectionConfiguration.html" title="class in org.apache.hadoop.hbase.client">ConnectionConfiguration</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/backup/impl/BackupManager.html#writeBulkLoadedFiles-java.util.List-java.util.Map:A-">writeBulkLoadedFiles(List&lt;TableName&gt;, Map&lt;byte[], List&lt;Path&gt;&gt;[])</a></span> - Method in class org.apache.hadoop.hbase.backup.impl.<a href="org/apache/hadoop/hbase/backup/impl/BackupManager.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupManager</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#writeBulkLoadedFiles-java.util.List-java.util.Map:A-java.lang.String-">writeBulkLoadedFiles(List&lt;TableName&gt;, Map&lt;byte[], List&lt;Path&gt;&gt;[], String)</a></span> - Method in class org.apache.hadoop.hbase.backup.impl.<a href="org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupSystemTable</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/WALUtil.html#writeBulkLoadMarkerAndSync-org.apache.hadoop.hbase.wal.WAL-java.util.NavigableMap-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.BulkLoadDescriptor-org.apache.hadoop.hbase.regionserver.MultiVersionConcurrencyControl-">writeBulkLoadMarkerAndSync(WAL, NavigableMap&lt;byte[], Integer&gt;, RegionInfo, WALProtos.BulkLoadDescriptor, MultiVersionConcurrencyControl)</a></span> - Static method in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/WALUtil.html" title="class in org.apache.hadoop.hbase.regionserver.wal">WALUtil</a></dt>
@@ -119799,16 +119733,6 @@ the order they are declared.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/ZKMetadata.html#ZKMetadata--">ZKMetadata()</a></span> - Constructor for class org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZKMetadata.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKMetadata</a></dt>
 <dd>&nbsp;</dd>
-<dt><a href="org/apache/hadoop/hbase/zookeeper/ZKMetrics.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">ZKMetrics</span></a> - Class in <a href="org/apache/hadoop/hbase/zookeeper/package-summary.html">org.apache.hadoop.hbase.zookeeper</a></dt>
-<dd>
-<div class="block">Class used to push numbers about ZooKeeper into the metrics subsystem.</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#ZKMetrics--">ZKMetrics()</a></span> - Constructor for class org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZKMetrics.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKMetrics</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#ZKMetrics-org.apache.hadoop.hbase.zookeeper.MetricsZooKeeperSource-">ZKMetrics(MetricsZooKeeperSource)</a></span> - Constructor for class org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZKMetrics.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKMetrics</a></dt>
-<dd>&nbsp;</dd>
-<dt><a href="org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html" title="interface in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">ZKMetricsListener</span></a> - Interface in <a href="org/apache/hadoop/hbase/zookeeper/package-summary.html">org.apache.hadoop.hbase.zookeeper</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/TableNamespaceManager.html#zkNamespaceManager">zkNamespaceManager</a></span> - Variable in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/TableNamespaceManager.html" title="class in org.apache.hadoop.hbase.master">TableNamespaceManager</a></dt>
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/ZKNamespaceManager.html" title="class in org.apache.hadoop.hbase"><span class="typeNameLink">ZKNamespaceManager</span></a> - Class in <a href="org/apache/hadoop/hbase/package-summary.html">org.apache.hadoop.hbase</a></dt>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/src-html/org/apache/hadoop/hbase/zookeeper/ZKMetrics.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/zookeeper/ZKMetrics.html b/devapidocs/src-html/org/apache/hadoop/hbase/zookeeper/ZKMetrics.html
deleted file mode 100644
index 8569f13..0000000
--- a/devapidocs/src-html/org/apache/hadoop/hbase/zookeeper/ZKMetrics.html
+++ /dev/null
@@ -1,180 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html lang="en">
-<head>
-<title>Source code</title>
-<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
-</head>
-<body>
-<div class="sourceContainer">
-<pre><span class="sourceLineNo">001</span>/*<a name="line.1"></a>
-<span class="sourceLineNo">002</span> *<a name="line.2"></a>
-<span class="sourceLineNo">003</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.3"></a>
-<span class="sourceLineNo">004</span> * or more contributor license agreements.  See the NOTICE file<a name="line.4"></a>
-<span class="sourceLineNo">005</span> * distributed with this work for additional information<a name="line.5"></a>
-<span class="sourceLineNo">006</span> * regarding copyright ownership.  The ASF licenses this file<a name="line.6"></a>
-<span class="sourceLineNo">007</span> * to you under the Apache License, Version 2.0 (the<a name="line.7"></a>
-<span class="sourceLineNo">008</span> * "License"); you may not use this file except in compliance<a name="line.8"></a>
-<span class="sourceLineNo">009</span> * with the License.  You may obtain a copy of the License at<a name="line.9"></a>
-<span class="sourceLineNo">010</span> *<a name="line.10"></a>
-<span class="sourceLineNo">011</span> *     http://www.apache.org/licenses/LICENSE-2.0<a name="line.11"></a>
-<span class="sourceLineNo">012</span> *<a name="line.12"></a>
-<span class="sourceLineNo">013</span> * Unless required by applicable law or agreed to in writing, software<a name="line.13"></a>
-<span class="sourceLineNo">014</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.14"></a>
-<span class="sourceLineNo">015</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.15"></a>
-<span class="sourceLineNo">016</span> * See the License for the specific language governing permissions and<a name="line.16"></a>
-<span class="sourceLineNo">017</span> * limitations under the License.<a name="line.17"></a>
-<span class="sourceLineNo">018</span> */<a name="line.18"></a>
-<span class="sourceLineNo">019</span><a name="line.19"></a>
-<span class="sourceLineNo">020</span>package org.apache.hadoop.hbase.zookeeper;<a name="line.20"></a>
-<span class="sourceLineNo">021</span><a name="line.21"></a>
-<span class="sourceLineNo">022</span>import org.apache.hadoop.hbase.CompatibilitySingletonFactory;<a name="line.22"></a>
-<span class="sourceLineNo">023</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.23"></a>
-<span class="sourceLineNo">024</span><a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.hbase.thirdparty.com.google.common.annotations.VisibleForTesting;<a name="line.25"></a>
-<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> * Class used to push numbers about ZooKeeper into the metrics subsystem. This will take a<a name="line.28"></a>
-<span class="sourceLineNo">029</span> * single function call and turn it into multiple manipulations of the hadoop metrics system.<a name="line.29"></a>
-<span class="sourceLineNo">030</span> */<a name="line.30"></a>
-<span class="sourceLineNo">031</span>@InterfaceAudience.Private<a name="line.31"></a>
-<span class="sourceLineNo">032</span>public class ZKMetrics implements ZKMetricsListener {<a name="line.32"></a>
-<span class="sourceLineNo">033</span>  private final MetricsZooKeeperSource source;<a name="line.33"></a>
-<span class="sourceLineNo">034</span><a name="line.34"></a>
-<span class="sourceLineNo">035</span>  public ZKMetrics() {<a name="line.35"></a>
-<span class="sourceLineNo">036</span>    this(CompatibilitySingletonFactory.getInstance(MetricsZooKeeperSource.class));<a name="line.36"></a>
-<span class="sourceLineNo">037</span>  }<a name="line.37"></a>
-<span class="sourceLineNo">038</span><a name="line.38"></a>
-<span class="sourceLineNo">039</span>  @VisibleForTesting<a name="line.39"></a>
-<span class="sourceLineNo">040</span>  public ZKMetrics(MetricsZooKeeperSource s) {<a name="line.40"></a>
-<span class="sourceLineNo">041</span>    this.source = s;<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>  @Override<a name="line.44"></a>
-<span class="sourceLineNo">045</span>  public void registerAuthFailedException() {<a name="line.45"></a>
-<span class="sourceLineNo">046</span>    source.incrementAuthFailedCount();<a name="line.46"></a>
-<span class="sourceLineNo">047</span>  }<a name="line.47"></a>
-<span class="sourceLineNo">048</span><a name="line.48"></a>
-<span class="sourceLineNo">049</span>  @Override<a name="line.49"></a>
-<span class="sourceLineNo">050</span>  public void registerConnectionLossException() {<a name="line.50"></a>
-<span class="sourceLineNo">051</span>    source.incrementConnectionLossCount();<a name="line.51"></a>
-<span class="sourceLineNo">052</span>  }<a name="line.52"></a>
-<span class="sourceLineNo">053</span><a name="line.53"></a>
-<span class="sourceLineNo">054</span>  @Override<a name="line.54"></a>
-<span class="sourceLineNo">055</span>  public void registerDataInconsistencyException() {<a name="line.55"></a>
-<span class="sourceLineNo">056</span>    source.incrementDataInconsistencyCount();<a name="line.56"></a>
-<span class="sourceLineNo">057</span>  }<a name="line.57"></a>
-<span class="sourceLineNo">058</span><a name="line.58"></a>
-<span class="sourceLineNo">059</span>  @Override<a name="line.59"></a>
-<span class="sourceLineNo">060</span>  public void registerInvalidACLException() {<a name="line.60"></a>
-<span class="sourceLineNo">061</span>    source.incrementInvalidACLCount();<a name="line.61"></a>
-<span class="sourceLineNo">062</span>  }<a name="line.62"></a>
-<span class="sourceLineNo">063</span><a name="line.63"></a>
-<span class="sourceLineNo">064</span>  @Override<a name="line.64"></a>
-<span class="sourceLineNo">065</span>  public void registerNoAuthException() {<a name="line.65"></a>
-<span class="sourceLineNo">066</span>    source.incrementNoAuthCount();<a name="line.66"></a>
-<span class="sourceLineNo">067</span>  }<a name="line.67"></a>
-<span class="sourceLineNo">068</span><a name="line.68"></a>
-<span class="sourceLineNo">069</span>  @Override<a name="line.69"></a>
-<span class="sourceLineNo">070</span>  public void registerOperationTimeoutException() {<a name="line.70"></a>
-<span class="sourceLineNo">071</span>    source.incrementOperationTimeoutCount();<a name="line.71"></a>
-<span class="sourceLineNo">072</span>  }<a name="line.72"></a>
-<span class="sourceLineNo">073</span><a name="line.73"></a>
-<span class="sourceLineNo">074</span>  @Override<a name="line.74"></a>
-<span class="sourceLineNo">075</span>  public void registerRuntimeInconsistencyException() {<a name="line.75"></a>
-<span class="sourceLineNo">076</span>    source.incrementRuntimeInconsistencyCount();<a name="line.76"></a>
-<span class="sourceLineNo">077</span>  }<a name="line.77"></a>
-<span class="sourceLineNo">078</span><a name="line.78"></a>
-<span class="sourceLineNo">079</span>  @Override<a name="line.79"></a>
-<span class="sourceLineNo">080</span>  public void registerSessionExpiredException() {<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    source.incrementSessionExpiredCount();<a name="line.81"></a>
-<span class="sourceLineNo">082</span>  }<a name="line.82"></a>
-<span class="sourceLineNo">083</span><a name="line.83"></a>
-<span class="sourceLineNo">084</span>  @Override<a name="line.84"></a>
-<span class="sourceLineNo">085</span>  public void registerSystemErrorException() {<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    source.incrementSystemErrorCount();<a name="line.86"></a>
-<span class="sourceLineNo">087</span>  }<a name="line.87"></a>
-<span class="sourceLineNo">088</span><a name="line.88"></a>
-<span class="sourceLineNo">089</span>  @Override<a name="line.89"></a>
-<span class="sourceLineNo">090</span>  public void registerFailedZKCall() {<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    source.incrementTotalFailedZKCalls();<a name="line.91"></a>
-<span class="sourceLineNo">092</span>  }<a name="line.92"></a>
-<span class="sourceLineNo">093</span><a name="line.93"></a>
-<span class="sourceLineNo">094</span>  @Override<a name="line.94"></a>
-<span class="sourceLineNo">095</span>  public void registerReadOperationLatency(long latency) {<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    source.recordReadOperationLatency(latency);<a name="line.96"></a>
-<span class="sourceLineNo">097</span>  }<a name="line.97"></a>
-<span class="sourceLineNo">098</span><a name="line.98"></a>
-<span class="sourceLineNo">099</span>  @Override<a name="line.99"></a>
-<span class="sourceLineNo">100</span>  public void registerWriteOperationLatency(long latency) {<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    source.recordWriteOperationLatency(latency);<a name="line.101"></a>
-<span class="sourceLineNo">102</span>  }<a name="line.102"></a>
-<span class="sourceLineNo">103</span><a name="line.103"></a>
-<span class="sourceLineNo">104</span>  @Override<a name="line.104"></a>
-<span class="sourceLineNo">105</span>  public void registerSyncOperationLatency(long latency) {<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    source.recordSyncOperationLatency(latency);<a name="line.106"></a>
-<span class="sourceLineNo">107</span>  }<a name="line.107"></a>
-<span class="sourceLineNo">108</span>}<a name="line.108"></a>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</pre>
-</div>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/src-html/org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html b/devapidocs/src-html/org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html
deleted file mode 100644
index a0efc7f..0000000
--- a/devapidocs/src-html/org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html
+++ /dev/null
@@ -1,163 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html lang="en">
-<head>
-<title>Source code</title>
-<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
-</head>
-<body>
-<div class="sourceContainer">
-<pre><span class="sourceLineNo">001</span>/*<a name="line.1"></a>
-<span class="sourceLineNo">002</span> *<a name="line.2"></a>
-<span class="sourceLineNo">003</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.3"></a>
-<span class="sourceLineNo">004</span> * or more contributor license agreements.  See the NOTICE file<a name="line.4"></a>
-<span class="sourceLineNo">005</span> * distributed with this work for additional information<a name="line.5"></a>
-<span class="sourceLineNo">006</span> * regarding copyright ownership.  The ASF licenses this file<a name="line.6"></a>
-<span class="sourceLineNo">007</span> * to you under the Apache License, Version 2.0 (the<a name="line.7"></a>
-<span class="sourceLineNo">008</span> * "License"); you may not use this file except in compliance<a name="line.8"></a>
-<span class="sourceLineNo">009</span> * with the License.  You may obtain a copy of the License at<a name="line.9"></a>
-<span class="sourceLineNo">010</span> *<a name="line.10"></a>
-<span class="sourceLineNo">011</span> *     http://www.apache.org/licenses/LICENSE-2.0<a name="line.11"></a>
-<span class="sourceLineNo">012</span> *<a name="line.12"></a>
-<span class="sourceLineNo">013</span> * Unless required by applicable law or agreed to in writing, software<a name="line.13"></a>
-<span class="sourceLineNo">014</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.14"></a>
-<span class="sourceLineNo">015</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.15"></a>
-<span class="sourceLineNo">016</span> * See the License for the specific language governing permissions and<a name="line.16"></a>
-<span class="sourceLineNo">017</span> * limitations under the License.<a name="line.17"></a>
-<span class="sourceLineNo">018</span> */<a name="line.18"></a>
-<span class="sourceLineNo">019</span><a name="line.19"></a>
-<span class="sourceLineNo">020</span>package org.apache.hadoop.hbase.zookeeper;<a name="line.20"></a>
-<span class="sourceLineNo">021</span><a name="line.21"></a>
-<span class="sourceLineNo">022</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.22"></a>
-<span class="sourceLineNo">023</span><a name="line.23"></a>
-<span class="sourceLineNo">024</span>@InterfaceAudience.Private<a name="line.24"></a>
-<span class="sourceLineNo">025</span>public interface ZKMetricsListener {<a name="line.25"></a>
-<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>   * An AUTHFAILED Exception was seen.<a name="line.28"></a>
-<span class="sourceLineNo">029</span>   */<a name="line.29"></a>
-<span class="sourceLineNo">030</span>  void registerAuthFailedException();<a name="line.30"></a>
-<span class="sourceLineNo">031</span><a name="line.31"></a>
-<span class="sourceLineNo">032</span>  /**<a name="line.32"></a>
-<span class="sourceLineNo">033</span>   * A CONNECTIONLOSS Exception was seen.<a name="line.33"></a>
-<span class="sourceLineNo">034</span>   */<a name="line.34"></a>
-<span class="sourceLineNo">035</span>  void registerConnectionLossException();<a name="line.35"></a>
-<span class="sourceLineNo">036</span><a name="line.36"></a>
-<span class="sourceLineNo">037</span>  /**<a name="line.37"></a>
-<span class="sourceLineNo">038</span>   * A DATAINCONSISTENCY Exception was seen.<a name="line.38"></a>
-<span class="sourceLineNo">039</span>   */<a name="line.39"></a>
-<span class="sourceLineNo">040</span>  void registerDataInconsistencyException();<a name="line.40"></a>
-<span class="sourceLineNo">041</span><a name="line.41"></a>
-<span class="sourceLineNo">042</span>  /**<a name="line.42"></a>
-<span class="sourceLineNo">043</span>   * An INVALIDACL Exception was seen.<a name="line.43"></a>
-<span class="sourceLineNo">044</span>   */<a name="line.44"></a>
-<span class="sourceLineNo">045</span>  void registerInvalidACLException();<a name="line.45"></a>
-<span class="sourceLineNo">046</span><a name="line.46"></a>
-<span class="sourceLineNo">047</span>  /**<a name="line.47"></a>
-<span class="sourceLineNo">048</span>   * A NOAUTH Exception was seen.<a name="line.48"></a>
-<span class="sourceLineNo">049</span>   */<a name="line.49"></a>
-<span class="sourceLineNo">050</span>  void registerNoAuthException();<a name="line.50"></a>
-<span class="sourceLineNo">051</span><a name="line.51"></a>
-<span class="sourceLineNo">052</span>  /**<a name="line.52"></a>
-<span class="sourceLineNo">053</span>   * A OPERATIONTIMEOUT Exception was seen.<a name="line.53"></a>
-<span class="sourceLineNo">054</span>   */<a name="line.54"></a>
-<span class="sourceLineNo">055</span>  void registerOperationTimeoutException();<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>   * A RUNTIMEINCONSISTENCY Exception was seen.<a name="line.58"></a>
-<span class="sourceLineNo">059</span>   */<a name="line.59"></a>
-<span class="sourceLineNo">060</span>  void registerRuntimeInconsistencyException();<a name="line.60"></a>
-<span class="sourceLineNo">061</span><a name="line.61"></a>
-<span class="sourceLineNo">062</span>  /**<a name="line.62"></a>
-<span class="sourceLineNo">063</span>   * A SESSIONEXPIRED Exception was seen.<a name="line.63"></a>
-<span class="sourceLineNo">064</span>   */<a name="line.64"></a>
-<span class="sourceLineNo">065</span>  void registerSessionExpiredException();<a name="line.65"></a>
-<span class="sourceLineNo">066</span><a name="line.66"></a>
-<span class="sourceLineNo">067</span>  /**<a name="line.67"></a>
-<span class="sourceLineNo">068</span>   * A SYSTEMERROR Exception was seen.<a name="line.68"></a>
-<span class="sourceLineNo">069</span>   */<a name="line.69"></a>
-<span class="sourceLineNo">070</span>  void registerSystemErrorException();<a name="line.70"></a>
-<span class="sourceLineNo">071</span><a name="line.71"></a>
-<span class="sourceLineNo">072</span>  /**<a name="line.72"></a>
-<span class="sourceLineNo">073</span>   * A ZooKeeper API Call failed.<a name="line.73"></a>
-<span class="sourceLineNo">074</span>   */<a name="line.74"></a>
-<span class="sourceLineNo">075</span>  void registerFailedZKCall();<a name="line.75"></a>
-<span class="sourceLineNo">076</span><a name="line.76"></a>
-<span class="sourceLineNo">077</span>  /**<a name="line.77"></a>
-<span class="sourceLineNo">078</span>   * Register the latency incurred for read operations.<a name="line.78"></a>
-<span class="sourceLineNo">079</span>   */<a name="line.79"></a>
-<span class="sourceLineNo">080</span>  void registerReadOperationLatency(long latency);<a name="line.80"></a>
-<span class="sourceLineNo">081</span><a name="line.81"></a>
-<span class="sourceLineNo">082</span>  /**<a name="line.82"></a>
-<span class="sourceLineNo">083</span>   * Register the latency incurred for write operations.<a name="line.83"></a>
-<span class="sourceLineNo">084</span>   */<a name="line.84"></a>
-<span class="sourceLineNo">085</span>  void registerWriteOperationLatency(long latency);<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>   * Register the latency incurred for sync operations.<a name="line.88"></a>
-<span class="sourceLineNo">089</span>   */<a name="line.89"></a>
-<span class="sourceLineNo">090</span>  void registerSyncOperationLatency(long latency);<a name="line.90"></a>
-<span class="sourceLineNo">091</span>}<a name="line.91"></a>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</pre>
-</div>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/export_control.html
----------------------------------------------------------------------
diff --git a/export_control.html b/export_control.html
index 694aab1..296f6fc 100644
--- a/export_control.html
+++ b/export_control.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Export Control
@@ -336,7 +336,7 @@ for more details.</p>
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-annotations/checkstyle.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/checkstyle.html b/hbase-annotations/checkstyle.html
index 885f346..c6d6231 100644
--- a/hbase-annotations/checkstyle.html
+++ b/hbase-annotations/checkstyle.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Checkstyle Results</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -150,7 +150,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-annotations/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/dependencies.html b/hbase-annotations/dependencies.html
index 0c6a0c3..50e7e89 100644
--- a/hbase-annotations/dependencies.html
+++ b/hbase-annotations/dependencies.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -272,7 +272,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-annotations/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/dependency-convergence.html b/hbase-annotations/dependency-convergence.html
index 914add2..53c794b 100644
--- a/hbase-annotations/dependency-convergence.html
+++ b/hbase-annotations/dependency-convergence.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -912,7 +912,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-annotations/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/dependency-info.html b/hbase-annotations/dependency-info.html
index c8a4fe4..1e58c0d 100644
--- a/hbase-annotations/dependency-info.html
+++ b/hbase-annotations/dependency-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -147,7 +147,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-annotations/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/dependency-management.html b/hbase-annotations/dependency-management.html
index d698048..6984c32 100644
--- a/hbase-annotations/dependency-management.html
+++ b/hbase-annotations/dependency-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -810,7 +810,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-annotations/index.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/index.html b/hbase-annotations/index.html
index 67cd532..c4081d1 100644
--- a/hbase-annotations/index.html
+++ b/hbase-annotations/index.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; About</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -119,7 +119,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-annotations/integration.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/integration.html b/hbase-annotations/integration.html
index f8cea79..2d1c8d7 100644
--- a/hbase-annotations/integration.html
+++ b/hbase-annotations/integration.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -126,7 +126,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-annotations/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/issue-tracking.html b/hbase-annotations/issue-tracking.html
index f39d25d..73e5af2 100644
--- a/hbase-annotations/issue-tracking.html
+++ b/hbase-annotations/issue-tracking.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-annotations/license.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/license.html b/hbase-annotations/license.html
index 1db57be..7c1a122 100644
--- a/hbase-annotations/license.html
+++ b/hbase-annotations/license.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -326,7 +326,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-annotations/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/mail-lists.html b/hbase-annotations/mail-lists.html
index 1648d07..7e30e38 100644
--- a/hbase-annotations/mail-lists.html
+++ b/hbase-annotations/mail-lists.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -176,7 +176,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-annotations/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/plugin-management.html b/hbase-annotations/plugin-management.html
index e837350..08beb18 100644
--- a/hbase-annotations/plugin-management.html
+++ b/hbase-annotations/plugin-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -271,7 +271,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-annotations/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/plugins.html b/hbase-annotations/plugins.html
index 758170d..4dce1b2 100644
--- a/hbase-annotations/plugins.html
+++ b/hbase-annotations/plugins.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -222,7 +222,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-annotations/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/project-info.html b/hbase-annotations/project-info.html
index b94d4f8..0c77880 100644
--- a/hbase-annotations/project-info.html
+++ b/hbase-annotations/project-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -167,7 +167,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-annotations/project-reports.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/project-reports.html b/hbase-annotations/project-reports.html
index 315b6ac..d0499d9 100644
--- a/hbase-annotations/project-reports.html
+++ b/hbase-annotations/project-reports.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Generated Reports</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -128,7 +128,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-annotations/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/project-summary.html b/hbase-annotations/project-summary.html
index df471f6..f186ef8 100644
--- a/hbase-annotations/project-summary.html
+++ b/hbase-annotations/project-summary.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -166,7 +166,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-annotations/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/source-repository.html b/hbase-annotations/source-repository.html
index 1d4a7b3..34ebae8 100644
--- a/hbase-annotations/source-repository.html
+++ b/hbase-annotations/source-repository.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -134,7 +134,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-annotations/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/team-list.html b/hbase-annotations/team-list.html
index 2b03485..1432b70 100644
--- a/hbase-annotations/team-list.html
+++ b/hbase-annotations/team-list.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -553,7 +553,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/dependencies.html b/hbase-build-configuration/dependencies.html
index 5225670..032af07 100644
--- a/hbase-build-configuration/dependencies.html
+++ b/hbase-build-configuration/dependencies.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -330,7 +330,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/dependency-convergence.html b/hbase-build-configuration/dependency-convergence.html
index 98b2bae..655142a 100644
--- a/hbase-build-configuration/dependency-convergence.html
+++ b/hbase-build-configuration/dependency-convergence.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -912,7 +912,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/dependency-info.html b/hbase-build-configuration/dependency-info.html
index c1dde18..2be76e1 100644
--- a/hbase-build-configuration/dependency-info.html
+++ b/hbase-build-configuration/dependency-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -148,7 +148,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/dependency-management.html b/hbase-build-configuration/dependency-management.html
index f50a4e4..9ecf460 100644
--- a/hbase-build-configuration/dependency-management.html
+++ b/hbase-build-configuration/dependency-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -810,7 +810,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/dependencies.html b/hbase-build-configuration/hbase-archetypes/dependencies.html
index fdc8dab..82917a3 100644
--- a/hbase-build-configuration/hbase-archetypes/dependencies.html
+++ b/hbase-build-configuration/hbase-archetypes/dependencies.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -330,7 +330,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/dependency-convergence.html b/hbase-build-configuration/hbase-archetypes/dependency-convergence.html
index 6246bbd..705ee58 100644
--- a/hbase-build-configuration/hbase-archetypes/dependency-convergence.html
+++ b/hbase-build-configuration/hbase-archetypes/dependency-convergence.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -912,7 +912,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/dependency-info.html b/hbase-build-configuration/hbase-archetypes/dependency-info.html
index f6bbb2d..41d28cb 100644
--- a/hbase-build-configuration/hbase-archetypes/dependency-info.html
+++ b/hbase-build-configuration/hbase-archetypes/dependency-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -148,7 +148,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/dependency-management.html b/hbase-build-configuration/hbase-archetypes/dependency-management.html
index a22e08a..ad6f6306 100644
--- a/hbase-build-configuration/hbase-archetypes/dependency-management.html
+++ b/hbase-build-configuration/hbase-archetypes/dependency-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -810,7 +810,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependencies.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependencies.html
index 40b71c1..19539fd 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependencies.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependencies.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -330,7 +330,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-convergence.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-convergence.html
index 7270299..d994342 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-convergence.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-convergence.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -912,7 +912,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-info.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-info.html
index a7f9deb..dd8bd29 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-info.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -148,7 +148,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-management.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-management.html
index 9a81b2c..e520d07 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-management.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -810,7 +810,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/index.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/index.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/index.html
index 538c985..3d1b393 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/index.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/index.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; About</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -119,7 +119,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/integration.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/integration.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/integration.html
index a1bf8bd..8b820d4 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/integration.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/integration.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -126,7 +126,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/issue-tracking.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/issue-tracking.html
index 6fc9d9f..881b6ef 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/issue-tracking.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/issue-tracking.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/license.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/license.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/license.html
index 8e38a0d..2c24b78 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/license.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/license.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -326,7 +326,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/mail-lists.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/mail-lists.html
index 170eddb..020baa4 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/mail-lists.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/mail-lists.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -176,7 +176,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugin-management.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugin-management.html
index eca8e13..1bc1673 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugin-management.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugin-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -271,7 +271,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugins.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugins.html
index e11ea9b..ab9b2f8 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugins.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugins.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -218,7 +218,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-info.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-info.html
index 369db45..d06d216 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-info.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -167,7 +167,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-summary.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-summary.html
index 487c83f..1f24372 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-summary.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-summary.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -163,7 +163,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/source-repository.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/source-repository.html
index a05a3c3..adbcaef 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/source-repository.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/source-repository.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -134,7 +134,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/team-list.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/team-list.html
index 6901061..0b71eba 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/team-list.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/team-list.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -553,7 +553,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-client-project/checkstyle.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/checkstyle.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/checkstyle.html
index c04707c..a338f5d 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/checkstyle.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/checkstyle.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Checkstyle Results</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -150,7 +150,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependencies.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependencies.html
index e0a42d3..3ea4cf9 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependencies.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependencies.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -3645,7 +3645,7 @@ The following provides more details on the included cryptographic software:
 <td>No</td></tr>
 <tr class="a">
 <td>hbase-zookeeper-3.0.0-SNAPSHOT-tests.jar</td>
-<td>59.7 kB</td>
+<td>58.2 kB</td>
 <td>-</td>
 <td>-</td>
 <td>-</td>
@@ -4149,7 +4149,7 @@ The following provides more details on the included cryptographic software:
 <td>compile: 1</td></tr>
 <tr class="a">
 <td>test: 71</td>
-<td>test: 42 MB</td>
+<td>test: 41.9 MB</td>
 <td>test: 14179</td>
 <td>test: 12950</td>
 <td>test: 516</td>
@@ -4168,7 +4168,7 @@ The following provides more details on the included cryptographic software:
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-convergence.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-convergence.html
index f55c3a6..9003a7b 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-convergence.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-convergence.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -912,7 +912,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-info.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-info.html
index 692a5be..7eeab01 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-info.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -147,7 +147,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-management.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-management.html
index 04acfbe..c51ef8c 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-management.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -810,7 +810,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-client-project/index.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/index.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/index.html
index 9d5eee1..9286cc1 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/index.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/index.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; About</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -119,7 +119,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-client-project/integration.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/integration.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/integration.html
index 3b2cf47..fc2cd1b 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/integration.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/integration.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -126,7 +126,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-client-project/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/issue-tracking.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/issue-tracking.html
index 2164442..a595244 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/issue-tracking.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/issue-tracking.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-client-project/license.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/license.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/license.html
index 8e07ca2..cfae274 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/license.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/license.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -326,7 +326,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/TableBackupClient.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/TableBackupClient.html b/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/TableBackupClient.html
index 8479197..add44d1 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/TableBackupClient.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/TableBackupClient.html
@@ -77,293 +77,293 @@
 <span class="sourceLineNo">069</span><a name="line.69"></a>
 <span class="sourceLineNo">070</span>  protected BackupManager backupManager;<a name="line.70"></a>
 <span class="sourceLineNo">071</span>  protected BackupInfo backupInfo;<a name="line.71"></a>
-<span class="sourceLineNo">072</span><a name="line.72"></a>
-<span class="sourceLineNo">073</span>  public TableBackupClient() {<a name="line.73"></a>
-<span class="sourceLineNo">074</span>  }<a name="line.74"></a>
-<span class="sourceLineNo">075</span><a name="line.75"></a>
-<span class="sourceLineNo">076</span>  public TableBackupClient(final Connection conn, final String backupId, BackupRequest request)<a name="line.76"></a>
-<span class="sourceLineNo">077</span>      throws IOException {<a name="line.77"></a>
-<span class="sourceLineNo">078</span>    init(conn, backupId, request);<a name="line.78"></a>
-<span class="sourceLineNo">079</span>  }<a name="line.79"></a>
-<span class="sourceLineNo">080</span><a name="line.80"></a>
-<span class="sourceLineNo">081</span>  public void init(final Connection conn, final String backupId, BackupRequest request)<a name="line.81"></a>
-<span class="sourceLineNo">082</span>      throws IOException<a name="line.82"></a>
-<span class="sourceLineNo">083</span>  {<a name="line.83"></a>
-<span class="sourceLineNo">084</span>    if (request.getBackupType() == BackupType.FULL) {<a name="line.84"></a>
-<span class="sourceLineNo">085</span>      backupManager = new BackupManager(conn, conn.getConfiguration());<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    } else {<a name="line.86"></a>
-<span class="sourceLineNo">087</span>      backupManager = new IncrementalBackupManager(conn, conn.getConfiguration());<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    }<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    this.backupId = backupId;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    this.tableList = request.getTableList();<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    this.conn = conn;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    this.conf = conn.getConfiguration();<a name="line.92"></a>
-<span class="sourceLineNo">093</span>    backupInfo =<a name="line.93"></a>
-<span class="sourceLineNo">094</span>        backupManager.createBackupInfo(backupId, request.getBackupType(), tableList,<a name="line.94"></a>
-<span class="sourceLineNo">095</span>          request.getTargetRootDir(), request.getTotalTasks(), request.getBandwidth());<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    if (tableList == null || tableList.isEmpty()) {<a name="line.96"></a>
-<span class="sourceLineNo">097</span>      this.tableList = new ArrayList&lt;&gt;(backupInfo.getTables());<a name="line.97"></a>
-<span class="sourceLineNo">098</span>    }<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    // Start new session<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    backupManager.startBackupSession();<a name="line.100"></a>
-<span class="sourceLineNo">101</span>  }<a name="line.101"></a>
-<span class="sourceLineNo">102</span><a name="line.102"></a>
-<span class="sourceLineNo">103</span>  /**<a name="line.103"></a>
-<span class="sourceLineNo">104</span>   * Begin the overall backup.<a name="line.104"></a>
-<span class="sourceLineNo">105</span>   * @param backupInfo backup info<a name="line.105"></a>
-<span class="sourceLineNo">106</span>   * @throws IOException exception<a name="line.106"></a>
-<span class="sourceLineNo">107</span>   */<a name="line.107"></a>
-<span class="sourceLineNo">108</span>  protected void beginBackup(BackupManager backupManager, BackupInfo backupInfo)<a name="line.108"></a>
-<span class="sourceLineNo">109</span>      throws IOException {<a name="line.109"></a>
-<span class="sourceLineNo">110</span><a name="line.110"></a>
-<span class="sourceLineNo">111</span>    BackupSystemTable.snapshot(conn);<a name="line.111"></a>
-<span class="sourceLineNo">112</span>    backupManager.setBackupInfo(backupInfo);<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    // set the start timestamp of the overall backup<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    long startTs = EnvironmentEdgeManager.currentTime();<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    backupInfo.setStartTs(startTs);<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    // set overall backup status: ongoing<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    backupInfo.setState(BackupState.RUNNING);<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    backupInfo.setPhase(BackupPhase.REQUEST);<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    LOG.info("Backup " + backupInfo.getBackupId() + " started at " + startTs + ".");<a name="line.119"></a>
-<span class="sourceLineNo">120</span><a name="line.120"></a>
-<span class="sourceLineNo">121</span>    backupManager.updateBackupInfo(backupInfo);<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    if (LOG.isDebugEnabled()) {<a name="line.122"></a>
-<span class="sourceLineNo">123</span>      LOG.debug("Backup session " + backupInfo.getBackupId() + " has been started.");<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    }<a name="line.124"></a>
-<span class="sourceLineNo">125</span>  }<a name="line.125"></a>
-<span class="sourceLineNo">126</span><a name="line.126"></a>
-<span class="sourceLineNo">127</span>  protected String getMessage(Exception e) {<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    String msg = e.getMessage();<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    if (msg == null || msg.equals("")) {<a name="line.129"></a>
-<span class="sourceLineNo">130</span>      msg = e.getClass().getName();<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    }<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    return msg;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>  }<a name="line.133"></a>
-<span class="sourceLineNo">134</span><a name="line.134"></a>
-<span class="sourceLineNo">135</span>  /**<a name="line.135"></a>
-<span class="sourceLineNo">136</span>   * Delete HBase snapshot for backup.<a name="line.136"></a>
-<span class="sourceLineNo">137</span>   * @param backupInfo backup info<a name="line.137"></a>
-<span class="sourceLineNo">138</span>   * @throws Exception exception<a name="line.138"></a>
-<span class="sourceLineNo">139</span>   */<a name="line.139"></a>
-<span class="sourceLineNo">140</span>  protected static void deleteSnapshots(final Connection conn, BackupInfo backupInfo, Configuration conf)<a name="line.140"></a>
-<span class="sourceLineNo">141</span>      throws IOException {<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    LOG.debug("Trying to delete snapshot for full backup.");<a name="line.142"></a>
-<span class="sourceLineNo">143</span>    for (String snapshotName : backupInfo.getSnapshotNames()) {<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      if (snapshotName == null) {<a name="line.144"></a>
-<span class="sourceLineNo">145</span>        continue;<a name="line.145"></a>
-<span class="sourceLineNo">146</span>      }<a name="line.146"></a>
-<span class="sourceLineNo">147</span>      LOG.debug("Trying to delete snapshot: " + snapshotName);<a name="line.147"></a>
-<span class="sourceLineNo">148</span><a name="line.148"></a>
-<span class="sourceLineNo">149</span>      try (Admin admin = conn.getAdmin()) {<a name="line.149"></a>
-<span class="sourceLineNo">150</span>        admin.deleteSnapshot(snapshotName);<a name="line.150"></a>
-<span class="sourceLineNo">151</span>      }<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      LOG.debug("Deleting the snapshot " + snapshotName + " for backup " + backupInfo.getBackupId()<a name="line.152"></a>
-<span class="sourceLineNo">153</span>          + " succeeded.");<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    }<a name="line.154"></a>
-<span class="sourceLineNo">155</span>  }<a name="line.155"></a>
-<span class="sourceLineNo">156</span><a name="line.156"></a>
-<span class="sourceLineNo">157</span>  /**<a name="line.157"></a>
-<span class="sourceLineNo">158</span>   * Clean up directories with prefix "exportSnapshot-", which are generated when exporting<a name="line.158"></a>
-<span class="sourceLineNo">159</span>   * snapshots.<a name="line.159"></a>
-<span class="sourceLineNo">160</span>   * @throws IOException exception<a name="line.160"></a>
-<span class="sourceLineNo">161</span>   */<a name="line.161"></a>
-<span class="sourceLineNo">162</span>  protected static void cleanupExportSnapshotLog(Configuration conf) throws IOException {<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    FileSystem fs = FSUtils.getCurrentFileSystem(conf);<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    Path stagingDir =<a name="line.164"></a>
-<span class="sourceLineNo">165</span>        new Path(conf.get(BackupRestoreConstants.CONF_STAGING_ROOT, fs.getWorkingDirectory()<a name="line.165"></a>
-<span class="sourceLineNo">166</span>            .toString()));<a name="line.166"></a>
-<span class="sourceLineNo">167</span>    FileStatus[] files = FSUtils.listStatus(fs, stagingDir);<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    if (files == null) {<a name="line.168"></a>
-<span class="sourceLineNo">169</span>      return;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    }<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    for (FileStatus file : files) {<a name="line.171"></a>
-<span class="sourceLineNo">172</span>      if (file.getPath().getName().startsWith("exportSnapshot-")) {<a name="line.172"></a>
-<span class="sourceLineNo">173</span>        LOG.debug("Delete log files of exporting snapshot: " + file.getPath().getName());<a name="line.173"></a>
-<span class="sourceLineNo">174</span>        if (FSUtils.delete(fs, file.getPath(), true) == false) {<a name="line.174"></a>
-<span class="sourceLineNo">175</span>          LOG.warn("Can not delete " + file.getPath());<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>    }<a name="line.178"></a>
-<span class="sourceLineNo">179</span>  }<a name="line.179"></a>
-<span class="sourceLineNo">180</span><a name="line.180"></a>
-<span class="sourceLineNo">181</span>  /**<a name="line.181"></a>
-<span class="sourceLineNo">182</span>   * Clean up the uncompleted data at target directory if the ongoing backup has already entered<a name="line.182"></a>
-<span class="sourceLineNo">183</span>   * the copy phase.<a name="line.183"></a>
-<span class="sourceLineNo">184</span>   */<a name="line.184"></a>
-<span class="sourceLineNo">185</span>  protected static void cleanupTargetDir(BackupInfo backupInfo, Configuration conf) {<a name="line.185"></a>
-<span class="sourceLineNo">186</span>    try {<a name="line.186"></a>
-<span class="sourceLineNo">187</span>      // clean up the uncompleted data at target directory if the ongoing backup has already entered<a name="line.187"></a>
-<span class="sourceLineNo">188</span>      // the copy phase<a name="line.188"></a>
-<span class="sourceLineNo">189</span>      LOG.debug("Trying to cleanup up target dir. Current backup phase: "<a name="line.189"></a>
-<span class="sourceLineNo">190</span>          + backupInfo.getPhase());<a name="line.190"></a>
-<span class="sourceLineNo">191</span>      if (backupInfo.getPhase().equals(BackupPhase.SNAPSHOTCOPY)<a name="line.191"></a>
-<span class="sourceLineNo">192</span>          || backupInfo.getPhase().equals(BackupPhase.INCREMENTAL_COPY)<a name="line.192"></a>
-<span class="sourceLineNo">193</span>          || backupInfo.getPhase().equals(BackupPhase.STORE_MANIFEST)) {<a name="line.193"></a>
-<span class="sourceLineNo">194</span>        FileSystem outputFs =<a name="line.194"></a>
-<span class="sourceLineNo">195</span>            FileSystem.get(new Path(backupInfo.getBackupRootDir()).toUri(), conf);<a name="line.195"></a>
-<span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span>        // now treat one backup as a transaction, clean up data that has been partially copied at<a name="line.197"></a>
-<span class="sourceLineNo">198</span>        // table level<a name="line.198"></a>
-<span class="sourceLineNo">199</span>        for (TableName table : backupInfo.getTables()) {<a name="line.199"></a>
-<span class="sourceLineNo">200</span>          Path targetDirPath =<a name="line.200"></a>
-<span class="sourceLineNo">201</span>              new Path(HBackupFileSystem.getTableBackupDir(backupInfo.getBackupRootDir(),<a name="line.201"></a>
-<span class="sourceLineNo">202</span>                backupInfo.getBackupId(), table));<a name="line.202"></a>
-<span class="sourceLineNo">203</span>          if (outputFs.delete(targetDirPath, true)) {<a name="line.203"></a>
-<span class="sourceLineNo">204</span>            LOG.debug("Cleaning up uncompleted backup data at " + targetDirPath.toString()<a name="line.204"></a>
-<span class="sourceLineNo">205</span>                + " done.");<a name="line.205"></a>
-<span class="sourceLineNo">206</span>          } else {<a name="line.206"></a>
-<span class="sourceLineNo">207</span>            LOG.debug("No data has been copied to " + targetDirPath.toString() + ".");<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>          Path tableDir = targetDirPath.getParent();<a name="line.210"></a>
-<span class="sourceLineNo">211</span>          FileStatus[] backups = FSUtils.listStatus(outputFs, tableDir);<a name="line.211"></a>
-<span class="sourceLineNo">212</span>          if (backups == null || backups.length == 0) {<a name="line.212"></a>
-<span class="sourceLineNo">213</span>            outputFs.delete(tableDir, true);<a name="line.213"></a>
-<span class="sourceLineNo">214</span>            LOG.debug(tableDir.toString() + " is empty, remove it.");<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>      }<a name="line.217"></a>
-<span class="sourceLineNo">218</span><a name="line.218"></a>
-<span class="sourceLineNo">219</span>    } catch (IOException e1) {<a name="line.219"></a>
-<span class="sourceLineNo">220</span>      LOG.error("Cleaning up uncompleted backup data of " + backupInfo.getBackupId() + " at "<a name="line.220"></a>
-<span class="sourceLineNo">221</span>          + backupInfo.getBackupRootDir() + " failed due to " + e1.getMessage() + ".");<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    }<a name="line.222"></a>
-<span class="sourceLineNo">223</span>  }<a name="line.223"></a>
-<span class="sourceLineNo">224</span><a name="line.224"></a>
-<span class="sourceLineNo">225</span>  /**<a name="line.225"></a>
-<span class="sourceLineNo">226</span>   * Fail the overall backup.<a name="line.226"></a>
-<span class="sourceLineNo">227</span>   * @param backupInfo backup info<a name="line.227"></a>
-<span class="sourceLineNo">228</span>   * @param e exception<a name="line.228"></a>
-<span class="sourceLineNo">229</span>   * @throws Exception exception<a name="line.229"></a>
-<span class="sourceLineNo">230</span>   */<a name="line.230"></a>
-<span class="sourceLineNo">231</span>  protected void failBackup(Connection conn, BackupInfo backupInfo, BackupManager backupManager,<a name="line.231"></a>
-<span class="sourceLineNo">232</span>      Exception e, String msg, BackupType type, Configuration conf) throws IOException {<a name="line.232"></a>
-<span class="sourceLineNo">233</span><a name="line.233"></a>
-<span class="sourceLineNo">234</span>    try {<a name="line.234"></a>
-<span class="sourceLineNo">235</span>      LOG.error(msg + getMessage(e), e);<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      // If this is a cancel exception, then we've already cleaned.<a name="line.236"></a>
-<span class="sourceLineNo">237</span>      // set the failure timestamp of the overall backup<a name="line.237"></a>
-<span class="sourceLineNo">238</span>      backupInfo.setCompleteTs(EnvironmentEdgeManager.currentTime());<a name="line.238"></a>
-<span class="sourceLineNo">239</span>      // set failure message<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      backupInfo.setFailedMsg(e.getMessage());<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      // set overall backup status: failed<a name="line.241"></a>
-<span class="sourceLineNo">242</span>      backupInfo.setState(BackupState.FAILED);<a name="line.242"></a>
-<span class="sourceLineNo">243</span>      // compose the backup failed data<a name="line.243"></a>
-<span class="sourceLineNo">244</span>      String backupFailedData =<a name="line.244"></a>
-<span class="sourceLineNo">245</span>          "BackupId=" + backupInfo.getBackupId() + ",startts=" + backupInfo.getStartTs()<a name="line.245"></a>
-<span class="sourceLineNo">246</span>              + ",failedts=" + backupInfo.getCompleteTs() + ",failedphase=" + backupInfo.getPhase()<a name="line.246"></a>
-<span class="sourceLineNo">247</span>              + ",failedmessage=" + backupInfo.getFailedMsg();<a name="line.247"></a>
-<span class="sourceLineNo">248</span>      LOG.error(backupFailedData);<a name="line.248"></a>
-<span class="sourceLineNo">249</span>      cleanupAndRestoreBackupSystem(conn, backupInfo, conf);<a name="line.249"></a>
-<span class="sourceLineNo">250</span>      // If backup session is updated to FAILED state - means we<a name="line.250"></a>
-<span class="sourceLineNo">251</span>      // processed recovery already.<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      backupManager.updateBackupInfo(backupInfo);<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      backupManager.finishBackupSession();<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      LOG.error("Backup " + backupInfo.getBackupId() + " failed.");<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    } catch (IOException ee) {<a name="line.255"></a>
-<span class="sourceLineNo">256</span>      LOG.error("Please run backup repair tool manually to restore backup system integrity");<a name="line.256"></a>
-<span class="sourceLineNo">257</span>      throw ee;<a name="line.257"></a>
-<span class="sourceLineNo">258</span>    }<a name="line.258"></a>
-<span class="sourceLineNo">259</span>  }<a name="line.259"></a>
-<span class="sourceLineNo">260</span><a name="line.260"></a>
-<span class="sourceLineNo">261</span>  public static void cleanupAndRestoreBackupSystem (Connection conn, BackupInfo backupInfo,<a name="line.261"></a>
-<span class="sourceLineNo">262</span>      Configuration conf) throws IOException<a name="line.262"></a>
-<span class="sourceLineNo">263</span>  {<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    BackupType type = backupInfo.getType();<a name="line.264"></a>
-<span class="sourceLineNo">265</span>     // if full backup, then delete HBase snapshots if there already are snapshots taken<a name="line.265"></a>
-<span class="sourceLineNo">266</span>     // and also clean up export snapshot log files if exist<a name="line.266"></a>
-<span class="sourceLineNo">267</span>     if (type == BackupType.FULL) {<a name="line.267"></a>
-<span class="sourceLineNo">268</span>       deleteSnapshots(conn, backupInfo, conf);<a name="line.268"></a>
-<span class="sourceLineNo">269</span>       cleanupExportSnapshotLog(conf);<a name="line.269"></a>
-<span class="sourceLineNo">270</span>     }<a name="line.270"></a>
-<span class="sourceLineNo">271</span>     BackupSystemTable.restoreFromSnapshot(conn);<a name="line.271"></a>
-<span class="sourceLineNo">272</span>     BackupSystemTable.deleteSnapshot(conn);<a name="line.272"></a>
-<span class="sourceLineNo">273</span>     // clean up the uncompleted data at target directory if the ongoing backup has already entered<a name="line.273"></a>
-<span class="sourceLineNo">274</span>     // the copy phase<a name="line.274"></a>
-<span class="sourceLineNo">275</span>     // For incremental backup, DistCp logs will be cleaned with the targetDir.<a name="line.275"></a>
-<span class="sourceLineNo">276</span>     cleanupTargetDir(backupInfo, conf);<a name="line.276"></a>
-<span class="sourceLineNo">277</span>  }<a name="line.277"></a>
-<span class="sourceLineNo">278</span><a name="line.278"></a>
+<span class="sourceLineNo">072</span>  protected FileSystem fs;<a name="line.72"></a>
+<span class="sourceLineNo">073</span><a name="line.73"></a>
+<span class="sourceLineNo">074</span>  public TableBackupClient() {<a name="line.74"></a>
+<span class="sourceLineNo">075</span>  }<a name="line.75"></a>
+<span class="sourceLineNo">076</span><a name="line.76"></a>
+<span class="sourceLineNo">077</span>  public TableBackupClient(final Connection conn, final String backupId, BackupRequest request)<a name="line.77"></a>
+<span class="sourceLineNo">078</span>      throws IOException {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>    init(conn, backupId, request);<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  }<a name="line.80"></a>
+<span class="sourceLineNo">081</span><a name="line.81"></a>
+<span class="sourceLineNo">082</span>  public void init(final Connection conn, final String backupId, BackupRequest request)<a name="line.82"></a>
+<span class="sourceLineNo">083</span>      throws IOException<a name="line.83"></a>
+<span class="sourceLineNo">084</span>  {<a name="line.84"></a>
+<span class="sourceLineNo">085</span>    if (request.getBackupType() == BackupType.FULL) {<a name="line.85"></a>
+<span class="sourceLineNo">086</span>      backupManager = new BackupManager(conn, conn.getConfiguration());<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    } else {<a name="line.87"></a>
+<span class="sourceLineNo">088</span>      backupManager = new IncrementalBackupManager(conn, conn.getConfiguration());<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    }<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    this.backupId = backupId;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    this.tableList = request.getTableList();<a name="line.91"></a>
+<span class="sourceLineNo">092</span>    this.conn = conn;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    this.conf = conn.getConfiguration();<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    this.fs = FSUtils.getCurrentFileSystem(conf);<a name="line.94"></a>
+<span class="sourceLineNo">095</span>    backupInfo =<a name="line.95"></a>
+<span class="sourceLineNo">096</span>        backupManager.createBackupInfo(backupId, request.getBackupType(), tableList,<a name="line.96"></a>
+<span class="sourceLineNo">097</span>          request.getTargetRootDir(), request.getTotalTasks(), request.getBandwidth());<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    if (tableList == null || tableList.isEmpty()) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>      this.tableList = new ArrayList&lt;&gt;(backupInfo.getTables());<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    }<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    // Start new session<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    backupManager.startBackupSession();<a name="line.102"></a>
+<span class="sourceLineNo">103</span>  }<a name="line.103"></a>
+<span class="sourceLineNo">104</span><a name="line.104"></a>
+<span class="sourceLineNo">105</span>  /**<a name="line.105"></a>
+<span class="sourceLineNo">106</span>   * Begin the overall backup.<a name="line.106"></a>
+<span class="sourceLineNo">107</span>   * @param backupInfo backup info<a name="line.107"></a>
+<span class="sourceLineNo">108</span>   * @throws IOException exception<a name="line.108"></a>
+<span class="sourceLineNo">109</span>   */<a name="line.109"></a>
+<span class="sourceLineNo">110</span>  protected void beginBackup(BackupManager backupManager, BackupInfo backupInfo)<a name="line.110"></a>
+<span class="sourceLineNo">111</span>      throws IOException {<a name="line.111"></a>
+<span class="sourceLineNo">112</span><a name="line.112"></a>
+<span class="sourceLineNo">113</span>    BackupSystemTable.snapshot(conn);<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    backupManager.setBackupInfo(backupInfo);<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    // set the start timestamp of the overall backup<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    long startTs = EnvironmentEdgeManager.currentTime();<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    backupInfo.setStartTs(startTs);<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    // set overall backup status: ongoing<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    backupInfo.setState(BackupState.RUNNING);<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    backupInfo.setPhase(BackupPhase.REQUEST);<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    LOG.info("Backup " + backupInfo.getBackupId() + " started at " + startTs + ".");<a name="line.121"></a>
+<span class="sourceLineNo">122</span><a name="line.122"></a>
+<span class="sourceLineNo">123</span>    backupManager.updateBackupInfo(backupInfo);<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    if (LOG.isDebugEnabled()) {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>      LOG.debug("Backup session " + backupInfo.getBackupId() + " has been started.");<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    }<a name="line.126"></a>
+<span class="sourceLineNo">127</span>  }<a name="line.127"></a>
+<span class="sourceLineNo">128</span><a name="line.128"></a>
+<span class="sourceLineNo">129</span>  protected String getMessage(Exception e) {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    String msg = e.getMessage();<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    if (msg == null || msg.equals("")) {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>      msg = e.getClass().getName();<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    }<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    return msg;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>  }<a name="line.135"></a>
+<span class="sourceLineNo">136</span><a name="line.136"></a>
+<span class="sourceLineNo">137</span>  /**<a name="line.137"></a>
+<span class="sourceLineNo">138</span>   * Delete HBase snapshot for backup.<a name="line.138"></a>
+<span class="sourceLineNo">139</span>   * @param backupInfo backup info<a name="line.139"></a>
+<span class="sourceLineNo">140</span>   * @throws Exception exception<a name="line.140"></a>
+<span class="sourceLineNo">141</span>   */<a name="line.141"></a>
+<span class="sourceLineNo">142</span>  protected static void deleteSnapshots(final Connection conn, BackupInfo backupInfo, Configuration conf)<a name="line.142"></a>
+<span class="sourceLineNo">143</span>      throws IOException {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    LOG.debug("Trying to delete snapshot for full backup.");<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    for (String snapshotName : backupInfo.getSnapshotNames()) {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>      if (snapshotName == null) {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>        continue;<a name="line.147"></a>
+<span class="sourceLineNo">148</span>      }<a name="line.148"></a>
+<span class="sourceLineNo">149</span>      LOG.debug("Trying to delete snapshot: " + snapshotName);<a name="line.149"></a>
+<span class="sourceLineNo">150</span><a name="line.150"></a>
+<span class="sourceLineNo">151</span>      try (Admin admin = conn.getAdmin()) {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>        admin.deleteSnapshot(snapshotName);<a name="line.152"></a>
+<span class="sourceLineNo">153</span>      }<a name="line.153"></a>
+<span class="sourceLineNo">154</span>      LOG.debug("Deleting the snapshot " + snapshotName + " for backup " + backupInfo.getBackupId()<a name="line.154"></a>
+<span class="sourceLineNo">155</span>          + " succeeded.");<a name="line.155"></a>
+<span class="sourceLineNo">156</span>    }<a name="line.156"></a>
+<span class="sourceLineNo">157</span>  }<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>  /**<a name="line.159"></a>
+<span class="sourceLineNo">160</span>   * Clean up directories with prefix "exportSnapshot-", which are generated when exporting<a name="line.160"></a>
+<span class="sourceLineNo">161</span>   * snapshots.<a name="line.161"></a>
+<span class="sourceLineNo">162</span>   * @throws IOException exception<a name="line.162"></a>
+<span class="sourceLineNo">163</span>   */<a name="line.163"></a>
+<span class="sourceLineNo">164</span>  protected static void cleanupExportSnapshotLog(Configuration conf) throws IOException {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    FileSystem fs = FSUtils.getCurrentFileSystem(conf);<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    Path stagingDir =<a name="line.166"></a>
+<span class="sourceLineNo">167</span>        new Path(conf.get(BackupRestoreConstants.CONF_STAGING_ROOT, fs.getWorkingDirectory()<a name="line.167"></a>
+<span class="sourceLineNo">168</span>            .toString()));<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    FileStatus[] files = FSUtils.listStatus(fs, stagingDir);<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    if (files == null) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>      return;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    }<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    for (FileStatus file : files) {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>      if (file.getPath().getName().startsWith("exportSnapshot-")) {<a name="line.174"></a>
+<span class="sourceLineNo">175</span>        LOG.debug("Delete log files of exporting snapshot: " + file.getPath().getName());<a name="line.175"></a>
+<span class="sourceLineNo">176</span>        if (FSUtils.delete(fs, file.getPath(), true) == false) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>          LOG.warn("Can not delete " + file.getPath());<a name="line.177"></a>
+<span class="sourceLineNo">178</span>        }<a name="line.178"></a>
+<span class="sourceLineNo">179</span>      }<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    }<a name="line.180"></a>
+<span class="sourceLineNo">181</span>  }<a name="line.181"></a>
+<span class="sourceLineNo">182</span><a name="line.182"></a>
+<span class="sourceLineNo">183</span>  /**<a name="line.183"></a>
+<span class="sourceLineNo">184</span>   * Clean up the uncompleted data at target directory if the ongoing backup has already entered<a name="line.184"></a>
+<span class="sourceLineNo">185</span>   * the copy phase.<a name="line.185"></a>
+<span class="sourceLineNo">186</span>   */<a name="line.186"></a>
+<span class="sourceLineNo">187</span>  protected static void cleanupTargetDir(BackupInfo backupInfo, Configuration conf) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>    try {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>      // clean up the uncompleted data at target directory if the ongoing backup has already entered<a name="line.189"></a>
+<span class="sourceLineNo">190</span>      // the copy phase<a name="line.190"></a>
+<span class="sourceLineNo">191</span>      LOG.debug("Trying to cleanup up target dir. Current backup phase: "<a name="line.191"></a>
+<span class="sourceLineNo">192</span>          + backupInfo.getPhase());<a name="line.192"></a>
+<span class="sourceLineNo">193</span>      if (backupInfo.getPhase().equals(BackupPhase.SNAPSHOTCOPY)<a name="line.193"></a>
+<span class="sourceLineNo">194</span>          || backupInfo.getPhase().equals(BackupPhase.INCREMENTAL_COPY)<a name="line.194"></a>
+<span class="sourceLineNo">195</span>          || backupInfo.getPhase().equals(BackupPhase.STORE_MANIFEST)) {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>        FileSystem outputFs =<a name="line.196"></a>
+<span class="sourceLineNo">197</span>            FileSystem.get(new Path(backupInfo.getBackupRootDir()).toUri(), conf);<a name="line.197"></a>
+<span class="sourceLineNo">198</span><a name="line.198"></a>
+<span class="sourceLineNo">199</span>        // now treat one backup as a transaction, clean up data that has been partially copied at<a name="line.199"></a>
+<span class="sourceLineNo">200</span>        // table level<a name="line.200"></a>
+<span class="sourceLineNo">201</span>        for (TableName table : backupInfo.getTables()) {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>          Path targetDirPath =<a name="line.202"></a>
+<span class="sourceLineNo">203</span>              new Path(HBackupFileSystem.getTableBackupDir(backupInfo.getBackupRootDir(),<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                backupInfo.getBackupId(), table));<a name="line.204"></a>
+<span class="sourceLineNo">205</span>          if (outputFs.delete(targetDirPath, true)) {<a name="line.205"></a>
+<span class="sourceLineNo">206</span>            LOG.debug("Cleaning up uncompleted backup data at " + targetDirPath.toString()<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                + " done.");<a name="line.207"></a>
+<span class="sourceLineNo">208</span>          } else {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>            LOG.debug("No data has been copied to " + targetDirPath.toString() + ".");<a name="line.209"></a>
+<span class="sourceLineNo">210</span>          }<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span>          Path tableDir = targetDirPath.getParent();<a name="line.212"></a>
+<span class="sourceLineNo">213</span>          FileStatus[] backups = FSUtils.listStatus(outputFs, tableDir);<a name="line.213"></a>
+<span class="sourceLineNo">214</span>          if (backups == null || backups.length == 0) {<a name="line.214"></a>
+<span class="sourceLineNo">215</span>            outputFs.delete(tableDir, true);<a name="line.215"></a>
+<span class="sourceLineNo">216</span>            LOG.debug(tableDir.toString() + " is empty, remove it.");<a name="line.216"></a>
+<span class="sourceLineNo">217</span>          }<a name="line.217"></a>
+<span class="sourceLineNo">218</span>        }<a name="line.218"></a>
+<span class="sourceLineNo">219</span>      }<a name="line.219"></a>
+<span class="sourceLineNo">220</span><a name="line.220"></a>
+<span class="sourceLineNo">221</span>    } catch (IOException e1) {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>      LOG.error("Cleaning up uncompleted backup data of " + backupInfo.getBackupId() + " at "<a name="line.222"></a>
+<span class="sourceLineNo">223</span>          + backupInfo.getBackupRootDir() + " failed due to " + e1.getMessage() + ".");<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    }<a name="line.224"></a>
+<span class="sourceLineNo">225</span>  }<a name="line.225"></a>
+<span class="sourceLineNo">226</span><a name="line.226"></a>
+<span class="sourceLineNo">227</span>  /**<a name="line.227"></a>
+<span class="sourceLineNo">228</span>   * Fail the overall backup.<a name="line.228"></a>
+<span class="sourceLineNo">229</span>   * @param backupInfo backup info<a name="line.229"></a>
+<span class="sourceLineNo">230</span>   * @param e exception<a name="line.230"></a>
+<span class="sourceLineNo">231</span>   * @throws Exception exception<a name="line.231"></a>
+<span class="sourceLineNo">232</span>   */<a name="line.232"></a>
+<span class="sourceLineNo">233</span>  protected void failBackup(Connection conn, BackupInfo backupInfo, BackupManager backupManager,<a name="line.233"></a>
+<span class="sourceLineNo">234</span>      Exception e, String msg, BackupType type, Configuration conf) throws IOException {<a name="line.234"></a>
+<span class="sourceLineNo">235</span><a name="line.235"></a>
+<span class="sourceLineNo">236</span>    try {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>      LOG.error(msg + getMessage(e), e);<a name="line.237"></a>
+<span class="sourceLineNo">238</span>      // If this is a cancel exception, then we've already cleaned.<a name="line.238"></a>
+<span class="sourceLineNo">239</span>      // set the failure timestamp of the overall backup<a name="line.239"></a>
+<span class="sourceLineNo">240</span>      backupInfo.setCompleteTs(EnvironmentEdgeManager.currentTime());<a name="line.240"></a>
+<span class="sourceLineNo">241</span>      // set failure message<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      backupInfo.setFailedMsg(e.getMessage());<a name="line.242"></a>
+<span class="sourceLineNo">243</span>      // set overall backup status: failed<a name="line.243"></a>
+<span class="sourceLineNo">244</span>      backupInfo.setState(BackupState.FAILED);<a name="line.244"></a>
+<span class="sourceLineNo">245</span>      // compose the backup failed data<a name="line.245"></a>
+<span class="sourceLineNo">246</span>      String backupFailedData =<a name="line.246"></a>
+<span class="sourceLineNo">247</span>          "BackupId=" + backupInfo.getBackupId() + ",startts=" + backupInfo.getStartTs()<a name="line.247"></a>
+<span class="sourceLineNo">248</span>              + ",failedts=" + backupInfo.getCompleteTs() + ",failedphase=" + backupInfo.getPhase()<a name="line.248"></a>
+<span class="sourceLineNo">249</span>              + ",failedmessage=" + backupInfo.getFailedMsg();<a name="line.249"></a>
+<span class="sourceLineNo">250</span>      LOG.error(backupFailedData);<a name="line.250"></a>
+<span class="sourceLineNo">251</span>      cleanupAndRestoreBackupSystem(conn, backupInfo, conf);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>      // If backup session is updated to FAILED state - means we<a name="line.252"></a>
+<span class="sourceLineNo">253</span>      // processed recovery already.<a name="line.253"></a>
+<span class="sourceLineNo">254</span>      backupManager.updateBackupInfo(backupInfo);<a name="line.254"></a>
+<span class="sourceLineNo">255</span>      backupManager.finishBackupSession();<a name="line.255"></a>
+<span class="sourceLineNo">256</span>      LOG.error("Backup " + backupInfo.getBackupId() + " failed.");<a name="line.256"></a>
+<span class="sourceLineNo">257</span>    } catch (IOException ee) {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>      LOG.error("Please run backup repair tool manually to restore backup system integrity");<a name="line.258"></a>
+<span class="sourceLineNo">259</span>      throw ee;<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>  public static void cleanupAndRestoreBackupSystem(Connection conn, BackupInfo backupInfo,<a name="line.263"></a>
+<span class="sourceLineNo">264</span>      Configuration conf) throws IOException {<a name="line.264"></a>
+<span class="sourceLineNo">265</span>    BackupType type = backupInfo.getType();<a name="line.265"></a>
+<span class="sourceLineNo">266</span>    // if full backup, then delete HBase snapshots if there already are snapshots taken<a name="line.266"></a>
+<span class="sourceLineNo">267</span>    // and also clean up export snapshot log files if exist<a name="line.267"></a>
+<span class="sourceLineNo">268</span>    if (type == BackupType.FULL) {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>      deleteSnapshots(conn, backupInfo, conf);<a name="line.269"></a>
+<span class="sourceLineNo">270</span>      cleanupExportSnapshotLog(conf);<a name="line.270"></a>
+<span class="sourceLineNo">271</span>    }<a name="line.271"></a>
+<span class="sourceLineNo">272</span>    BackupSystemTable.restoreFromSnapshot(conn);<a name="line.272"></a>
+<span class="sourceLineNo">273</span>    BackupSystemTable.deleteSnapshot(conn);<a name="line.273"></a>
+<span class="sourceLineNo">274</span>    // clean up the uncompleted data at target directory if the ongoing backup has already entered<a name="line.274"></a>
+<span class="sourceLineNo">275</span>    // the copy phase<a name="line.275"></a>
+<span class="sourceLineNo">276</span>    // For incremental backup, DistCp logs will be cleaned with the targetDir.<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    cleanupTargetDir(backupInfo, conf);<a name="line.277"></a>
+<span class="sourceLineNo">278</span>  }<a name="line.278"></a>
 <span class="sourceLineNo">279</span><a name="line.279"></a>
 <span class="sourceLineNo">280</span><a name="line.280"></a>
-<span class="sourceLineNo">281</span>  /**<a name="line.281"></a>
-<span class="sourceLineNo">282</span>   * Add manifest for the current backup. The manifest is stored within the table backup directory.<a name="line.282"></a>
-<span class="sourceLineNo">283</span>   * @param backupInfo The current backup info<a name="line.283"></a>
-<span class="sourceLineNo">284</span>   * @throws IOException exception<a name="line.284"></a>
-<span class="sourceLineNo">285</span>   * @throws BackupException exception<a name="line.285"></a>
-<span class="sourceLineNo">286</span>   */<a name="line.286"></a>
-<span class="sourceLineNo">287</span>  protected void addManifest(BackupInfo backupInfo, BackupManager backupManager, BackupType type,<a name="line.287"></a>
-<span class="sourceLineNo">288</span>      Configuration conf) throws IOException, BackupException {<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    // set the overall backup phase : store manifest<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    backupInfo.setPhase(BackupPhase.STORE_MANIFEST);<a name="line.290"></a>
-<span class="sourceLineNo">291</span><a name="line.291"></a>
-<span class="sourceLineNo">292</span>    BackupManifest manifest;<a name="line.292"></a>
-<span class="sourceLineNo">293</span><a name="line.293"></a>
-<span class="sourceLineNo">294</span>    // Since we have each table's backup in its own directory structure,<a name="line.294"></a>
-<span class="sourceLineNo">295</span>    // we'll store its manifest with the table directory.<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    for (TableName table : backupInfo.getTables()) {<a name="line.296"></a>
-<span class="sourceLineNo">297</span>      manifest = new BackupManifest(backupInfo, table);<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      ArrayList&lt;BackupImage&gt; ancestors = backupManager.getAncestors(backupInfo, table);<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      for (BackupImage image : ancestors) {<a name="line.299"></a>
-<span class="sourceLineNo">300</span>        manifest.addDependentImage(image);<a name="line.300"></a>
-<span class="sourceLineNo">301</span>      }<a name="line.301"></a>
-<span class="sourceLineNo">302</span><a name="line.302"></a>
-<span class="sourceLineNo">303</span>      if (type == BackupType.INCREMENTAL) {<a name="line.303"></a>
-<span class="sourceLineNo">304</span>        // We'll store the log timestamps for this table only in its manifest.<a name="line.304"></a>
-<span class="sourceLineNo">305</span>        HashMap&lt;TableName, HashMap&lt;String, Long&gt;&gt; tableTimestampMap =<a name="line.305"></a>
-<span class="sourceLineNo">306</span>            new HashMap&lt;TableName, HashMap&lt;String, Long&gt;&gt;();<a name="line.306"></a>
-<span class="sourceLineNo">307</span>        tableTimestampMap.put(table, backupInfo.getIncrTimestampMap().get(table));<a name="line.307"></a>
-<span class="sourceLineNo">308</span>        manifest.setIncrTimestampMap(tableTimestampMap);<a name="line.308"></a>
-<span class="sourceLineNo">309</span>        ArrayList&lt;BackupImage&gt; ancestorss = backupManager.getAncestors(backupInfo);<a name="line.309"></a>
-<span class="sourceLineNo">310</span>        for (BackupImage image : ancestorss) {<a name="line.310"></a>
-<span class="sourceLineNo">311</span>          manifest.addDependentImage(image);<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>      manifest.store(conf);<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    }<a name="line.315"></a>
-<span class="sourceLineNo">316</span><a name="line.316"></a>
-<span class="sourceLineNo">317</span>    // For incremental backup, we store a overall manifest in<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    // &lt;backup-root-dir&gt;/WALs/&lt;backup-id&gt;<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    // This is used when created the next incremental backup<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    if (type == BackupType.INCREMENTAL) {<a name="line.320"></a>
-<span class="sourceLineNo">321</span>      manifest = new BackupManifest(backupInfo);<a name="line.321"></a>
-<span class="sourceLineNo">322</span>      // set the table region server start and end timestamps for incremental backup<a name="line.322"></a>
-<span class="sourceLineNo">323</span>      manifest.setIncrTimestampMap(backupInfo.getIncrTimestampMap());<a name="line.323"></a>
-<span class="sourceLineNo">324</span>      ArrayList&lt;BackupImage&gt; ancestors = backupManager.getAncestors(backupInfo);<a name="line.324"></a>
-<span class="sourceLineNo">325</span>      for (BackupImage image : ancestors) {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>        manifest.addDependentImage(image);<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      }<a name="line.327"></a>
-<span class="sourceLineNo">328</span>      manifest.store(conf);<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    }<a name="line.329"></a>
-<span class="sourceLineNo">330</span>  }<a name="line.330"></a>
-<span class="sourceLineNo">331</span><a name="line.331"></a>
-<span class="sourceLineNo">332</span>  /**<a name="line.332"></a>
-<span class="sourceLineNo">333</span>   * Get backup request meta data dir as string.<a name="line.333"></a>
-<span class="sourceLineNo">334</span>   * @param backupInfo backup info<a name="line.334"></a>
-<span class="sourceLineNo">335</span>   * @return meta data dir<a name="line.335"></a>
-<span class="sourceLineNo">336</span>   */<a name="line.336"></a>
-<span class="sourceLineNo">337</span>  protected String obtainBackupMetaDataStr(BackupInfo backupInfo) {<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    StringBuffer sb = new StringBuffer();<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    sb.append("type=" + backupInfo.getType() + ",tablelist=");<a name="line.339"></a>
-<span class="sourceLineNo">340</span>    for (TableName table : backupInfo.getTables()) {<a name="line.340"></a>
-<span class="sourceLineNo">341</span>      sb.append(table + ";");<a name="line.341"></a>
-<span class="sourceLineNo">342</span>    }<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    if (sb.lastIndexOf(";") &gt; 0) {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>      sb.delete(sb.lastIndexOf(";"), sb.lastIndexOf(";") + 1);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>    }<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    sb.append(",targetRootDir=" + backupInfo.getBackupRootDir());<a name="line.346"></a>
-<span class="sourceLineNo">347</span><a name="line.347"></a>
-<span class="sourceLineNo">348</span>    return sb.toString();<a name="line.348"></a>
-<span class="sourceLineNo">349</span>  }<a name="line.349"></a>
-<span class="sourceLineNo">350</span><a name="line.350"></a>
-<span class="sourceLineNo">351</span>  /**<a name="line.351"></a>
-<span class="sourceLineNo">352</span>   * Clean up directories with prefix "_distcp_logs-", which are generated when DistCp copying<a name="line.352"></a>
-<span class="sourceLineNo">353</span>   * hlogs.<a name="line.353"></a>
-<span class="sourceLineNo">354</span>   * @throws IOException exception<a name="line.354"></a>
-<span class="sourceLineNo">355</span>   */<a name="line.355"></a>
-<span class="sourceLineNo">356</span>  protected void cleanupDistCpLog(BackupInfo backupInfo, Configuration conf) throws IOException {<a name="line.356"></a>
-<span class="sourceLineNo">357</span>    Path rootPath = new Path(backupInfo.getHLogTargetDir()).getParent();<a name="line.357"></a>
-<span class="sourceLineNo">358</span>    FileSystem fs = FileSystem.get(rootPath.toUri(), conf);<a name="line.358"></a>
+<span class="sourceLineNo">281</span><a name="line.281"></a>
+<span class="sourceLineNo">282</span>  /**<a name="line.282"></a>
+<span class="sourceLineNo">283</span>   * Add manifest for the current backup. The manifest is stored within the table backup directory.<a name="line.283"></a>
+<span class="sourceLineNo">284</span>   * @param backupInfo The current backup info<a name="line.284"></a>
+<span class="sourceLineNo">285</span>   * @throws IOException exception<a name="line.285"></a>
+<span class="sourceLineNo">286</span>   * @throws BackupException exception<a name="line.286"></a>
+<span class="sourceLineNo">287</span>   */<a name="line.287"></a>
+<span class="sourceLineNo">288</span>  protected void addManifest(BackupInfo backupInfo, BackupManager backupManager, BackupType type,<a name="line.288"></a>
+<span class="sourceLineNo">289</span>      Configuration conf) throws IOException, BackupException {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>    // set the overall backup phase : store manifest<a name="line.290"></a>
+<span class="sourceLineNo">291</span>    backupInfo.setPhase(BackupPhase.STORE_MANIFEST);<a name="line.291"></a>
+<span class="sourceLineNo">292</span><a name="line.292"></a>
+<span class="sourceLineNo">293</span>    BackupManifest manifest;<a name="line.293"></a>
+<span class="sourceLineNo">294</span><a name="line.294"></a>
+<span class="sourceLineNo">295</span>    // Since we have each table's backup in its own directory structure,<a name="line.295"></a>
+<span class="sourceLineNo">296</span>    // we'll store its manifest with the table directory.<a name="line.296"></a>
+<span class="sourceLineNo">297</span>    for (TableName table : backupInfo.getTables()) {<a name="line.297"></a>
+<span class="sourceLineNo">298</span>      manifest = new BackupManifest(backupInfo, table);<a name="line.298"></a>
+<span class="sourceLineNo">299</span>      ArrayList&lt;BackupImage&gt; ancestors = backupManager.getAncestors(backupInfo, table);<a name="line.299"></a>
+<span class="sourceLineNo">300</span>      for (BackupImage image : ancestors) {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>        manifest.addDependentImage(image);<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>      if (type == BackupType.INCREMENTAL) {<a name="line.304"></a>
+<span class="sourceLineNo">305</span>        // We'll store the log timestamps for this table only in its manifest.<a name="line.305"></a>
+<span class="sourceLineNo">306</span>        HashMap&lt;TableName, HashMap&lt;String, Long&gt;&gt; tableTimestampMap =<a name="line.306"></a>
+<span class="sourceLineNo">307</span>            new HashMap&lt;TableName, HashMap&lt;String, Long&gt;&gt;();<a name="line.307"></a>
+<span class="sourceLineNo">308</span>        tableTimestampMap.put(table, backupInfo.getIncrTimestampMap().get(table));<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        manifest.setIncrTimestampMap(tableTimestampMap);<a name="line.309"></a>
+<span class="sourceLineNo">310</span>        ArrayList&lt;BackupImage&gt; ancestorss = backupManager.getAncestors(backupInfo);<a name="line.310"></a>
+<span class="sourceLineNo">311</span>        for (BackupImage image : ancestorss) {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>          manifest.addDependentImage(image);<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>      manifest.store(conf);<a name="line.315"></a>
+<span class="sourceLineNo">316</span>    }<a name="line.316"></a>
+<span class="sourceLineNo">317</span><a name="line.317"></a>
+<span class="sourceLineNo">318</span>    // For incremental backup, we store a overall manifest in<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    // &lt;backup-root-dir&gt;/WALs/&lt;backup-id&gt;<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    // This is used when created the next incremental backup<a name="line.320"></a>
+<span class="sourceLineNo">321</span>    if (type == BackupType.INCREMENTAL) {<a name="line.321"></a>
+<span class="sourceLineNo">322</span>      manifest = new BackupManifest(backupInfo);<a name="line.322"></a>
+<span class="sourceLineNo">323</span>      // set the table region server start and end timestamps for incremental backup<a name="line.323"></a>
+<span class="sourceLineNo">324</span>      manifest.setIncrTimestampMap(backupInfo.getIncrTimestampMap());<a name="line.324"></a>
+<span class="sourceLineNo">325</span>      ArrayList&lt;BackupImage&gt; ancestors = backupManager.getAncestors(backupInfo);<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      for (BackupImage image : ancestors) {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>        manifest.addDependentImage(image);<a name="line.327"></a>
+<span class="sourceLineNo">328</span>      }<a name="line.328"></a>
+<span class="sourceLineNo">329</span>      manifest.store(conf);<a name="line.329"></a>
+<span class="sourceLineNo">330</span>    }<a name="line.330"></a>
+<span class="sourceLineNo">331</span>  }<a name="line.331"></a>
+<span class="sourceLineNo">332</span><a name="line.332"></a>
+<span class="sourceLineNo">333</span>  /**<a name="line.333"></a>
+<span class="sourceLineNo">334</span>   * Get backup request meta data dir as string.<a name="line.334"></a>
+<span class="sourceLineNo">335</span>   * @param backupInfo backup info<a name="line.335"></a>
+<span class="sourceLineNo">336</span>   * @return meta data dir<a name="line.336"></a>
+<span class="sourceLineNo">337</span>   */<a name="line.337"></a>
+<span class="sourceLineNo">338</span>  protected String obtainBackupMetaDataStr(BackupInfo backupInfo) {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>    StringBuffer sb = new StringBuffer();<a name="line.339"></a>
+<span class="sourceLineNo">340</span>    sb.append("type=" + backupInfo.getType() + ",tablelist=");<a name="line.340"></a>
+<span class="sourceLineNo">341</span>    for (TableName table : backupInfo.getTables()) {<a name="line.341"></a>
+<span class="sourceLineNo">342</span>      sb.append(table + ";");<a name="line.342"></a>
+<span class="sourceLineNo">343</span>    }<a name="line.343"></a>
+<span class="sourceLineNo">344</span>    if (sb.lastIndexOf(";") &gt; 0) {<a name="line.344"></a>
+<span class="sourceLineNo">345</span>      sb.delete(sb.lastIndexOf(";"), sb.lastIndexOf(";") + 1);<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    }<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    sb.append(",targetRootDir=" + backupInfo.getBackupRootDir());<a name="line.347"></a>
+<span class="sourceLineNo">348</span><a name="line.348"></a>
+<span class="sourceLineNo">349</span>    return sb.toString();<a name="line.349"></a>
+<span class="sourceLineNo">350</span>  }<a name="line.350"></a>
+<span class="sourceLineNo">351</span><a name="line.351"></a>
+<span class="sourceLineNo">352</span>  /**<a name="line.352"></a>
+<span class="sourceLineNo">353</span>   * Clean up directories with prefix "_distcp_logs-", which are generated when DistCp copying<a name="line.353"></a>
+<span class="sourceLineNo">354</span>   * hlogs.<a name="line.354"></a>
+<span class="sourceLineNo">355</span>   * @throws IOException exception<a name="line.355"></a>
+<span class="sourceLineNo">356</span>   */<a name="line.356"></a>
+<span class="sourceLineNo">357</span>  protected void cleanupDistCpLog(BackupInfo backupInfo, Configuration conf) throws IOException {<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    Path rootPath = new Path(backupInfo.getHLogTargetDir()).getParent();<a name="line.358"></a>
 <span class="sourceLineNo">359</span>    FileStatus[] files = FSUtils.listStatus(fs, rootPath);<a name="line.359"></a>
 <span class="sourceLineNo">360</span>    if (files == null) {<a name="line.360"></a>
 <span class="sourceLineNo">361</span>      return;<a name="line.361"></a>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/org/apache/hadoop/hbase/package-use.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/package-use.html b/devapidocs/org/apache/hadoop/hbase/package-use.html
index 62adedd..e8a0a50 100644
--- a/devapidocs/org/apache/hadoop/hbase/package-use.html
+++ b/devapidocs/org/apache/hadoop/hbase/package-use.html
@@ -937,14 +937,6 @@ service.</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><a href="../../../../org/apache/hadoop/hbase/class-use/HTableDescriptor.html#org.apache.hadoop.hbase.backup.impl">HTableDescriptor</a>
-<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
-<div class="block"><span class="deprecationComment">As of release 2.0.0, this will be removed in HBase 3.0.0.
-             Use <a href="../../../../org/apache/hadoop/hbase/client/TableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client"><code>TableDescriptorBuilder</code></a> to build <a href="../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase"><code>HTableDescriptor</code></a>.</span></div>
-</div>
-</td>
-</tr>
-<tr class="rowColor">
 <td class="colOne"><a href="../../../../org/apache/hadoop/hbase/class-use/TableName.html#org.apache.hadoop.hbase.backup.impl">TableName</a>
 <div class="block">Immutable POJO class for representing a table name.</div>
 </td>

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/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 74a1674..65da5bb 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
@@ -207,11 +207,11 @@
 <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/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/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">SpaceViolationPolicy</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaScope.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaScope</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/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/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/QuotaScope.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaScope</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">SpaceViolationPolicy</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottleType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottleType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.html
index 613c5d7..bd7d3c1 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.html
@@ -211,7 +211,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 </td>
 </tr>
 <tr 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="colFirst"><code>protected <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#clusterId">clusterId</a></span></code>
 <div class="block">Unique identifier for the cluster we are a part of.</div>
 </td>
@@ -2181,7 +2181,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>clusterId</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/regionserver/HRegionServer.html#line.453">clusterId</a></pre>
+<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/regionserver/HRegionServer.html#line.453">clusterId</a></pre>
 <div class="block">Unique identifier for the cluster we are a part of.</div>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/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 cab1907..1a19642 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
@@ -704,19 +704,19 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.IndexType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">CompactingMemStore.IndexType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">HRegion.FlushResult.Result</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/BloomType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">BloomType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/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/TimeRangeTracker.Type.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TimeRangeTracker.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/MemStoreCompactionStrategy.Action.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MemStoreCompactionStrategy.Action</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/CompactingMemStore.IndexType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">CompactingMemStore.IndexType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/ScanType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScanType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.LimitScope.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.LimitScope</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">HRegion.FlushResult.Result</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreCompactionStrategy.Action.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MemStoreCompactionStrategy.Action</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/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/BloomType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">BloomType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.NextState.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.NextState</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/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 e97b095..6e98708 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
@@ -130,9 +130,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.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>
 <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.DeleteResult.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">DeleteTracker.DeleteResult</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
index 12b7c54..844f9ca 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
@@ -238,8 +238,8 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/ProtobufLogReader.WALHdrResult.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">ProtobufLogReader.WALHdrResult</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">RingBufferTruck.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/ProtobufLogReader.WALHdrResult.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">ProtobufLogReader.WALHdrResult</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
index dc4ae28..fd5e922 100644
--- a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
@@ -197,8 +197,8 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.WorkerState.html" title="enum in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">ReplicationSourceShipper.WorkerState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceFactoryImpl.SourceHolder.html" title="enum in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">MetricsReplicationSourceFactoryImpl.SourceHolder</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.WorkerState.html" title="enum in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">ReplicationSourceShipper.WorkerState</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html b/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html
index 4b22219..65422cd 100644
--- a/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html
+++ b/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html
@@ -264,7 +264,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupableBa
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#getConf--">getConf</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i8" class="altColor">
-<td class="colFirst"><code>private <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/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;</code></td>
+<td class="colFirst"><code><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/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#getMisplacedRegions-java.util.Map-">getMisplacedRegions</a></span>(<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="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>,<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;regions)</code>&nbsp;</td>
 </tr>
 <tr id="i9" class="rowColor">
@@ -677,8 +677,8 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSG
 <ul class="blockList">
 <li class="blockList">
 <h4>getMisplacedRegions</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/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.304">getMisplacedRegions</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="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>,<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;regions)
-                                     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>
+<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/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.305">getMisplacedRegions</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="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>,<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;regions)
+                                    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>
@@ -691,7 +691,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSG
 <ul class="blockList">
 <li class="blockList">
 <h4>findServerForRegion</h4>
-<pre>private&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/rsgroup/RSGroupBasedLoadBalancer.html#line.326">findServerForRegion</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="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&gt;&nbsp;existingAssignments,
+<pre>private&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/rsgroup/RSGroupBasedLoadBalancer.html#line.333">findServerForRegion</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="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&gt;&nbsp;existingAssignments,
                                        <a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;region)</pre>
 </li>
 </ul>
@@ -701,7 +701,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSG
 <ul class="blockList">
 <li class="blockList">
 <h4>correctAssignments</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="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.338">correctAssignments</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="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>,<a href="http://docs.oracle.com/javase/8/
 docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&gt;&nbsp;existingAssignments)
+<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="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.345">correctAssignments</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="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>,<a href="http://docs.oracle.com/javase/8/
 docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&gt;&nbsp;existingAssignments)
                                                      throws <a href="../../../../../org/apache/hadoop/hbase/HBaseIOException.html" title="class in org.apache.hadoop.hbase">HBaseIOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -715,7 +715,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSG
 <ul class="blockList">
 <li class="blockList">
 <h4>initialize</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.367">initialize</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.374">initialize</a>()
                 throws <a href="../../../../../org/apache/hadoop/hbase/HBaseIOException.html" title="class in org.apache.hadoop.hbase">HBaseIOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html#initialize--">LoadBalancer</a></code></span></div>
 <div class="block">Initialize the load balancer. Must be called after setters.</div>
@@ -733,7 +733,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSG
 <ul class="blockList">
 <li class="blockList">
 <h4>isOnline</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.393">isOnline</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.400">isOnline</a>()</pre>
 </li>
 </ul>
 <a name="setClusterLoad-java.util.Map-">
@@ -742,7 +742,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSG
 <ul class="blockList">
 <li class="blockList">
 <h4>setClusterLoad</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.402">setClusterLoad</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="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</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="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&gt;&gt;&nbsp;clusterLoad)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.409">setClusterLoad</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="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</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="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&gt;&gt;&nbsp;clusterLoad)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html#setClusterLoad-java.util.Map-">LoadBalancer</a></code></span></div>
 <div class="block">Pass RegionStates and allow balancer to set the current cluster load.</div>
 <dl>
@@ -757,7 +757,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSG
 <ul class="blockList">
 <li class="blockList">
 <h4>regionOnline</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.406">regionOnline</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.413">regionOnline</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
                          <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html#regionOnline-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.ServerName-">LoadBalancer</a></code></span></div>
 <div class="block">Marks the region as online at balancer.</div>
@@ -773,7 +773,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSG
 <ul class="blockList">
 <li class="blockList">
 <h4>regionOffline</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.410">regionOffline</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.417">regionOffline</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html#regionOffline-org.apache.hadoop.hbase.client.RegionInfo-">LoadBalancer</a></code></span></div>
 <div class="block">Marks the region as offline at balancer.</div>
 <dl>
@@ -788,7 +788,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSG
 <ul class="blockList">
 <li class="blockList">
 <h4>onConfigurationChange</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.414">onConfigurationChange</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.421">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>
@@ -806,7 +806,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSG
 <ul class="blockList">
 <li class="blockList">
 <h4>stop</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.419">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/rsgroup/RSGroupBasedLoadBalancer.html#line.426">stop</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;why)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/Stoppable.html#stop-java.lang.String-">Stoppable</a></code></span></div>
 <div class="block">Stop this service.
  Implementers should favor logging errors over throwing RuntimeExceptions.</div>
@@ -824,7 +824,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSG
 <ul class="blockList">
 <li class="blockList">
 <h4>isStopped</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.423">isStopped</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.430">isStopped</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/Stoppable.html#isStopped--">isStopped</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a></code></dd>
@@ -839,7 +839,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSG
 <ul class="blockListLast">
 <li class="blockList">
 <h4>setRsGroupInfoManager</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.428">setRsGroupInfoManager</a>(<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html" title="interface in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManager</a>&nbsp;rsGroupInfoManager)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.435">setRsGroupInfoManager</a>(<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html" title="interface in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManager</a>&nbsp;rsGroupInfoManager)</pre>
 </li>
 </ul>
 </li>

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/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 2539fbd..fb14499 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/SaslUtil.QualityOfProtection.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">SaslUtil.QualityOfProtection</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/SaslStatus.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">SaslStatus</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/AuthMethod.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">AuthMethod</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/SaslUtil.QualityOfProtection.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">SaslUtil.QualityOfProtection</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/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 3279176..e714820 100644
--- a/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
@@ -199,8 +199,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.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/MetricsThriftServerSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">MetricsThriftServerSourceFactoryImpl.FactoryStorage</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftMetrics.ThriftServerType.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">ThriftMetrics.ThriftServerType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/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>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/org/apache/hadoop/hbase/util/JVMClusterUtil.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/JVMClusterUtil.html b/devapidocs/org/apache/hadoop/hbase/util/JVMClusterUtil.html
index f3be6cf..9a2a53c 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/JVMClusterUtil.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/JVMClusterUtil.html
@@ -367,7 +367,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>shutdown</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/JVMClusterUtil.html#line.235">shutdown</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/JVMClusterUtil.MasterThread.html" title="class in org.apache.hadoop.hbase.util">JVMClusterUtil.MasterThread</a>&gt;&nbsp;masters,
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/JVMClusterUtil.html#line.236">shutdown</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/JVMClusterUtil.MasterThread.html" title="class in org.apache.hadoop.hbase.util">JVMClusterUtil.MasterThread</a>&gt;&nbsp;masters,
                             <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/util/JVMClusterUtil.RegionServerThread.html" title="class in org.apache.hadoop.hbase.util">JVMClusterUtil.RegionServerThread</a>&gt;&nbsp;regionservers)</pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/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 9cf2d34..fbbb98b 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
@@ -535,14 +535,14 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/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/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/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/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/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/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/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/PoolMap.PoolType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PoolMap.PoolType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Order</span></a></li>
 </ul>
 </li>
 </ul>


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

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


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

Branch: refs/heads/asf-site
Commit: 554d61c645960ddf12cd0e91bac1c0e4b1f2b184
Parents: 27d54dd
Author: jenkins <bu...@apache.org>
Authored: Sat Jan 13 15:31:20 2018 +0000
Committer: jenkins <bu...@apache.org>
Committed: Sat Jan 13 15:31:20 2018 +0000

----------------------------------------------------------------------
 acid-semantics.html                             |    4 +-
 apache_hbase_reference_guide.pdf                |    6 +-
 book.html                                       |    2 +-
 bulk-loads.html                                 |    4 +-
 checkstyle-aggregate.html                       | 4092 ++++++-----
 checkstyle.rss                                  |   60 +-
 coc.html                                        |    4 +-
 cygwin.html                                     |    4 +-
 dependencies.html                               |    4 +-
 dependency-convergence.html                     |    4 +-
 dependency-info.html                            |    4 +-
 dependency-management.html                      |    4 +-
 devapidocs/allclasses-frame.html                |    2 -
 devapidocs/allclasses-noframe.html              |    2 -
 devapidocs/constant-values.html                 |    6 +-
 devapidocs/index-all.html                       |  126 +-
 .../hadoop/hbase/backup/impl/BackupManager.html |  142 +-
 .../backup/impl/BackupSystemTable.WALItem.html  |   18 +-
 .../hbase/backup/impl/BackupSystemTable.html    |  492 +-
 .../backup/impl/FullTableBackupClient.html      |    2 +-
 .../backup/impl/IncrementalBackupManager.html   |    2 +-
 .../impl/IncrementalTableBackupClient.html      |   46 +-
 .../hbase/backup/impl/RestoreTablesClient.html  |   60 +-
 .../hbase/backup/impl/TableBackupClient.html    |   45 +-
 .../hadoop/hbase/backup/package-tree.html       |    4 +-
 .../hbase/class-use/HTableDescriptor.html       |   42 +-
 .../hadoop/hbase/class-use/ServerName.html      |    2 +-
 .../hadoop/hbase/class-use/TableName.html       |   46 +-
 .../hadoop/hbase/client/class-use/Admin.html    |    3 +-
 .../hbase/client/class-use/RegionInfo.html      |    4 +-
 .../hbase/client/class-use/TableDescriptor.html |   68 +-
 .../hadoop/hbase/client/package-tree.html       |   26 +-
 .../apache/hadoop/hbase/client/package-use.html |    8 +
 .../hadoop/hbase/executor/package-tree.html     |    2 +-
 .../hadoop/hbase/filter/package-tree.html       |    6 +-
 .../hadoop/hbase/io/hfile/package-tree.html     |    8 +-
 .../apache/hadoop/hbase/ipc/package-tree.html   |    4 +-
 .../hadoop/hbase/mapreduce/package-tree.html    |    2 +-
 .../master/HMaster.InitializationMonitor.html   |   20 +-
 .../hbase/master/HMaster.RedirectServlet.html   |   12 +-
 .../org/apache/hadoop/hbase/master/HMaster.html |  514 +-
 .../master/HMasterCommandLine.LocalHMaster.html |    8 +-
 .../hadoop/hbase/master/package-tree.html       |    6 +-
 .../hadoop/hbase/monitoring/package-tree.html   |    2 +-
 .../org/apache/hadoop/hbase/package-tree.html   |   18 +-
 .../org/apache/hadoop/hbase/package-use.html    |    8 -
 .../hadoop/hbase/procedure2/package-tree.html   |    4 +-
 .../hadoop/hbase/quotas/package-tree.html       |    6 +-
 .../hbase/regionserver/HRegionServer.html       |    4 +-
 .../hadoop/hbase/regionserver/package-tree.html |   16 +-
 .../regionserver/querymatcher/package-tree.html |    2 +-
 .../hbase/regionserver/wal/package-tree.html    |    2 +-
 .../replication/regionserver/package-tree.html  |    2 +-
 .../hbase/rsgroup/RSGroupBasedLoadBalancer.html |   28 +-
 .../hbase/security/access/package-tree.html     |    2 +-
 .../hadoop/hbase/security/package-tree.html     |    2 +-
 .../hadoop/hbase/thrift/package-tree.html       |    2 +-
 .../hadoop/hbase/util/JVMClusterUtil.html       |    2 +-
 .../apache/hadoop/hbase/util/package-tree.html  |    8 +-
 .../hbase/zookeeper/RecoverableZooKeeper.html   |   81 +-
 .../hadoop/hbase/zookeeper/ZKMetadata.html      |    4 +-
 .../hadoop/hbase/zookeeper/ZKMetrics.html       |  588 --
 .../hbase/zookeeper/ZKMetricsListener.html      |  422 --
 .../hadoop/hbase/zookeeper/ZKNodeTracker.html   |    4 +-
 .../class-use/MetricsZooKeeperSource.html       |   24 -
 .../hbase/zookeeper/class-use/ZKMetrics.html    |  125 -
 .../zookeeper/class-use/ZKMetricsListener.html  |  180 -
 .../hadoop/hbase/zookeeper/package-frame.html   |    2 -
 .../hadoop/hbase/zookeeper/package-summary.html |   34 +-
 .../hadoop/hbase/zookeeper/package-tree.html    |    2 -
 .../hadoop/hbase/zookeeper/package-use.html     |   17 +-
 devapidocs/overview-tree.html                   |    2 -
 .../org/apache/hadoop/hbase/Version.html        |    6 +-
 .../hbase/backup/impl/BackupAdminImpl.html      |    2 +-
 .../hadoop/hbase/backup/impl/BackupManager.html |  921 +--
 .../backup/impl/BackupSystemTable.WALItem.html  | 3887 +++++-----
 .../hbase/backup/impl/BackupSystemTable.html    | 3887 +++++-----
 .../impl/IncrementalTableBackupClient.html      |  535 +-
 .../hbase/backup/impl/RestoreTablesClient.html  |  461 +-
 .../backup/impl/TableBackupClient.Stage.html    |  570 +-
 .../hbase/backup/impl/TableBackupClient.html    |  570 +-
 .../master/HMaster.InitializationMonitor.html   | 6897 +++++++++---------
 .../hbase/master/HMaster.RedirectServlet.html   | 6897 +++++++++---------
 .../org/apache/hadoop/hbase/master/HMaster.html | 6897 +++++++++---------
 .../HRegionServer.CompactionChecker.html        |    2 +-
 .../HRegionServer.MovedRegionInfo.html          |    2 +-
 .../HRegionServer.MovedRegionsCleaner.html      |    2 +-
 .../HRegionServer.PeriodicMemStoreFlusher.html  |    2 +-
 .../hbase/regionserver/HRegionServer.html       |    2 +-
 .../hbase/rsgroup/RSGroupBasedLoadBalancer.html |  259 +-
 .../hbase/util/JVMClusterUtil.MasterThread.html |  142 +-
 .../util/JVMClusterUtil.RegionServerThread.html |  142 +-
 .../hadoop/hbase/util/JVMClusterUtil.html       |  142 +-
 .../hbase/zookeeper/RecoverableZooKeeper.html   | 1404 ++--
 .../hadoop/hbase/zookeeper/ZKMetrics.html       |  180 -
 .../hbase/zookeeper/ZKMetricsListener.html      |  163 -
 export_control.html                             |    4 +-
 hbase-annotations/checkstyle.html               |    4 +-
 hbase-annotations/dependencies.html             |    4 +-
 hbase-annotations/dependency-convergence.html   |    4 +-
 hbase-annotations/dependency-info.html          |    4 +-
 hbase-annotations/dependency-management.html    |    4 +-
 hbase-annotations/index.html                    |    4 +-
 hbase-annotations/integration.html              |    4 +-
 hbase-annotations/issue-tracking.html           |    4 +-
 hbase-annotations/license.html                  |    4 +-
 hbase-annotations/mail-lists.html               |    4 +-
 hbase-annotations/plugin-management.html        |    4 +-
 hbase-annotations/plugins.html                  |    4 +-
 hbase-annotations/project-info.html             |    4 +-
 hbase-annotations/project-reports.html          |    4 +-
 hbase-annotations/project-summary.html          |    4 +-
 hbase-annotations/source-repository.html        |    4 +-
 hbase-annotations/team-list.html                |    4 +-
 hbase-build-configuration/dependencies.html     |    4 +-
 .../dependency-convergence.html                 |    4 +-
 hbase-build-configuration/dependency-info.html  |    4 +-
 .../dependency-management.html                  |    4 +-
 .../hbase-archetypes/dependencies.html          |    4 +-
 .../dependency-convergence.html                 |    4 +-
 .../hbase-archetypes/dependency-info.html       |    4 +-
 .../hbase-archetypes/dependency-management.html |    4 +-
 .../hbase-archetype-builder/dependencies.html   |    4 +-
 .../dependency-convergence.html                 |    4 +-
 .../dependency-info.html                        |    4 +-
 .../dependency-management.html                  |    4 +-
 .../hbase-archetype-builder/index.html          |    4 +-
 .../hbase-archetype-builder/integration.html    |    4 +-
 .../hbase-archetype-builder/issue-tracking.html |    4 +-
 .../hbase-archetype-builder/license.html        |    4 +-
 .../hbase-archetype-builder/mail-lists.html     |    4 +-
 .../plugin-management.html                      |    4 +-
 .../hbase-archetype-builder/plugins.html        |    4 +-
 .../hbase-archetype-builder/project-info.html   |    4 +-
 .../project-summary.html                        |    4 +-
 .../source-repository.html                      |    4 +-
 .../hbase-archetype-builder/team-list.html      |    4 +-
 .../hbase-client-project/checkstyle.html        |    4 +-
 .../hbase-client-project/dependencies.html      |    8 +-
 .../dependency-convergence.html                 |    4 +-
 .../hbase-client-project/dependency-info.html   |    4 +-
 .../dependency-management.html                  |    4 +-
 .../hbase-client-project/index.html             |    4 +-
 .../hbase-client-project/integration.html       |    4 +-
 .../hbase-client-project/issue-tracking.html    |    4 +-
 .../hbase-client-project/license.html           |    4 +-
 .../hbase-client-project/mail-lists.html        |    4 +-
 .../hbase-client-project/plugin-management.html |    4 +-
 .../hbase-client-project/plugins.html           |    4 +-
 .../hbase-client-project/project-info.html      |    4 +-
 .../hbase-client-project/project-reports.html   |    4 +-
 .../hbase-client-project/project-summary.html   |    4 +-
 .../hbase-client-project/source-repository.html |    4 +-
 .../hbase-client-project/team-list.html         |    4 +-
 .../hbase-shaded-client-project/checkstyle.html |    4 +-
 .../dependencies.html                           |    8 +-
 .../dependency-convergence.html                 |    4 +-
 .../dependency-info.html                        |    4 +-
 .../dependency-management.html                  |    4 +-
 .../hbase-shaded-client-project/index.html      |    4 +-
 .../integration.html                            |    4 +-
 .../issue-tracking.html                         |    4 +-
 .../hbase-shaded-client-project/license.html    |    4 +-
 .../hbase-shaded-client-project/mail-lists.html |    4 +-
 .../plugin-management.html                      |    4 +-
 .../hbase-shaded-client-project/plugins.html    |    4 +-
 .../project-info.html                           |    4 +-
 .../project-reports.html                        |    4 +-
 .../project-summary.html                        |    4 +-
 .../source-repository.html                      |    4 +-
 .../hbase-shaded-client-project/team-list.html  |    4 +-
 .../hbase-archetypes/index.html                 |    4 +-
 .../hbase-archetypes/integration.html           |    4 +-
 .../hbase-archetypes/issue-tracking.html        |    4 +-
 .../hbase-archetypes/license.html               |    4 +-
 .../hbase-archetypes/mail-lists.html            |    4 +-
 .../hbase-archetypes/plugin-management.html     |    4 +-
 .../hbase-archetypes/plugins.html               |    4 +-
 .../hbase-archetypes/project-info.html          |    4 +-
 .../hbase-archetypes/project-summary.html       |    4 +-
 .../hbase-archetypes/source-repository.html     |    4 +-
 .../hbase-archetypes/team-list.html             |    4 +-
 .../hbase-spark/checkstyle.html                 |    4 +-
 .../hbase-spark/dependencies.html               |    6 +-
 .../hbase-spark/dependency-convergence.html     |    4 +-
 .../hbase-spark/dependency-info.html            |    4 +-
 .../hbase-spark/dependency-management.html      |    4 +-
 .../hbase-spark/index.html                      |    4 +-
 .../hbase-spark/integration.html                |    4 +-
 .../hbase-spark/issue-tracking.html             |    4 +-
 .../hbase-spark/license.html                    |    4 +-
 .../hbase-spark/mail-lists.html                 |    4 +-
 .../hbase-spark/plugin-management.html          |    4 +-
 .../hbase-spark/plugins.html                    |    4 +-
 .../hbase-spark/project-info.html               |    4 +-
 .../hbase-spark/project-reports.html            |    4 +-
 .../hbase-spark/project-summary.html            |    4 +-
 .../hbase-spark/source-repository.html          |    4 +-
 .../hbase-spark/team-list.html                  |    4 +-
 hbase-build-configuration/index.html            |    4 +-
 hbase-build-configuration/integration.html      |    4 +-
 hbase-build-configuration/issue-tracking.html   |    4 +-
 hbase-build-configuration/license.html          |    4 +-
 hbase-build-configuration/mail-lists.html       |    4 +-
 .../plugin-management.html                      |    4 +-
 hbase-build-configuration/plugins.html          |    4 +-
 hbase-build-configuration/project-info.html     |    4 +-
 hbase-build-configuration/project-summary.html  |    4 +-
 .../source-repository.html                      |    4 +-
 hbase-build-configuration/team-list.html        |    4 +-
 hbase-shaded-check-invariants/checkstyle.html   |    4 +-
 hbase-shaded-check-invariants/dependencies.html |    4 +-
 .../dependency-convergence.html                 |    4 +-
 .../dependency-info.html                        |    4 +-
 .../dependency-management.html                  |    4 +-
 hbase-shaded-check-invariants/index.html        |    4 +-
 hbase-shaded-check-invariants/integration.html  |    4 +-
 .../issue-tracking.html                         |    4 +-
 hbase-shaded-check-invariants/license.html      |    4 +-
 hbase-shaded-check-invariants/mail-lists.html   |    4 +-
 .../plugin-management.html                      |    4 +-
 hbase-shaded-check-invariants/plugins.html      |    4 +-
 hbase-shaded-check-invariants/project-info.html |    4 +-
 .../project-reports.html                        |    4 +-
 .../project-summary.html                        |    4 +-
 .../source-repository.html                      |    4 +-
 hbase-shaded-check-invariants/team-list.html    |    4 +-
 index.html                                      |    4 +-
 integration.html                                |    4 +-
 issue-tracking.html                             |    4 +-
 license.html                                    |    4 +-
 mail-lists.html                                 |    4 +-
 metrics.html                                    |    4 +-
 old_news.html                                   |    4 +-
 plugin-management.html                          |    4 +-
 plugins.html                                    |    4 +-
 poweredbyhbase.html                             |    4 +-
 project-info.html                               |    4 +-
 project-reports.html                            |    4 +-
 project-summary.html                            |    4 +-
 pseudo-distributed.html                         |    4 +-
 replication.html                                |    4 +-
 resources.html                                  |    4 +-
 source-repository.html                          |    4 +-
 sponsors.html                                   |    4 +-
 supportingprojects.html                         |    4 +-
 team-list.html                                  |    4 +-
 .../hadoop/hbase/HBaseTestingUtility.html       |    2 +-
 testdevapidocs/allclasses-frame.html            |    1 -
 testdevapidocs/allclasses-noframe.html          |    1 -
 testdevapidocs/index-all.html                   |   16 +-
 ...aseCluster.MiniHBaseClusterRegionServer.html |    2 +-
 ...stJMXConnectorServer.MyAccessController.html |   44 +-
 .../hadoop/hbase/TestJMXConnectorServer.html    |   26 +-
 .../hbase/TestLocalHBaseCluster.MyHMaster.html  |    8 +-
 .../TestLocalHBaseCluster.MyHRegionServer.html  |    2 +-
 ...ovedRegionsCleaner.TestMockRegionServer.html |    2 +-
 ...BackupBase.FullTableBackupClientForTest.html |   10 +-
 ...ase.IncrementalTableBackupClientForTest.html |   10 +-
 .../hadoop/hbase/backup/TestBackupBase.html     |   84 +-
 .../hadoop/hbase/backup/package-tree.html       |    2 +-
 ...rRPCTimeout.RegionServerWithScanTimeout.html |    2 +-
 ...taCache.RegionServerWithFakeRpcServices.html |    2 +-
 .../TestMultiParallel.MyMasterObserver.html     |   14 +-
 .../hadoop/hbase/client/TestMultiParallel.html  |   72 +-
 .../hbase/client/TestZKAsyncRegistry.html       |   33 +-
 .../hadoop/hbase/io/hfile/package-tree.html     |    2 +-
 .../hadoop/hbase/master/TestDLSAsyncFSWAL.html  |    6 +-
 .../hadoop/hbase/master/TestDLSFSHLog.html      |    6 +-
 .../master/TestMasterMetrics.MyMaster.html      |    8 +-
 .../TestMetaShutdownHandler.MyRegionServer.html |    2 +-
 .../TestFavoredStochasticLoadBalancer.html      |   48 +-
 .../balancer/TestRSGroupBasedLoadBalancer.html  |   97 +-
 .../balancer/TestRegionsOnMasterOptions.html    |   42 +-
 .../org/apache/hadoop/hbase/package-tree.html   |    8 +-
 .../hadoop/hbase/procedure2/package-tree.html   |    4 +-
 .../hbase/regionserver/OOMERegionServer.html    |    2 +-
 ...onInDeadRegionServer.IgnoreYouAreDeadRS.html |    2 +-
 ...Initializing.RegisterAndDieRegionServer.html |    2 +-
 ...egionMergeTransactionOnCluster.MyMaster.html |    8 +-
 ...stRegionServerReadRequestMetrics.Metric.html |   14 +-
 ...eadRequestMetrics.ScanRegionCoprocessor.html |   10 +-
 .../TestRegionServerReadRequestMetrics.html     |   78 +-
 ...egionServerReportForDuty.MyRegionServer.html |    2 +-
 ...eartbeatMessages.HeartbeatHRegionServer.html |    2 +-
 .../TestSplitTransactionOnCluster.MyMaster.html |    8 +-
 .../hadoop/hbase/regionserver/package-tree.html |    4 +-
 ...stReplicationProcedureRetry.MockHMaster.html |    8 +-
 ...icationSource.ShutdownDelayRegionServer.html |    2 +-
 .../apache/hadoop/hbase/test/package-tree.html  |    2 +-
 .../TestZKMainServer.NoExitSecurityManager.html |    4 +-
 .../hadoop/hbase/zookeeper/TestZKMetrics.html   |  285 -
 .../hadoop/hbase/zookeeper/TestZKMulti.html     |    4 +-
 .../zookeeper/class-use/TestZKMetrics.html      |  125 -
 .../hadoop/hbase/zookeeper/package-frame.html   |    1 -
 .../hadoop/hbase/zookeeper/package-summary.html |   22 +-
 .../hadoop/hbase/zookeeper/package-tree.html    |    1 -
 testdevapidocs/overview-tree.html               |    1 -
 ...lity.PortAllocator.AvailablePortChecker.html |    2 +-
 .../HBaseTestingUtility.PortAllocator.html      |    2 +-
 .../HBaseTestingUtility.SeenRowTracker.html     |    2 +-
 .../hadoop/hbase/HBaseTestingUtility.html       |    2 +-
 ...stJMXConnectorServer.MyAccessController.html |  360 +-
 .../hadoop/hbase/TestJMXConnectorServer.html    |  360 +-
 ...BackupBase.FullTableBackupClientForTest.html |  874 ++-
 ...ase.IncrementalTableBackupClientForTest.html |  874 ++-
 .../hadoop/hbase/backup/TestBackupBase.html     |  874 ++-
 .../TestIncrementalBackupWithBulkLoad.html      |   70 +-
 .../TestMultiParallel.MyMasterObserver.html     | 1522 ++--
 .../hadoop/hbase/client/TestMultiParallel.html  | 1522 ++--
 .../hbase/client/TestZKAsyncRegistry.html       |  208 +-
 .../hadoop/hbase/master/TestDLSAsyncFSWAL.html  |   22 +-
 .../hadoop/hbase/master/TestDLSFSHLog.html      |   22 +-
 .../hbase/master/TestTableStateManager.html     |    2 +-
 .../TestFavoredStochasticLoadBalancer.html      |  973 +--
 .../balancer/TestRSGroupBasedLoadBalancer.html  | 1049 +--
 .../balancer/TestRegionsOnMasterOptions.html    |  367 +-
 ...stRegionServerReadRequestMetrics.Metric.html |  864 +--
 ...eadRequestMetrics.ScanRegionCoprocessor.html |  864 +--
 .../TestRegionServerReadRequestMetrics.html     |  864 +--
 .../hadoop/hbase/zookeeper/TestZKMetrics.html   |  152 -
 321 files changed, 26498 insertions(+), 28595 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/acid-semantics.html
----------------------------------------------------------------------
diff --git a/acid-semantics.html b/acid-semantics.html
index c2b1973..f120fc9 100644
--- a/acid-semantics.html
+++ b/acid-semantics.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Apache HBase (TM) ACID Properties
@@ -606,7 +606,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/apache_hbase_reference_guide.pdf
----------------------------------------------------------------------
diff --git a/apache_hbase_reference_guide.pdf b/apache_hbase_reference_guide.pdf
index c2002e5..4e2394d 100644
--- a/apache_hbase_reference_guide.pdf
+++ b/apache_hbase_reference_guide.pdf
@@ -5,8 +5,8 @@
 /Author (Apache HBase Team)
 /Creator (Asciidoctor PDF 1.5.0.alpha.15, based on Prawn 2.2.2)
 /Producer (Apache HBase Team)
-/ModDate (D:20180112144904+00'00')
-/CreationDate (D:20180112144904+00'00')
+/ModDate (D:20180113144908+00'00')
+/CreationDate (D:20180113144908+00'00')
 >>
 endobj
 2 0 obj
@@ -28014,7 +28014,7 @@ endobj
 endobj
 136 0 obj
 << /Limits [(__anchor-top) (adding.new.node)]
-/Names [(__anchor-top) 25 0 R (__indexterm-7408654) 3451 0 R (__indexterm-7410904) 3453 0 R (__indexterm-7412966) 3454 0 R (__indexterm-7414840) 3455 0 R (acid) 911 0 R (acl) 3272 0 R (add-metric-name-and-function-to-hadoop-compat-interface) 3550 0 R (add-the-implementation-to-both-hadoop-1-and-hadoop-2-compat-modules) 3552 0 R (add.metrics) 3548 0 R (adding-a-new-chapter-to-the-hbase-reference-guide) 3792 0 R (adding.new.node) 3016 0 R]
+/Names [(__anchor-top) 25 0 R (__indexterm-7408658) 3451 0 R (__indexterm-7410908) 3453 0 R (__indexterm-7412970) 3454 0 R (__indexterm-7414844) 3455 0 R (acid) 911 0 R (acl) 3272 0 R (add-metric-name-and-function-to-hadoop-compat-interface) 3550 0 R (add-the-implementation-to-both-hadoop-1-and-hadoop-2-compat-modules) 3552 0 R (add.metrics) 3548 0 R (adding-a-new-chapter-to-the-hbase-reference-guide) 3792 0 R (adding.new.node) 3016 0 R]
 >>
 endobj
 137 0 obj

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/book.html
----------------------------------------------------------------------
diff --git a/book.html b/book.html
index a12a1fb..0a90625 100644
--- a/book.html
+++ b/book.html
@@ -37247,7 +37247,7 @@ The server will return cellblocks compressed using this same compressor as long
 <div id="footer">
 <div id="footer-text">
 Version 3.0.0-SNAPSHOT<br>
-Last updated 2018-01-12 14:29:42 UTC
+Last updated 2018-01-13 14:29:41 UTC
 </div>
 </div>
 </body>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/bulk-loads.html
----------------------------------------------------------------------
diff --git a/bulk-loads.html b/bulk-loads.html
index 3761b64..bc2c3da 100644
--- a/bulk-loads.html
+++ b/bulk-loads.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Bulk Loads in Apache HBase (TM)
@@ -311,7 +311,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html
index 802fc2f..2bbae5e 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html
@@ -458,7 +458,7 @@
 <span class="sourceLineNo">450</span>  /**<a name="line.450"></a>
 <span class="sourceLineNo">451</span>   * Unique identifier for the cluster we are a part of.<a name="line.451"></a>
 <span class="sourceLineNo">452</span>   */<a name="line.452"></a>
-<span class="sourceLineNo">453</span>  private String clusterId;<a name="line.453"></a>
+<span class="sourceLineNo">453</span>  protected String clusterId;<a name="line.453"></a>
 <span class="sourceLineNo">454</span><a name="line.454"></a>
 <span class="sourceLineNo">455</span>  /**<a name="line.455"></a>
 <span class="sourceLineNo">456</span>   * MX Bean for RegionServerInfo<a name="line.456"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html
index 802fc2f..2bbae5e 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html
@@ -458,7 +458,7 @@
 <span class="sourceLineNo">450</span>  /**<a name="line.450"></a>
 <span class="sourceLineNo">451</span>   * Unique identifier for the cluster we are a part of.<a name="line.451"></a>
 <span class="sourceLineNo">452</span>   */<a name="line.452"></a>
-<span class="sourceLineNo">453</span>  private String clusterId;<a name="line.453"></a>
+<span class="sourceLineNo">453</span>  protected String clusterId;<a name="line.453"></a>
 <span class="sourceLineNo">454</span><a name="line.454"></a>
 <span class="sourceLineNo">455</span>  /**<a name="line.455"></a>
 <span class="sourceLineNo">456</span>   * MX Bean for RegionServerInfo<a name="line.456"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html
index 802fc2f..2bbae5e 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html
@@ -458,7 +458,7 @@
 <span class="sourceLineNo">450</span>  /**<a name="line.450"></a>
 <span class="sourceLineNo">451</span>   * Unique identifier for the cluster we are a part of.<a name="line.451"></a>
 <span class="sourceLineNo">452</span>   */<a name="line.452"></a>
-<span class="sourceLineNo">453</span>  private String clusterId;<a name="line.453"></a>
+<span class="sourceLineNo">453</span>  protected String clusterId;<a name="line.453"></a>
 <span class="sourceLineNo">454</span><a name="line.454"></a>
 <span class="sourceLineNo">455</span>  /**<a name="line.455"></a>
 <span class="sourceLineNo">456</span>   * MX Bean for RegionServerInfo<a name="line.456"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html
index 802fc2f..2bbae5e 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html
@@ -458,7 +458,7 @@
 <span class="sourceLineNo">450</span>  /**<a name="line.450"></a>
 <span class="sourceLineNo">451</span>   * Unique identifier for the cluster we are a part of.<a name="line.451"></a>
 <span class="sourceLineNo">452</span>   */<a name="line.452"></a>
-<span class="sourceLineNo">453</span>  private String clusterId;<a name="line.453"></a>
+<span class="sourceLineNo">453</span>  protected String clusterId;<a name="line.453"></a>
 <span class="sourceLineNo">454</span><a name="line.454"></a>
 <span class="sourceLineNo">455</span>  /**<a name="line.455"></a>
 <span class="sourceLineNo">456</span>   * MX Bean for RegionServerInfo<a name="line.456"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html
index 802fc2f..2bbae5e 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html
@@ -458,7 +458,7 @@
 <span class="sourceLineNo">450</span>  /**<a name="line.450"></a>
 <span class="sourceLineNo">451</span>   * Unique identifier for the cluster we are a part of.<a name="line.451"></a>
 <span class="sourceLineNo">452</span>   */<a name="line.452"></a>
-<span class="sourceLineNo">453</span>  private String clusterId;<a name="line.453"></a>
+<span class="sourceLineNo">453</span>  protected String clusterId;<a name="line.453"></a>
 <span class="sourceLineNo">454</span><a name="line.454"></a>
 <span class="sourceLineNo">455</span>  /**<a name="line.455"></a>
 <span class="sourceLineNo">456</span>   * MX Bean for RegionServerInfo<a name="line.456"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html b/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html
index d77ee16..1451196 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html
@@ -309,134 +309,141 @@
 <span class="sourceLineNo">301</span>    return finalList;<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>  private Set&lt;RegionInfo&gt; getMisplacedRegions(<a name="line.304"></a>
-<span class="sourceLineNo">305</span>      Map&lt;RegionInfo, ServerName&gt; regions) throws IOException {<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    Set&lt;RegionInfo&gt; misplacedRegions = new HashSet&lt;&gt;();<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    for(Map.Entry&lt;RegionInfo, ServerName&gt; region : regions.entrySet()) {<a name="line.307"></a>
-<span class="sourceLineNo">308</span>      RegionInfo regionInfo = region.getKey();<a name="line.308"></a>
-<span class="sourceLineNo">309</span>      ServerName assignedServer = region.getValue();<a name="line.309"></a>
-<span class="sourceLineNo">310</span>      RSGroupInfo info = rsGroupInfoManager.getRSGroup(rsGroupInfoManager.<a name="line.310"></a>
-<span class="sourceLineNo">311</span>              getRSGroupOfTable(regionInfo.getTable()));<a name="line.311"></a>
-<span class="sourceLineNo">312</span>      if (assignedServer != null &amp;&amp;<a name="line.312"></a>
-<span class="sourceLineNo">313</span>          (info == null || !info.containsServer(assignedServer.getAddress()))) {<a name="line.313"></a>
-<span class="sourceLineNo">314</span>        RSGroupInfo otherInfo = null;<a name="line.314"></a>
-<span class="sourceLineNo">315</span>        otherInfo = rsGroupInfoManager.getRSGroupOfServer(assignedServer.getAddress());<a name="line.315"></a>
-<span class="sourceLineNo">316</span>        LOG.debug("Found misplaced region: " + regionInfo.getRegionNameAsString() +<a name="line.316"></a>
-<span class="sourceLineNo">317</span>            " on server: " + assignedServer +<a name="line.317"></a>
-<span class="sourceLineNo">318</span>            " found in group: " +  otherInfo +<a name="line.318"></a>
-<span class="sourceLineNo">319</span>            " outside of group: " + (info == null ? "UNKNOWN" : info.getName()));<a name="line.319"></a>
-<span class="sourceLineNo">320</span>        misplacedRegions.add(regionInfo);<a name="line.320"></a>
+<span class="sourceLineNo">304</span>  @VisibleForTesting<a name="line.304"></a>
+<span class="sourceLineNo">305</span>  public Set&lt;RegionInfo&gt; getMisplacedRegions(<a name="line.305"></a>
+<span class="sourceLineNo">306</span>      Map&lt;RegionInfo, ServerName&gt; regions) throws IOException {<a name="line.306"></a>
+<span class="sourceLineNo">307</span>    Set&lt;RegionInfo&gt; misplacedRegions = new HashSet&lt;&gt;();<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    for(Map.Entry&lt;RegionInfo, ServerName&gt; region : regions.entrySet()) {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>      RegionInfo regionInfo = region.getKey();<a name="line.309"></a>
+<span class="sourceLineNo">310</span>      ServerName assignedServer = region.getValue();<a name="line.310"></a>
+<span class="sourceLineNo">311</span>      RSGroupInfo info = rsGroupInfoManager.getRSGroup(rsGroupInfoManager.<a name="line.311"></a>
+<span class="sourceLineNo">312</span>              getRSGroupOfTable(regionInfo.getTable()));<a name="line.312"></a>
+<span class="sourceLineNo">313</span>      if (assignedServer == null) {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>        LOG.debug("There is no assigned server for {}", region);<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        continue;<a name="line.315"></a>
+<span class="sourceLineNo">316</span>      }<a name="line.316"></a>
+<span class="sourceLineNo">317</span>      RSGroupInfo otherInfo = rsGroupInfoManager.getRSGroupOfServer(assignedServer.getAddress());<a name="line.317"></a>
+<span class="sourceLineNo">318</span>      if (info == null &amp;&amp; otherInfo == null) {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>        LOG.warn("Couldn't obtain rs group information for {} on {}", region, assignedServer);<a name="line.319"></a>
+<span class="sourceLineNo">320</span>        continue;<a name="line.320"></a>
 <span class="sourceLineNo">321</span>      }<a name="line.321"></a>
-<span class="sourceLineNo">322</span>    }<a name="line.322"></a>
-<span class="sourceLineNo">323</span>    return misplacedRegions;<a name="line.323"></a>
-<span class="sourceLineNo">324</span>  }<a name="line.324"></a>
-<span class="sourceLineNo">325</span><a name="line.325"></a>
-<span class="sourceLineNo">326</span>  private ServerName findServerForRegion(<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; existingAssignments, RegionInfo region) {<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    for (Map.Entry&lt;ServerName, List&lt;RegionInfo&gt;&gt; entry : existingAssignments.entrySet()) {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>      if (entry.getValue().contains(region)) {<a name="line.329"></a>
-<span class="sourceLineNo">330</span>        return entry.getKey();<a name="line.330"></a>
-<span class="sourceLineNo">331</span>      }<a name="line.331"></a>
-<span class="sourceLineNo">332</span>    }<a name="line.332"></a>
-<span class="sourceLineNo">333</span><a name="line.333"></a>
-<span class="sourceLineNo">334</span>    throw new IllegalStateException("Could not find server for region "<a name="line.334"></a>
-<span class="sourceLineNo">335</span>        + region.getShortNameToLog());<a name="line.335"></a>
-<span class="sourceLineNo">336</span>  }<a name="line.336"></a>
-<span class="sourceLineNo">337</span><a name="line.337"></a>
-<span class="sourceLineNo">338</span>  private Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; correctAssignments(<a name="line.338"></a>
-<span class="sourceLineNo">339</span>       Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; existingAssignments)<a name="line.339"></a>
-<span class="sourceLineNo">340</span>  throws HBaseIOException{<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; correctAssignments = new TreeMap&lt;&gt;();<a name="line.341"></a>
-<span class="sourceLineNo">342</span>    correctAssignments.put(LoadBalancer.BOGUS_SERVER_NAME, new LinkedList&lt;&gt;());<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    for (Map.Entry&lt;ServerName, List&lt;RegionInfo&gt;&gt; assignments : existingAssignments.entrySet()){<a name="line.343"></a>
-<span class="sourceLineNo">344</span>      ServerName sName = assignments.getKey();<a name="line.344"></a>
-<span class="sourceLineNo">345</span>      correctAssignments.put(sName, new LinkedList&lt;&gt;());<a name="line.345"></a>
-<span class="sourceLineNo">346</span>      List&lt;RegionInfo&gt; regions = assignments.getValue();<a name="line.346"></a>
-<span class="sourceLineNo">347</span>      for (RegionInfo region : regions) {<a name="line.347"></a>
-<span class="sourceLineNo">348</span>        RSGroupInfo info = null;<a name="line.348"></a>
-<span class="sourceLineNo">349</span>        try {<a name="line.349"></a>
-<span class="sourceLineNo">350</span>          info = rsGroupInfoManager.getRSGroup(<a name="line.350"></a>
-<span class="sourceLineNo">351</span>              rsGroupInfoManager.getRSGroupOfTable(region.getTable()));<a name="line.351"></a>
-<span class="sourceLineNo">352</span>        } catch (IOException exp) {<a name="line.352"></a>
-<span class="sourceLineNo">353</span>          LOG.debug("RSGroup information null for region of table " + region.getTable(),<a name="line.353"></a>
-<span class="sourceLineNo">354</span>              exp);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>        }<a name="line.355"></a>
-<span class="sourceLineNo">356</span>        if ((info == null) || (!info.containsServer(sName.getAddress()))) {<a name="line.356"></a>
-<span class="sourceLineNo">357</span>          correctAssignments.get(LoadBalancer.BOGUS_SERVER_NAME).add(region);<a name="line.357"></a>
-<span class="sourceLineNo">358</span>        } else {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>          correctAssignments.get(sName).add(region);<a name="line.359"></a>
-<span class="sourceLineNo">360</span>        }<a name="line.360"></a>
-<span class="sourceLineNo">361</span>      }<a name="line.361"></a>
-<span class="sourceLineNo">362</span>    }<a name="line.362"></a>
-<span class="sourceLineNo">363</span>    return correctAssignments;<a name="line.363"></a>
-<span class="sourceLineNo">364</span>  }<a name="line.364"></a>
-<span class="sourceLineNo">365</span><a name="line.365"></a>
-<span class="sourceLineNo">366</span>  @Override<a name="line.366"></a>
-<span class="sourceLineNo">367</span>  public void initialize() throws HBaseIOException {<a name="line.367"></a>
-<span class="sourceLineNo">368</span>    try {<a name="line.368"></a>
-<span class="sourceLineNo">369</span>      if (rsGroupInfoManager == null) {<a name="line.369"></a>
-<span class="sourceLineNo">370</span>        List&lt;RSGroupAdminEndpoint&gt; cps =<a name="line.370"></a>
-<span class="sourceLineNo">371</span>          masterServices.getMasterCoprocessorHost().findCoprocessors(RSGroupAdminEndpoint.class);<a name="line.371"></a>
-<span class="sourceLineNo">372</span>        if (cps.size() != 1) {<a name="line.372"></a>
-<span class="sourceLineNo">373</span>          String msg = "Expected one implementation of GroupAdminEndpoint but found " + cps.size();<a name="line.373"></a>
-<span class="sourceLineNo">374</span>          LOG.error(msg);<a name="line.374"></a>
-<span class="sourceLineNo">375</span>          throw new HBaseIOException(msg);<a name="line.375"></a>
-<span class="sourceLineNo">376</span>        }<a name="line.376"></a>
-<span class="sourceLineNo">377</span>        rsGroupInfoManager = cps.get(0).getGroupInfoManager();<a name="line.377"></a>
-<span class="sourceLineNo">378</span>      }<a name="line.378"></a>
-<span class="sourceLineNo">379</span>    } catch (IOException e) {<a name="line.379"></a>
-<span class="sourceLineNo">380</span>      throw new HBaseIOException("Failed to initialize GroupInfoManagerImpl", e);<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>    // Create the balancer<a name="line.383"></a>
-<span class="sourceLineNo">384</span>    Class&lt;? extends LoadBalancer&gt; balancerKlass = config.getClass(HBASE_RSGROUP_LOADBALANCER_CLASS,<a name="line.384"></a>
-<span class="sourceLineNo">385</span>        StochasticLoadBalancer.class, LoadBalancer.class);<a name="line.385"></a>
-<span class="sourceLineNo">386</span>    internalBalancer = ReflectionUtils.newInstance(balancerKlass, config);<a name="line.386"></a>
-<span class="sourceLineNo">387</span>    internalBalancer.setMasterServices(masterServices);<a name="line.387"></a>
-<span class="sourceLineNo">388</span>    internalBalancer.setClusterMetrics(clusterStatus);<a name="line.388"></a>
-<span class="sourceLineNo">389</span>    internalBalancer.setConf(config);<a name="line.389"></a>
-<span class="sourceLineNo">390</span>    internalBalancer.initialize();<a name="line.390"></a>
-<span class="sourceLineNo">391</span>  }<a name="line.391"></a>
-<span class="sourceLineNo">392</span><a name="line.392"></a>
-<span class="sourceLineNo">393</span>  public boolean isOnline() {<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    if (this.rsGroupInfoManager == null) {<a name="line.394"></a>
-<span class="sourceLineNo">395</span>      return false;<a name="line.395"></a>
-<span class="sourceLineNo">396</span>    }<a name="line.396"></a>
-<span class="sourceLineNo">397</span><a name="line.397"></a>
-<span class="sourceLineNo">398</span>    return this.rsGroupInfoManager.isOnline();<a name="line.398"></a>
-<span class="sourceLineNo">399</span>  }<a name="line.399"></a>
-<span class="sourceLineNo">400</span><a name="line.400"></a>
-<span class="sourceLineNo">401</span>  @Override<a name="line.401"></a>
-<span class="sourceLineNo">402</span>  public void setClusterLoad(Map&lt;TableName, Map&lt;ServerName, List&lt;RegionInfo&gt;&gt;&gt; clusterLoad) {<a name="line.402"></a>
-<span class="sourceLineNo">403</span>  }<a name="line.403"></a>
+<span class="sourceLineNo">322</span>      if ((info == null || !info.containsServer(assignedServer.getAddress()))) {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>        LOG.debug("Found misplaced region: " + regionInfo.getRegionNameAsString() +<a name="line.323"></a>
+<span class="sourceLineNo">324</span>            " on server: " + assignedServer +<a name="line.324"></a>
+<span class="sourceLineNo">325</span>            " found in group: " +  otherInfo +<a name="line.325"></a>
+<span class="sourceLineNo">326</span>            " outside of group: " + (info == null ? "UNKNOWN" : info.getName()));<a name="line.326"></a>
+<span class="sourceLineNo">327</span>        misplacedRegions.add(regionInfo);<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>    return misplacedRegions;<a name="line.330"></a>
+<span class="sourceLineNo">331</span>  }<a name="line.331"></a>
+<span class="sourceLineNo">332</span><a name="line.332"></a>
+<span class="sourceLineNo">333</span>  private ServerName findServerForRegion(<a name="line.333"></a>
+<span class="sourceLineNo">334</span>      Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; existingAssignments, RegionInfo region) {<a name="line.334"></a>
+<span class="sourceLineNo">335</span>    for (Map.Entry&lt;ServerName, List&lt;RegionInfo&gt;&gt; entry : existingAssignments.entrySet()) {<a name="line.335"></a>
+<span class="sourceLineNo">336</span>      if (entry.getValue().contains(region)) {<a name="line.336"></a>
+<span class="sourceLineNo">337</span>        return entry.getKey();<a name="line.337"></a>
+<span class="sourceLineNo">338</span>      }<a name="line.338"></a>
+<span class="sourceLineNo">339</span>    }<a name="line.339"></a>
+<span class="sourceLineNo">340</span><a name="line.340"></a>
+<span class="sourceLineNo">341</span>    throw new IllegalStateException("Could not find server for region "<a name="line.341"></a>
+<span class="sourceLineNo">342</span>        + region.getShortNameToLog());<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>  private Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; correctAssignments(<a name="line.345"></a>
+<span class="sourceLineNo">346</span>       Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; existingAssignments)<a name="line.346"></a>
+<span class="sourceLineNo">347</span>  throws HBaseIOException{<a name="line.347"></a>
+<span class="sourceLineNo">348</span>    Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; correctAssignments = new TreeMap&lt;&gt;();<a name="line.348"></a>
+<span class="sourceLineNo">349</span>    correctAssignments.put(LoadBalancer.BOGUS_SERVER_NAME, new LinkedList&lt;&gt;());<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    for (Map.Entry&lt;ServerName, List&lt;RegionInfo&gt;&gt; assignments : existingAssignments.entrySet()){<a name="line.350"></a>
+<span class="sourceLineNo">351</span>      ServerName sName = assignments.getKey();<a name="line.351"></a>
+<span class="sourceLineNo">352</span>      correctAssignments.put(sName, new LinkedList&lt;&gt;());<a name="line.352"></a>
+<span class="sourceLineNo">353</span>      List&lt;RegionInfo&gt; regions = assignments.getValue();<a name="line.353"></a>
+<span class="sourceLineNo">354</span>      for (RegionInfo region : regions) {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>        RSGroupInfo info = null;<a name="line.355"></a>
+<span class="sourceLineNo">356</span>        try {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>          info = rsGroupInfoManager.getRSGroup(<a name="line.357"></a>
+<span class="sourceLineNo">358</span>              rsGroupInfoManager.getRSGroupOfTable(region.getTable()));<a name="line.358"></a>
+<span class="sourceLineNo">359</span>        } catch (IOException exp) {<a name="line.359"></a>
+<span class="sourceLineNo">360</span>          LOG.debug("RSGroup information null for region of table " + region.getTable(),<a name="line.360"></a>
+<span class="sourceLineNo">361</span>              exp);<a name="line.361"></a>
+<span class="sourceLineNo">362</span>        }<a name="line.362"></a>
+<span class="sourceLineNo">363</span>        if ((info == null) || (!info.containsServer(sName.getAddress()))) {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>          correctAssignments.get(LoadBalancer.BOGUS_SERVER_NAME).add(region);<a name="line.364"></a>
+<span class="sourceLineNo">365</span>        } else {<a name="line.365"></a>
+<span class="sourceLineNo">366</span>          correctAssignments.get(sName).add(region);<a name="line.366"></a>
+<span class="sourceLineNo">367</span>        }<a name="line.367"></a>
+<span class="sourceLineNo">368</span>      }<a name="line.368"></a>
+<span class="sourceLineNo">369</span>    }<a name="line.369"></a>
+<span class="sourceLineNo">370</span>    return correctAssignments;<a name="line.370"></a>
+<span class="sourceLineNo">371</span>  }<a name="line.371"></a>
+<span class="sourceLineNo">372</span><a name="line.372"></a>
+<span class="sourceLineNo">373</span>  @Override<a name="line.373"></a>
+<span class="sourceLineNo">374</span>  public void initialize() throws HBaseIOException {<a name="line.374"></a>
+<span class="sourceLineNo">375</span>    try {<a name="line.375"></a>
+<span class="sourceLineNo">376</span>      if (rsGroupInfoManager == null) {<a name="line.376"></a>
+<span class="sourceLineNo">377</span>        List&lt;RSGroupAdminEndpoint&gt; cps =<a name="line.377"></a>
+<span class="sourceLineNo">378</span>          masterServices.getMasterCoprocessorHost().findCoprocessors(RSGroupAdminEndpoint.class);<a name="line.378"></a>
+<span class="sourceLineNo">379</span>        if (cps.size() != 1) {<a name="line.379"></a>
+<span class="sourceLineNo">380</span>          String msg = "Expected one implementation of GroupAdminEndpoint but found " + cps.size();<a name="line.380"></a>
+<span class="sourceLineNo">381</span>          LOG.error(msg);<a name="line.381"></a>
+<span class="sourceLineNo">382</span>          throw new HBaseIOException(msg);<a name="line.382"></a>
+<span class="sourceLineNo">383</span>        }<a name="line.383"></a>
+<span class="sourceLineNo">384</span>        rsGroupInfoManager = cps.get(0).getGroupInfoManager();<a name="line.384"></a>
+<span class="sourceLineNo">385</span>      }<a name="line.385"></a>
+<span class="sourceLineNo">386</span>    } catch (IOException e) {<a name="line.386"></a>
+<span class="sourceLineNo">387</span>      throw new HBaseIOException("Failed to initialize GroupInfoManagerImpl", e);<a name="line.387"></a>
+<span class="sourceLineNo">388</span>    }<a name="line.388"></a>
+<span class="sourceLineNo">389</span><a name="line.389"></a>
+<span class="sourceLineNo">390</span>    // Create the balancer<a name="line.390"></a>
+<span class="sourceLineNo">391</span>    Class&lt;? extends LoadBalancer&gt; balancerKlass = config.getClass(HBASE_RSGROUP_LOADBALANCER_CLASS,<a name="line.391"></a>
+<span class="sourceLineNo">392</span>        StochasticLoadBalancer.class, LoadBalancer.class);<a name="line.392"></a>
+<span class="sourceLineNo">393</span>    internalBalancer = ReflectionUtils.newInstance(balancerKlass, config);<a name="line.393"></a>
+<span class="sourceLineNo">394</span>    internalBalancer.setMasterServices(masterServices);<a name="line.394"></a>
+<span class="sourceLineNo">395</span>    internalBalancer.setClusterMetrics(clusterStatus);<a name="line.395"></a>
+<span class="sourceLineNo">396</span>    internalBalancer.setConf(config);<a name="line.396"></a>
+<span class="sourceLineNo">397</span>    internalBalancer.initialize();<a name="line.397"></a>
+<span class="sourceLineNo">398</span>  }<a name="line.398"></a>
+<span class="sourceLineNo">399</span><a name="line.399"></a>
+<span class="sourceLineNo">400</span>  public boolean isOnline() {<a name="line.400"></a>
+<span class="sourceLineNo">401</span>    if (this.rsGroupInfoManager == null) {<a name="line.401"></a>
+<span class="sourceLineNo">402</span>      return false;<a name="line.402"></a>
+<span class="sourceLineNo">403</span>    }<a name="line.403"></a>
 <span class="sourceLineNo">404</span><a name="line.404"></a>
-<span class="sourceLineNo">405</span>  @Override<a name="line.405"></a>
-<span class="sourceLineNo">406</span>  public void regionOnline(RegionInfo regionInfo, ServerName sn) {<a name="line.406"></a>
-<span class="sourceLineNo">407</span>  }<a name="line.407"></a>
-<span class="sourceLineNo">408</span><a name="line.408"></a>
-<span class="sourceLineNo">409</span>  @Override<a name="line.409"></a>
-<span class="sourceLineNo">410</span>  public void regionOffline(RegionInfo regionInfo) {<a name="line.410"></a>
-<span class="sourceLineNo">411</span>  }<a name="line.411"></a>
-<span class="sourceLineNo">412</span><a name="line.412"></a>
-<span class="sourceLineNo">413</span>  @Override<a name="line.413"></a>
-<span class="sourceLineNo">414</span>  public void onConfigurationChange(Configuration conf) {<a name="line.414"></a>
-<span class="sourceLineNo">415</span>    //DO nothing for now<a name="line.415"></a>
-<span class="sourceLineNo">416</span>  }<a name="line.416"></a>
-<span class="sourceLineNo">417</span><a name="line.417"></a>
-<span class="sourceLineNo">418</span>  @Override<a name="line.418"></a>
-<span class="sourceLineNo">419</span>  public void stop(String why) {<a name="line.419"></a>
-<span class="sourceLineNo">420</span>  }<a name="line.420"></a>
-<span class="sourceLineNo">421</span><a name="line.421"></a>
-<span class="sourceLineNo">422</span>  @Override<a name="line.422"></a>
-<span class="sourceLineNo">423</span>  public boolean isStopped() {<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    return false;<a name="line.424"></a>
-<span class="sourceLineNo">425</span>  }<a name="line.425"></a>
-<span class="sourceLineNo">426</span><a name="line.426"></a>
-<span class="sourceLineNo">427</span>  @VisibleForTesting<a name="line.427"></a>
-<span class="sourceLineNo">428</span>  public void setRsGroupInfoManager(RSGroupInfoManager rsGroupInfoManager) {<a name="line.428"></a>
-<span class="sourceLineNo">429</span>    this.rsGroupInfoManager = rsGroupInfoManager;<a name="line.429"></a>
-<span class="sourceLineNo">430</span>  }<a name="line.430"></a>
-<span class="sourceLineNo">431</span>}<a name="line.431"></a>
+<span class="sourceLineNo">405</span>    return this.rsGroupInfoManager.isOnline();<a name="line.405"></a>
+<span class="sourceLineNo">406</span>  }<a name="line.406"></a>
+<span class="sourceLineNo">407</span><a name="line.407"></a>
+<span class="sourceLineNo">408</span>  @Override<a name="line.408"></a>
+<span class="sourceLineNo">409</span>  public void setClusterLoad(Map&lt;TableName, Map&lt;ServerName, List&lt;RegionInfo&gt;&gt;&gt; clusterLoad) {<a name="line.409"></a>
+<span class="sourceLineNo">410</span>  }<a name="line.410"></a>
+<span class="sourceLineNo">411</span><a name="line.411"></a>
+<span class="sourceLineNo">412</span>  @Override<a name="line.412"></a>
+<span class="sourceLineNo">413</span>  public void regionOnline(RegionInfo regionInfo, ServerName sn) {<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>
+<span class="sourceLineNo">416</span>  @Override<a name="line.416"></a>
+<span class="sourceLineNo">417</span>  public void regionOffline(RegionInfo regionInfo) {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>  }<a name="line.418"></a>
+<span class="sourceLineNo">419</span><a name="line.419"></a>
+<span class="sourceLineNo">420</span>  @Override<a name="line.420"></a>
+<span class="sourceLineNo">421</span>  public void onConfigurationChange(Configuration conf) {<a name="line.421"></a>
+<span class="sourceLineNo">422</span>    //DO nothing for now<a name="line.422"></a>
+<span class="sourceLineNo">423</span>  }<a name="line.423"></a>
+<span class="sourceLineNo">424</span><a name="line.424"></a>
+<span class="sourceLineNo">425</span>  @Override<a name="line.425"></a>
+<span class="sourceLineNo">426</span>  public void stop(String why) {<a name="line.426"></a>
+<span class="sourceLineNo">427</span>  }<a name="line.427"></a>
+<span class="sourceLineNo">428</span><a name="line.428"></a>
+<span class="sourceLineNo">429</span>  @Override<a name="line.429"></a>
+<span class="sourceLineNo">430</span>  public boolean isStopped() {<a name="line.430"></a>
+<span class="sourceLineNo">431</span>    return false;<a name="line.431"></a>
+<span class="sourceLineNo">432</span>  }<a name="line.432"></a>
+<span class="sourceLineNo">433</span><a name="line.433"></a>
+<span class="sourceLineNo">434</span>  @VisibleForTesting<a name="line.434"></a>
+<span class="sourceLineNo">435</span>  public void setRsGroupInfoManager(RSGroupInfoManager rsGroupInfoManager) {<a name="line.435"></a>
+<span class="sourceLineNo">436</span>    this.rsGroupInfoManager = rsGroupInfoManager;<a name="line.436"></a>
+<span class="sourceLineNo">437</span>  }<a name="line.437"></a>
+<span class="sourceLineNo">438</span>}<a name="line.438"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/src-html/org/apache/hadoop/hbase/util/JVMClusterUtil.MasterThread.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/util/JVMClusterUtil.MasterThread.html b/devapidocs/src-html/org/apache/hadoop/hbase/util/JVMClusterUtil.MasterThread.html
index a3f7dcb..d54cf36 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/util/JVMClusterUtil.MasterThread.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/util/JVMClusterUtil.MasterThread.html
@@ -195,77 +195,77 @@
 <span class="sourceLineNo">187</span>      int startTimeout = configuration != null ? Integer.parseInt(<a name="line.187"></a>
 <span class="sourceLineNo">188</span>        configuration.get("hbase.master.start.timeout.localHBaseCluster", "30000")) : 30000;<a name="line.188"></a>
 <span class="sourceLineNo">189</span>      if (System.currentTimeMillis() &gt; startTime + startTimeout) {<a name="line.189"></a>
-<span class="sourceLineNo">190</span>        throw new RuntimeException(String.format("Master not active after %s seconds", startTimeout));<a name="line.190"></a>
-<span class="sourceLineNo">191</span>      }<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    }<a name="line.192"></a>
-<span class="sourceLineNo">193</span><a name="line.193"></a>
-<span class="sourceLineNo">194</span>    if (regionservers != null) {<a name="line.194"></a>
-<span class="sourceLineNo">195</span>      for (JVMClusterUtil.RegionServerThread t: regionservers) {<a name="line.195"></a>
-<span class="sourceLineNo">196</span>        t.start();<a name="line.196"></a>
-<span class="sourceLineNo">197</span>      }<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    }<a name="line.198"></a>
-<span class="sourceLineNo">199</span><a name="line.199"></a>
-<span class="sourceLineNo">200</span>    // Wait for an active master to be initialized (implies being master)<a name="line.200"></a>
-<span class="sourceLineNo">201</span>    //  with this, when we return the cluster is complete<a name="line.201"></a>
-<span class="sourceLineNo">202</span>    startTime = System.currentTimeMillis();<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    final int maxwait = 200000;<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    while (true) {<a name="line.204"></a>
-<span class="sourceLineNo">205</span>      JVMClusterUtil.MasterThread t = findActiveMaster(masters);<a name="line.205"></a>
-<span class="sourceLineNo">206</span>      if (t != null &amp;&amp; t.master.isInitialized()) {<a name="line.206"></a>
-<span class="sourceLineNo">207</span>        return t.master.getServerName().toString();<a name="line.207"></a>
-<span class="sourceLineNo">208</span>      }<a name="line.208"></a>
-<span class="sourceLineNo">209</span>      // REMOVE<a name="line.209"></a>
-<span class="sourceLineNo">210</span>      if (System.currentTimeMillis() &gt; startTime + 10000) {<a name="line.210"></a>
-<span class="sourceLineNo">211</span>        try {<a name="line.211"></a>
-<span class="sourceLineNo">212</span>          Thread.sleep(1000);<a name="line.212"></a>
-<span class="sourceLineNo">213</span>        } catch (InterruptedException e) {<a name="line.213"></a>
-<span class="sourceLineNo">214</span>          throw (InterruptedIOException)new InterruptedIOException().initCause(e);<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>      if (System.currentTimeMillis() &gt; startTime + maxwait) {<a name="line.217"></a>
-<span class="sourceLineNo">218</span>        String msg = "Master not initialized after " + maxwait + "ms seconds";<a name="line.218"></a>
-<span class="sourceLineNo">219</span>        Threads.printThreadInfo(System.out,<a name="line.219"></a>
-<span class="sourceLineNo">220</span>          "Thread dump because: " + msg);<a name="line.220"></a>
-<span class="sourceLineNo">221</span>        throw new RuntimeException(msg);<a name="line.221"></a>
-<span class="sourceLineNo">222</span>      }<a name="line.222"></a>
-<span class="sourceLineNo">223</span>      try {<a name="line.223"></a>
-<span class="sourceLineNo">224</span>        Thread.sleep(100);<a name="line.224"></a>
-<span class="sourceLineNo">225</span>      } catch (InterruptedException e) {<a name="line.225"></a>
-<span class="sourceLineNo">226</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.226"></a>
-<span class="sourceLineNo">227</span>      }<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    }<a name="line.228"></a>
-<span class="sourceLineNo">229</span>  }<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span>  /**<a name="line.231"></a>
-<span class="sourceLineNo">232</span>   * @param masters<a name="line.232"></a>
-<span class="sourceLineNo">233</span>   * @param regionservers<a name="line.233"></a>
-<span class="sourceLineNo">234</span>   */<a name="line.234"></a>
-<span class="sourceLineNo">235</span>  public static void shutdown(final List&lt;MasterThread&gt; masters,<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      final List&lt;RegionServerThread&gt; regionservers) {<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    LOG.debug("Shutting down HBase Cluster");<a name="line.237"></a>
-<span class="sourceLineNo">238</span>    if (masters != null) {<a name="line.238"></a>
-<span class="sourceLineNo">239</span>      // Do backups first.<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      JVMClusterUtil.MasterThread activeMaster = null;<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      for (JVMClusterUtil.MasterThread t : masters) {<a name="line.241"></a>
-<span class="sourceLineNo">242</span>        if (!t.master.isActiveMaster()) {<a name="line.242"></a>
-<span class="sourceLineNo">243</span>          try {<a name="line.243"></a>
-<span class="sourceLineNo">244</span>            t.master.stopMaster();<a name="line.244"></a>
-<span class="sourceLineNo">245</span>          } catch (IOException e) {<a name="line.245"></a>
-<span class="sourceLineNo">246</span>            LOG.error("Exception occurred while stopping master", e);<a name="line.246"></a>
-<span class="sourceLineNo">247</span>          }<a name="line.247"></a>
-<span class="sourceLineNo">248</span>        } else {<a name="line.248"></a>
-<span class="sourceLineNo">249</span>          activeMaster = t;<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>      // Do active after.<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      if (activeMaster != null) {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>        try {<a name="line.254"></a>
-<span class="sourceLineNo">255</span>          activeMaster.master.shutdown();<a name="line.255"></a>
-<span class="sourceLineNo">256</span>        } catch (IOException e) {<a name="line.256"></a>
-<span class="sourceLineNo">257</span>          LOG.error("Exception occurred in HMaster.shutdown()", e);<a name="line.257"></a>
-<span class="sourceLineNo">258</span>        }<a name="line.258"></a>
-<span class="sourceLineNo">259</span>      }<a name="line.259"></a>
-<span class="sourceLineNo">260</span><a name="line.260"></a>
+<span class="sourceLineNo">190</span>        String msg = "Master not active after " + startTimeout + "ms";<a name="line.190"></a>
+<span class="sourceLineNo">191</span>        Threads.printThreadInfo(System.out, "Thread dump because: " + msg);<a name="line.191"></a>
+<span class="sourceLineNo">192</span>        throw new RuntimeException(msg);<a name="line.192"></a>
+<span class="sourceLineNo">193</span>      }<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    }<a name="line.194"></a>
+<span class="sourceLineNo">195</span><a name="line.195"></a>
+<span class="sourceLineNo">196</span>    if (regionservers != null) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>      for (JVMClusterUtil.RegionServerThread t: regionservers) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>        t.start();<a name="line.198"></a>
+<span class="sourceLineNo">199</span>      }<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    }<a name="line.200"></a>
+<span class="sourceLineNo">201</span><a name="line.201"></a>
+<span class="sourceLineNo">202</span>    // Wait for an active master to be initialized (implies being master)<a name="line.202"></a>
+<span class="sourceLineNo">203</span>    //  with this, when we return the cluster is complete<a name="line.203"></a>
+<span class="sourceLineNo">204</span>    startTime = System.currentTimeMillis();<a name="line.204"></a>
+<span class="sourceLineNo">205</span>    final int maxwait = 200000;<a name="line.205"></a>
+<span class="sourceLineNo">206</span>    while (true) {<a name="line.206"></a>
+<span class="sourceLineNo">207</span>      JVMClusterUtil.MasterThread t = findActiveMaster(masters);<a name="line.207"></a>
+<span class="sourceLineNo">208</span>      if (t != null &amp;&amp; t.master.isInitialized()) {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>        return t.master.getServerName().toString();<a name="line.209"></a>
+<span class="sourceLineNo">210</span>      }<a name="line.210"></a>
+<span class="sourceLineNo">211</span>      // REMOVE<a name="line.211"></a>
+<span class="sourceLineNo">212</span>      if (System.currentTimeMillis() &gt; startTime + 10000) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>        try {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>          Thread.sleep(1000);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>        } catch (InterruptedException e) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>          throw (InterruptedIOException)new InterruptedIOException().initCause(e);<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>      if (System.currentTimeMillis() &gt; startTime + maxwait) {<a name="line.219"></a>
+<span class="sourceLineNo">220</span>        String msg = "Master not initialized after " + maxwait + "ms seconds";<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        Threads.printThreadInfo(System.out, "Thread dump because: " + msg);<a name="line.221"></a>
+<span class="sourceLineNo">222</span>        throw new RuntimeException(msg);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>      }<a name="line.223"></a>
+<span class="sourceLineNo">224</span>      try {<a name="line.224"></a>
+<span class="sourceLineNo">225</span>        Thread.sleep(100);<a name="line.225"></a>
+<span class="sourceLineNo">226</span>      } catch (InterruptedException e) {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.227"></a>
+<span class="sourceLineNo">228</span>      }<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    }<a name="line.229"></a>
+<span class="sourceLineNo">230</span>  }<a name="line.230"></a>
+<span class="sourceLineNo">231</span><a name="line.231"></a>
+<span class="sourceLineNo">232</span>  /**<a name="line.232"></a>
+<span class="sourceLineNo">233</span>   * @param masters<a name="line.233"></a>
+<span class="sourceLineNo">234</span>   * @param regionservers<a name="line.234"></a>
+<span class="sourceLineNo">235</span>   */<a name="line.235"></a>
+<span class="sourceLineNo">236</span>  public static void shutdown(final List&lt;MasterThread&gt; masters,<a name="line.236"></a>
+<span class="sourceLineNo">237</span>      final List&lt;RegionServerThread&gt; regionservers) {<a name="line.237"></a>
+<span class="sourceLineNo">238</span>    LOG.debug("Shutting down HBase Cluster");<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    if (masters != null) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>      // Do backups first.<a name="line.240"></a>
+<span class="sourceLineNo">241</span>      JVMClusterUtil.MasterThread activeMaster = null;<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      for (JVMClusterUtil.MasterThread t : masters) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>        if (!t.master.isActiveMaster()) {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>          try {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>            t.master.stopMaster();<a name="line.245"></a>
+<span class="sourceLineNo">246</span>          } catch (IOException e) {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>            LOG.error("Exception occurred while stopping master", e);<a name="line.247"></a>
+<span class="sourceLineNo">248</span>          }<a name="line.248"></a>
+<span class="sourceLineNo">249</span>        } else {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>          activeMaster = t;<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        }<a name="line.251"></a>
+<span class="sourceLineNo">252</span>      }<a name="line.252"></a>
+<span class="sourceLineNo">253</span>      // Do active after.<a name="line.253"></a>
+<span class="sourceLineNo">254</span>      if (activeMaster != null) {<a name="line.254"></a>
+<span class="sourceLineNo">255</span>        try {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>          activeMaster.master.shutdown();<a name="line.256"></a>
+<span class="sourceLineNo">257</span>        } catch (IOException e) {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>          LOG.error("Exception occurred in HMaster.shutdown()", e);<a name="line.258"></a>
+<span class="sourceLineNo">259</span>        }<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      }<a name="line.260"></a>
 <span class="sourceLineNo">261</span>    }<a name="line.261"></a>
 <span class="sourceLineNo">262</span>    boolean wasInterrupted = false;<a name="line.262"></a>
 <span class="sourceLineNo">263</span>    final long maxTime = System.currentTimeMillis() + 30 * 1000;<a name="line.263"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/src-html/org/apache/hadoop/hbase/util/JVMClusterUtil.RegionServerThread.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/util/JVMClusterUtil.RegionServerThread.html b/devapidocs/src-html/org/apache/hadoop/hbase/util/JVMClusterUtil.RegionServerThread.html
index a3f7dcb..d54cf36 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/util/JVMClusterUtil.RegionServerThread.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/util/JVMClusterUtil.RegionServerThread.html
@@ -195,77 +195,77 @@
 <span class="sourceLineNo">187</span>      int startTimeout = configuration != null ? Integer.parseInt(<a name="line.187"></a>
 <span class="sourceLineNo">188</span>        configuration.get("hbase.master.start.timeout.localHBaseCluster", "30000")) : 30000;<a name="line.188"></a>
 <span class="sourceLineNo">189</span>      if (System.currentTimeMillis() &gt; startTime + startTimeout) {<a name="line.189"></a>
-<span class="sourceLineNo">190</span>        throw new RuntimeException(String.format("Master not active after %s seconds", startTimeout));<a name="line.190"></a>
-<span class="sourceLineNo">191</span>      }<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    }<a name="line.192"></a>
-<span class="sourceLineNo">193</span><a name="line.193"></a>
-<span class="sourceLineNo">194</span>    if (regionservers != null) {<a name="line.194"></a>
-<span class="sourceLineNo">195</span>      for (JVMClusterUtil.RegionServerThread t: regionservers) {<a name="line.195"></a>
-<span class="sourceLineNo">196</span>        t.start();<a name="line.196"></a>
-<span class="sourceLineNo">197</span>      }<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    }<a name="line.198"></a>
-<span class="sourceLineNo">199</span><a name="line.199"></a>
-<span class="sourceLineNo">200</span>    // Wait for an active master to be initialized (implies being master)<a name="line.200"></a>
-<span class="sourceLineNo">201</span>    //  with this, when we return the cluster is complete<a name="line.201"></a>
-<span class="sourceLineNo">202</span>    startTime = System.currentTimeMillis();<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    final int maxwait = 200000;<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    while (true) {<a name="line.204"></a>
-<span class="sourceLineNo">205</span>      JVMClusterUtil.MasterThread t = findActiveMaster(masters);<a name="line.205"></a>
-<span class="sourceLineNo">206</span>      if (t != null &amp;&amp; t.master.isInitialized()) {<a name="line.206"></a>
-<span class="sourceLineNo">207</span>        return t.master.getServerName().toString();<a name="line.207"></a>
-<span class="sourceLineNo">208</span>      }<a name="line.208"></a>
-<span class="sourceLineNo">209</span>      // REMOVE<a name="line.209"></a>
-<span class="sourceLineNo">210</span>      if (System.currentTimeMillis() &gt; startTime + 10000) {<a name="line.210"></a>
-<span class="sourceLineNo">211</span>        try {<a name="line.211"></a>
-<span class="sourceLineNo">212</span>          Thread.sleep(1000);<a name="line.212"></a>
-<span class="sourceLineNo">213</span>        } catch (InterruptedException e) {<a name="line.213"></a>
-<span class="sourceLineNo">214</span>          throw (InterruptedIOException)new InterruptedIOException().initCause(e);<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>      if (System.currentTimeMillis() &gt; startTime + maxwait) {<a name="line.217"></a>
-<span class="sourceLineNo">218</span>        String msg = "Master not initialized after " + maxwait + "ms seconds";<a name="line.218"></a>
-<span class="sourceLineNo">219</span>        Threads.printThreadInfo(System.out,<a name="line.219"></a>
-<span class="sourceLineNo">220</span>          "Thread dump because: " + msg);<a name="line.220"></a>
-<span class="sourceLineNo">221</span>        throw new RuntimeException(msg);<a name="line.221"></a>
-<span class="sourceLineNo">222</span>      }<a name="line.222"></a>
-<span class="sourceLineNo">223</span>      try {<a name="line.223"></a>
-<span class="sourceLineNo">224</span>        Thread.sleep(100);<a name="line.224"></a>
-<span class="sourceLineNo">225</span>      } catch (InterruptedException e) {<a name="line.225"></a>
-<span class="sourceLineNo">226</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.226"></a>
-<span class="sourceLineNo">227</span>      }<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    }<a name="line.228"></a>
-<span class="sourceLineNo">229</span>  }<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span>  /**<a name="line.231"></a>
-<span class="sourceLineNo">232</span>   * @param masters<a name="line.232"></a>
-<span class="sourceLineNo">233</span>   * @param regionservers<a name="line.233"></a>
-<span class="sourceLineNo">234</span>   */<a name="line.234"></a>
-<span class="sourceLineNo">235</span>  public static void shutdown(final List&lt;MasterThread&gt; masters,<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      final List&lt;RegionServerThread&gt; regionservers) {<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    LOG.debug("Shutting down HBase Cluster");<a name="line.237"></a>
-<span class="sourceLineNo">238</span>    if (masters != null) {<a name="line.238"></a>
-<span class="sourceLineNo">239</span>      // Do backups first.<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      JVMClusterUtil.MasterThread activeMaster = null;<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      for (JVMClusterUtil.MasterThread t : masters) {<a name="line.241"></a>
-<span class="sourceLineNo">242</span>        if (!t.master.isActiveMaster()) {<a name="line.242"></a>
-<span class="sourceLineNo">243</span>          try {<a name="line.243"></a>
-<span class="sourceLineNo">244</span>            t.master.stopMaster();<a name="line.244"></a>
-<span class="sourceLineNo">245</span>          } catch (IOException e) {<a name="line.245"></a>
-<span class="sourceLineNo">246</span>            LOG.error("Exception occurred while stopping master", e);<a name="line.246"></a>
-<span class="sourceLineNo">247</span>          }<a name="line.247"></a>
-<span class="sourceLineNo">248</span>        } else {<a name="line.248"></a>
-<span class="sourceLineNo">249</span>          activeMaster = t;<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>      // Do active after.<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      if (activeMaster != null) {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>        try {<a name="line.254"></a>
-<span class="sourceLineNo">255</span>          activeMaster.master.shutdown();<a name="line.255"></a>
-<span class="sourceLineNo">256</span>        } catch (IOException e) {<a name="line.256"></a>
-<span class="sourceLineNo">257</span>          LOG.error("Exception occurred in HMaster.shutdown()", e);<a name="line.257"></a>
-<span class="sourceLineNo">258</span>        }<a name="line.258"></a>
-<span class="sourceLineNo">259</span>      }<a name="line.259"></a>
-<span class="sourceLineNo">260</span><a name="line.260"></a>
+<span class="sourceLineNo">190</span>        String msg = "Master not active after " + startTimeout + "ms";<a name="line.190"></a>
+<span class="sourceLineNo">191</span>        Threads.printThreadInfo(System.out, "Thread dump because: " + msg);<a name="line.191"></a>
+<span class="sourceLineNo">192</span>        throw new RuntimeException(msg);<a name="line.192"></a>
+<span class="sourceLineNo">193</span>      }<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    }<a name="line.194"></a>
+<span class="sourceLineNo">195</span><a name="line.195"></a>
+<span class="sourceLineNo">196</span>    if (regionservers != null) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>      for (JVMClusterUtil.RegionServerThread t: regionservers) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>        t.start();<a name="line.198"></a>
+<span class="sourceLineNo">199</span>      }<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    }<a name="line.200"></a>
+<span class="sourceLineNo">201</span><a name="line.201"></a>
+<span class="sourceLineNo">202</span>    // Wait for an active master to be initialized (implies being master)<a name="line.202"></a>
+<span class="sourceLineNo">203</span>    //  with this, when we return the cluster is complete<a name="line.203"></a>
+<span class="sourceLineNo">204</span>    startTime = System.currentTimeMillis();<a name="line.204"></a>
+<span class="sourceLineNo">205</span>    final int maxwait = 200000;<a name="line.205"></a>
+<span class="sourceLineNo">206</span>    while (true) {<a name="line.206"></a>
+<span class="sourceLineNo">207</span>      JVMClusterUtil.MasterThread t = findActiveMaster(masters);<a name="line.207"></a>
+<span class="sourceLineNo">208</span>      if (t != null &amp;&amp; t.master.isInitialized()) {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>        return t.master.getServerName().toString();<a name="line.209"></a>
+<span class="sourceLineNo">210</span>      }<a name="line.210"></a>
+<span class="sourceLineNo">211</span>      // REMOVE<a name="line.211"></a>
+<span class="sourceLineNo">212</span>      if (System.currentTimeMillis() &gt; startTime + 10000) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>        try {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>          Thread.sleep(1000);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>        } catch (InterruptedException e) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>          throw (InterruptedIOException)new InterruptedIOException().initCause(e);<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>      if (System.currentTimeMillis() &gt; startTime + maxwait) {<a name="line.219"></a>
+<span class="sourceLineNo">220</span>        String msg = "Master not initialized after " + maxwait + "ms seconds";<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        Threads.printThreadInfo(System.out, "Thread dump because: " + msg);<a name="line.221"></a>
+<span class="sourceLineNo">222</span>        throw new RuntimeException(msg);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>      }<a name="line.223"></a>
+<span class="sourceLineNo">224</span>      try {<a name="line.224"></a>
+<span class="sourceLineNo">225</span>        Thread.sleep(100);<a name="line.225"></a>
+<span class="sourceLineNo">226</span>      } catch (InterruptedException e) {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.227"></a>
+<span class="sourceLineNo">228</span>      }<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    }<a name="line.229"></a>
+<span class="sourceLineNo">230</span>  }<a name="line.230"></a>
+<span class="sourceLineNo">231</span><a name="line.231"></a>
+<span class="sourceLineNo">232</span>  /**<a name="line.232"></a>
+<span class="sourceLineNo">233</span>   * @param masters<a name="line.233"></a>
+<span class="sourceLineNo">234</span>   * @param regionservers<a name="line.234"></a>
+<span class="sourceLineNo">235</span>   */<a name="line.235"></a>
+<span class="sourceLineNo">236</span>  public static void shutdown(final List&lt;MasterThread&gt; masters,<a name="line.236"></a>
+<span class="sourceLineNo">237</span>      final List&lt;RegionServerThread&gt; regionservers) {<a name="line.237"></a>
+<span class="sourceLineNo">238</span>    LOG.debug("Shutting down HBase Cluster");<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    if (masters != null) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>      // Do backups first.<a name="line.240"></a>
+<span class="sourceLineNo">241</span>      JVMClusterUtil.MasterThread activeMaster = null;<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      for (JVMClusterUtil.MasterThread t : masters) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>        if (!t.master.isActiveMaster()) {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>          try {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>            t.master.stopMaster();<a name="line.245"></a>
+<span class="sourceLineNo">246</span>          } catch (IOException e) {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>            LOG.error("Exception occurred while stopping master", e);<a name="line.247"></a>
+<span class="sourceLineNo">248</span>          }<a name="line.248"></a>
+<span class="sourceLineNo">249</span>        } else {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>          activeMaster = t;<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        }<a name="line.251"></a>
+<span class="sourceLineNo">252</span>      }<a name="line.252"></a>
+<span class="sourceLineNo">253</span>      // Do active after.<a name="line.253"></a>
+<span class="sourceLineNo">254</span>      if (activeMaster != null) {<a name="line.254"></a>
+<span class="sourceLineNo">255</span>        try {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>          activeMaster.master.shutdown();<a name="line.256"></a>
+<span class="sourceLineNo">257</span>        } catch (IOException e) {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>          LOG.error("Exception occurred in HMaster.shutdown()", e);<a name="line.258"></a>
+<span class="sourceLineNo">259</span>        }<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      }<a name="line.260"></a>
 <span class="sourceLineNo">261</span>    }<a name="line.261"></a>
 <span class="sourceLineNo">262</span>    boolean wasInterrupted = false;<a name="line.262"></a>
 <span class="sourceLineNo">263</span>    final long maxTime = System.currentTimeMillis() + 30 * 1000;<a name="line.263"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/src-html/org/apache/hadoop/hbase/util/JVMClusterUtil.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/util/JVMClusterUtil.html b/devapidocs/src-html/org/apache/hadoop/hbase/util/JVMClusterUtil.html
index a3f7dcb..d54cf36 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/util/JVMClusterUtil.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/util/JVMClusterUtil.html
@@ -195,77 +195,77 @@
 <span class="sourceLineNo">187</span>      int startTimeout = configuration != null ? Integer.parseInt(<a name="line.187"></a>
 <span class="sourceLineNo">188</span>        configuration.get("hbase.master.start.timeout.localHBaseCluster", "30000")) : 30000;<a name="line.188"></a>
 <span class="sourceLineNo">189</span>      if (System.currentTimeMillis() &gt; startTime + startTimeout) {<a name="line.189"></a>
-<span class="sourceLineNo">190</span>        throw new RuntimeException(String.format("Master not active after %s seconds", startTimeout));<a name="line.190"></a>
-<span class="sourceLineNo">191</span>      }<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    }<a name="line.192"></a>
-<span class="sourceLineNo">193</span><a name="line.193"></a>
-<span class="sourceLineNo">194</span>    if (regionservers != null) {<a name="line.194"></a>
-<span class="sourceLineNo">195</span>      for (JVMClusterUtil.RegionServerThread t: regionservers) {<a name="line.195"></a>
-<span class="sourceLineNo">196</span>        t.start();<a name="line.196"></a>
-<span class="sourceLineNo">197</span>      }<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    }<a name="line.198"></a>
-<span class="sourceLineNo">199</span><a name="line.199"></a>
-<span class="sourceLineNo">200</span>    // Wait for an active master to be initialized (implies being master)<a name="line.200"></a>
-<span class="sourceLineNo">201</span>    //  with this, when we return the cluster is complete<a name="line.201"></a>
-<span class="sourceLineNo">202</span>    startTime = System.currentTimeMillis();<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    final int maxwait = 200000;<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    while (true) {<a name="line.204"></a>
-<span class="sourceLineNo">205</span>      JVMClusterUtil.MasterThread t = findActiveMaster(masters);<a name="line.205"></a>
-<span class="sourceLineNo">206</span>      if (t != null &amp;&amp; t.master.isInitialized()) {<a name="line.206"></a>
-<span class="sourceLineNo">207</span>        return t.master.getServerName().toString();<a name="line.207"></a>
-<span class="sourceLineNo">208</span>      }<a name="line.208"></a>
-<span class="sourceLineNo">209</span>      // REMOVE<a name="line.209"></a>
-<span class="sourceLineNo">210</span>      if (System.currentTimeMillis() &gt; startTime + 10000) {<a name="line.210"></a>
-<span class="sourceLineNo">211</span>        try {<a name="line.211"></a>
-<span class="sourceLineNo">212</span>          Thread.sleep(1000);<a name="line.212"></a>
-<span class="sourceLineNo">213</span>        } catch (InterruptedException e) {<a name="line.213"></a>
-<span class="sourceLineNo">214</span>          throw (InterruptedIOException)new InterruptedIOException().initCause(e);<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>      if (System.currentTimeMillis() &gt; startTime + maxwait) {<a name="line.217"></a>
-<span class="sourceLineNo">218</span>        String msg = "Master not initialized after " + maxwait + "ms seconds";<a name="line.218"></a>
-<span class="sourceLineNo">219</span>        Threads.printThreadInfo(System.out,<a name="line.219"></a>
-<span class="sourceLineNo">220</span>          "Thread dump because: " + msg);<a name="line.220"></a>
-<span class="sourceLineNo">221</span>        throw new RuntimeException(msg);<a name="line.221"></a>
-<span class="sourceLineNo">222</span>      }<a name="line.222"></a>
-<span class="sourceLineNo">223</span>      try {<a name="line.223"></a>
-<span class="sourceLineNo">224</span>        Thread.sleep(100);<a name="line.224"></a>
-<span class="sourceLineNo">225</span>      } catch (InterruptedException e) {<a name="line.225"></a>
-<span class="sourceLineNo">226</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.226"></a>
-<span class="sourceLineNo">227</span>      }<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    }<a name="line.228"></a>
-<span class="sourceLineNo">229</span>  }<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span>  /**<a name="line.231"></a>
-<span class="sourceLineNo">232</span>   * @param masters<a name="line.232"></a>
-<span class="sourceLineNo">233</span>   * @param regionservers<a name="line.233"></a>
-<span class="sourceLineNo">234</span>   */<a name="line.234"></a>
-<span class="sourceLineNo">235</span>  public static void shutdown(final List&lt;MasterThread&gt; masters,<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      final List&lt;RegionServerThread&gt; regionservers) {<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    LOG.debug("Shutting down HBase Cluster");<a name="line.237"></a>
-<span class="sourceLineNo">238</span>    if (masters != null) {<a name="line.238"></a>
-<span class="sourceLineNo">239</span>      // Do backups first.<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      JVMClusterUtil.MasterThread activeMaster = null;<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      for (JVMClusterUtil.MasterThread t : masters) {<a name="line.241"></a>
-<span class="sourceLineNo">242</span>        if (!t.master.isActiveMaster()) {<a name="line.242"></a>
-<span class="sourceLineNo">243</span>          try {<a name="line.243"></a>
-<span class="sourceLineNo">244</span>            t.master.stopMaster();<a name="line.244"></a>
-<span class="sourceLineNo">245</span>          } catch (IOException e) {<a name="line.245"></a>
-<span class="sourceLineNo">246</span>            LOG.error("Exception occurred while stopping master", e);<a name="line.246"></a>
-<span class="sourceLineNo">247</span>          }<a name="line.247"></a>
-<span class="sourceLineNo">248</span>        } else {<a name="line.248"></a>
-<span class="sourceLineNo">249</span>          activeMaster = t;<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>      // Do active after.<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      if (activeMaster != null) {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>        try {<a name="line.254"></a>
-<span class="sourceLineNo">255</span>          activeMaster.master.shutdown();<a name="line.255"></a>
-<span class="sourceLineNo">256</span>        } catch (IOException e) {<a name="line.256"></a>
-<span class="sourceLineNo">257</span>          LOG.error("Exception occurred in HMaster.shutdown()", e);<a name="line.257"></a>
-<span class="sourceLineNo">258</span>        }<a name="line.258"></a>
-<span class="sourceLineNo">259</span>      }<a name="line.259"></a>
-<span class="sourceLineNo">260</span><a name="line.260"></a>
+<span class="sourceLineNo">190</span>        String msg = "Master not active after " + startTimeout + "ms";<a name="line.190"></a>
+<span class="sourceLineNo">191</span>        Threads.printThreadInfo(System.out, "Thread dump because: " + msg);<a name="line.191"></a>
+<span class="sourceLineNo">192</span>        throw new RuntimeException(msg);<a name="line.192"></a>
+<span class="sourceLineNo">193</span>      }<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    }<a name="line.194"></a>
+<span class="sourceLineNo">195</span><a name="line.195"></a>
+<span class="sourceLineNo">196</span>    if (regionservers != null) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>      for (JVMClusterUtil.RegionServerThread t: regionservers) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>        t.start();<a name="line.198"></a>
+<span class="sourceLineNo">199</span>      }<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    }<a name="line.200"></a>
+<span class="sourceLineNo">201</span><a name="line.201"></a>
+<span class="sourceLineNo">202</span>    // Wait for an active master to be initialized (implies being master)<a name="line.202"></a>
+<span class="sourceLineNo">203</span>    //  with this, when we return the cluster is complete<a name="line.203"></a>
+<span class="sourceLineNo">204</span>    startTime = System.currentTimeMillis();<a name="line.204"></a>
+<span class="sourceLineNo">205</span>    final int maxwait = 200000;<a name="line.205"></a>
+<span class="sourceLineNo">206</span>    while (true) {<a name="line.206"></a>
+<span class="sourceLineNo">207</span>      JVMClusterUtil.MasterThread t = findActiveMaster(masters);<a name="line.207"></a>
+<span class="sourceLineNo">208</span>      if (t != null &amp;&amp; t.master.isInitialized()) {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>        return t.master.getServerName().toString();<a name="line.209"></a>
+<span class="sourceLineNo">210</span>      }<a name="line.210"></a>
+<span class="sourceLineNo">211</span>      // REMOVE<a name="line.211"></a>
+<span class="sourceLineNo">212</span>      if (System.currentTimeMillis() &gt; startTime + 10000) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>        try {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>          Thread.sleep(1000);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>        } catch (InterruptedException e) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>          throw (InterruptedIOException)new InterruptedIOException().initCause(e);<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>      if (System.currentTimeMillis() &gt; startTime + maxwait) {<a name="line.219"></a>
+<span class="sourceLineNo">220</span>        String msg = "Master not initialized after " + maxwait + "ms seconds";<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        Threads.printThreadInfo(System.out, "Thread dump because: " + msg);<a name="line.221"></a>
+<span class="sourceLineNo">222</span>        throw new RuntimeException(msg);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>      }<a name="line.223"></a>
+<span class="sourceLineNo">224</span>      try {<a name="line.224"></a>
+<span class="sourceLineNo">225</span>        Thread.sleep(100);<a name="line.225"></a>
+<span class="sourceLineNo">226</span>      } catch (InterruptedException e) {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.227"></a>
+<span class="sourceLineNo">228</span>      }<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    }<a name="line.229"></a>
+<span class="sourceLineNo">230</span>  }<a name="line.230"></a>
+<span class="sourceLineNo">231</span><a name="line.231"></a>
+<span class="sourceLineNo">232</span>  /**<a name="line.232"></a>
+<span class="sourceLineNo">233</span>   * @param masters<a name="line.233"></a>
+<span class="sourceLineNo">234</span>   * @param regionservers<a name="line.234"></a>
+<span class="sourceLineNo">235</span>   */<a name="line.235"></a>
+<span class="sourceLineNo">236</span>  public static void shutdown(final List&lt;MasterThread&gt; masters,<a name="line.236"></a>
+<span class="sourceLineNo">237</span>      final List&lt;RegionServerThread&gt; regionservers) {<a name="line.237"></a>
+<span class="sourceLineNo">238</span>    LOG.debug("Shutting down HBase Cluster");<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    if (masters != null) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>      // Do backups first.<a name="line.240"></a>
+<span class="sourceLineNo">241</span>      JVMClusterUtil.MasterThread activeMaster = null;<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      for (JVMClusterUtil.MasterThread t : masters) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>        if (!t.master.isActiveMaster()) {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>          try {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>            t.master.stopMaster();<a name="line.245"></a>
+<span class="sourceLineNo">246</span>          } catch (IOException e) {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>            LOG.error("Exception occurred while stopping master", e);<a name="line.247"></a>
+<span class="sourceLineNo">248</span>          }<a name="line.248"></a>
+<span class="sourceLineNo">249</span>        } else {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>          activeMaster = t;<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        }<a name="line.251"></a>
+<span class="sourceLineNo">252</span>      }<a name="line.252"></a>
+<span class="sourceLineNo">253</span>      // Do active after.<a name="line.253"></a>
+<span class="sourceLineNo">254</span>      if (activeMaster != null) {<a name="line.254"></a>
+<span class="sourceLineNo">255</span>        try {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>          activeMaster.master.shutdown();<a name="line.256"></a>
+<span class="sourceLineNo">257</span>        } catch (IOException e) {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>          LOG.error("Exception occurred in HMaster.shutdown()", e);<a name="line.258"></a>
+<span class="sourceLineNo">259</span>        }<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      }<a name="line.260"></a>
 <span class="sourceLineNo">261</span>    }<a name="line.261"></a>
 <span class="sourceLineNo">262</span>    boolean wasInterrupted = false;<a name="line.262"></a>
 <span class="sourceLineNo">263</span>    final long maxTime = System.currentTimeMillis() + 30 * 1000;<a name="line.263"></a>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html b/devapidocs/src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html
index dde6503..d3b1e65 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html
@@ -90,758 +90,680 @@
 <span class="sourceLineNo">082</span>  private Watcher watcher;<a name="line.82"></a>
 <span class="sourceLineNo">083</span>  private int sessionTimeout;<a name="line.83"></a>
 <span class="sourceLineNo">084</span>  private String quorumServers;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>  private final ZKMetricsListener metrics;<a name="line.85"></a>
-<span class="sourceLineNo">086</span><a name="line.86"></a>
-<span class="sourceLineNo">087</span>  public RecoverableZooKeeper(String quorumServers, int sessionTimeout,<a name="line.87"></a>
-<span class="sourceLineNo">088</span>      Watcher watcher, int maxRetries, int retryIntervalMillis, int maxSleepTime)<a name="line.88"></a>
-<span class="sourceLineNo">089</span>  throws IOException {<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    this(quorumServers, sessionTimeout, watcher, maxRetries, retryIntervalMillis, maxSleepTime,<a name="line.90"></a>
-<span class="sourceLineNo">091</span>        null);<a name="line.91"></a>
-<span class="sourceLineNo">092</span>  }<a name="line.92"></a>
-<span class="sourceLineNo">093</span><a name="line.93"></a>
-<span class="sourceLineNo">094</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="DE_MIGHT_IGNORE",<a name="line.94"></a>
-<span class="sourceLineNo">095</span>      justification="None. Its always been this way.")<a name="line.95"></a>
-<span class="sourceLineNo">096</span>  public RecoverableZooKeeper(String quorumServers, int sessionTimeout,<a name="line.96"></a>
-<span class="sourceLineNo">097</span>      Watcher watcher, int maxRetries, int retryIntervalMillis, int maxSleepTime, String identifier)<a name="line.97"></a>
-<span class="sourceLineNo">098</span>  throws IOException {<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    // TODO: Add support for zk 'chroot'; we don't add it to the quorumServers String as we should.<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    this.retryCounterFactory =<a name="line.100"></a>
-<span class="sourceLineNo">101</span>      new RetryCounterFactory(maxRetries+1, retryIntervalMillis, maxSleepTime);<a name="line.101"></a>
-<span class="sourceLineNo">102</span><a name="line.102"></a>
-<span class="sourceLineNo">103</span>    if (identifier == null || identifier.length() == 0) {<a name="line.103"></a>
-<span class="sourceLineNo">104</span>      // the identifier = processID@hostName<a name="line.104"></a>
-<span class="sourceLineNo">105</span>      identifier = ManagementFactory.getRuntimeMXBean().getName();<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    }<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    LOG.info("Process identifier=" + identifier +<a name="line.107"></a>
-<span class="sourceLineNo">108</span>      " connecting to ZooKeeper ensemble=" + quorumServers);<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    this.identifier = identifier;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>    this.id = Bytes.toBytes(identifier);<a name="line.110"></a>
-<span class="sourceLineNo">111</span><a name="line.111"></a>
-<span class="sourceLineNo">112</span>    this.watcher = watcher;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    this.sessionTimeout = sessionTimeout;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    this.quorumServers = quorumServers;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    this.metrics = new ZKMetrics();<a name="line.115"></a>
-<span class="sourceLineNo">116</span><a name="line.116"></a>
-<span class="sourceLineNo">117</span>    try {<a name="line.117"></a>
-<span class="sourceLineNo">118</span>      checkZk();<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    } catch (Exception x) {<a name="line.119"></a>
-<span class="sourceLineNo">120</span>      /* ignore */<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    }<a name="line.121"></a>
-<span class="sourceLineNo">122</span>  }<a name="line.122"></a>
-<span class="sourceLineNo">123</span><a name="line.123"></a>
-<span class="sourceLineNo">124</span>  /**<a name="line.124"></a>
-<span class="sourceLineNo">125</span>   * Try to create a ZooKeeper connection. Turns any exception encountered into a<a name="line.125"></a>
-<span class="sourceLineNo">126</span>   * KeeperException.OperationTimeoutException so it can retried.<a name="line.126"></a>
-<span class="sourceLineNo">127</span>   * @return The created ZooKeeper connection object<a name="line.127"></a>
-<span class="sourceLineNo">128</span>   * @throws KeeperException if a ZooKeeper operation fails<a name="line.128"></a>
-<span class="sourceLineNo">129</span>   */<a name="line.129"></a>
-<span class="sourceLineNo">130</span>  protected synchronized ZooKeeper checkZk() throws KeeperException {<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    if (this.zk == null) {<a name="line.131"></a>
-<span class="sourceLineNo">132</span>      try {<a name="line.132"></a>
-<span class="sourceLineNo">133</span>        this.zk = new ZooKeeper(quorumServers, sessionTimeout, watcher);<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      } catch (IOException ex) {<a name="line.134"></a>
-<span class="sourceLineNo">135</span>        LOG.warn("Unable to create ZooKeeper Connection", ex);<a name="line.135"></a>
-<span class="sourceLineNo">136</span>        throw new KeeperException.OperationTimeoutException();<a name="line.136"></a>
-<span class="sourceLineNo">137</span>      }<a name="line.137"></a>
-<span class="sourceLineNo">138</span>    }<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    return zk;<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>  public synchronized void reconnectAfterExpiration()<a name="line.142"></a>
-<span class="sourceLineNo">143</span>        throws IOException, KeeperException, InterruptedException {<a name="line.143"></a>
-<span class="sourceLineNo">144</span>    if (zk != null) {<a name="line.144"></a>
-<span class="sourceLineNo">145</span>      LOG.info("Closing dead ZooKeeper connection, session" +<a name="line.145"></a>
-<span class="sourceLineNo">146</span>        " was: 0x"+Long.toHexString(zk.getSessionId()));<a name="line.146"></a>
-<span class="sourceLineNo">147</span>      zk.close();<a name="line.147"></a>
-<span class="sourceLineNo">148</span>      // reset the ZooKeeper connection<a name="line.148"></a>
-<span class="sourceLineNo">149</span>      zk = null;<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    }<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    checkZk();<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    LOG.info("Recreated a ZooKeeper, session" +<a name="line.152"></a>
-<span class="sourceLineNo">153</span>      " is: 0x"+Long.toHexString(zk.getSessionId()));<a name="line.153"></a>
-<span class="sourceLineNo">154</span>  }<a name="line.154"></a>
-<span class="sourceLineNo">155</span><a name="line.155"></a>
-<span class="sourceLineNo">156</span>  /**<a name="line.156"></a>
-<span class="sourceLineNo">157</span>   * delete is an idempotent operation. Retry before throwing exception.<a name="line.157"></a>
-<span class="sourceLineNo">158</span>   * This function will not throw NoNodeException if the path does not<a name="line.158"></a>
-<span class="sourceLineNo">159</span>   * exist.<a name="line.159"></a>
-<span class="sourceLineNo">160</span>   */<a name="line.160"></a>
-<span class="sourceLineNo">161</span>  public void delete(String path, int version) throws InterruptedException, KeeperException {<a name="line.161"></a>
-<span class="sourceLineNo">162</span>    try (TraceScope scope = TraceUtil.createTrace("RecoverableZookeeper.delete")) {<a name="line.162"></a>
-<span class="sourceLineNo">163</span>      RetryCounter retryCounter = retryCounterFactory.create();<a name="line.163"></a>
-<span class="sourceLineNo">164</span>      boolean isRetry = false; // False for first attempt, true for all retries.<a name="line.164"></a>
-<span class="sourceLineNo">165</span>      while (true) {<a name="line.165"></a>
-<span class="sourceLineNo">166</span>        try {<a name="line.166"></a>
-<span class="sourceLineNo">167</span>          long startTime = EnvironmentEdgeManager.currentTime();<a name="line.167"></a>
-<span class="sourceLineNo">168</span>          checkZk().delete(path, version);<a name="line.168"></a>
-<span class="sourceLineNo">169</span>          this.metrics.registerWriteOperationLatency(<a name="line.169"></a>
-<span class="sourceLineNo">170</span>                  Math.min(EnvironmentEdgeManager.currentTime() - startTime,  1));<a name="line.170"></a>
-<span class="sourceLineNo">171</span>          return;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>        } catch (KeeperException e) {<a name="line.172"></a>
-<span class="sourceLineNo">173</span>          this.metrics.registerFailedZKCall();<a name="line.173"></a>
-<span class="sourceLineNo">174</span>          switch (e.code()) {<a name="line.174"></a>
-<span class="sourceLineNo">175</span>            case NONODE:<a name="line.175"></a>
-<span class="sourceLineNo">176</span>              if (isRetry) {<a name="line.176"></a>
-<span class="sourceLineNo">177</span>                LOG.debug("Node " + path + " already deleted. Assuming a " +<a name="line.177"></a>
-<span class="sourceLineNo">178</span>                    "previous attempt succeeded.");<a name="line.178"></a>
-<span class="sourceLineNo">179</span>                return;<a name="line.179"></a>
-<span class="sourceLineNo">180</span>              }<a name="line.180"></a>
-<span class="sourceLineNo">181</span>              LOG.debug("Node " + path + " already deleted, retry=" + isRetry);<a name="line.181"></a>
-<span class="sourceLineNo">182</span>              throw e;<a name="line.182"></a>
-<span class="sourceLineNo">183</span><a name="line.183"></a>
-<span class="sourceLineNo">184</span>            case CONNECTIONLOSS:<a name="line.184"></a>
-<span class="sourceLineNo">185</span>              this.metrics.registerConnectionLossException();<a name="line.185"></a>
-<span class="sourceLineNo">186</span>              retryOrThrow(retryCounter, e, "delete");<a name="line.186"></a>
-<span class="sourceLineNo">187</span>              break;<a name="line.187"></a>
-<span class="sourceLineNo">188</span>            case OPERATIONTIMEOUT:<a name="line.188"></a>
-<span class="sourceLineNo">189</span>              this.metrics.registerOperationTimeoutException();<a name="line.189"></a>
-<span class="sourceLineNo">190</span>              retryOrThrow(retryCounter, e, "delete");<a name="line.190"></a>
-<span class="sourceLineNo">191</span>              break;<a name="line.191"></a>
-<span class="sourceLineNo">192</span><a name="line.192"></a>
-<span class="sourceLineNo">193</span>            default:<a name="line.193"></a>
-<span class="sourceLineNo">194</span>              throw e;<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>        retryCounter.sleepUntilNextRetry();<a name="line.197"></a>
-<span class="sourceLineNo">198</span>        isRetry = true;<a name="line.198"></a>
-<span class="sourceLineNo">199</span>      }<a name="line.199"></a>
-<span class="sourceLineNo">200</span>    }<a name="line.200"></a>
-<span class="sourceLineNo">201</span>  }<a name="line.201"></a>
-<span class="sourceLineNo">202</span><a name="line.202"></a>
-<span class="sourceLineNo">203</span>  /**<a name="line.203"></a>
-<span class="sourceLineNo">204</span>   * exists is an idempotent operation. Retry before throwing exception<a name="line.204"></a>
-<span class="sourceLineNo">205</span>   * @return A Stat instance<a name="line.205"></a>
-<span class="sourceLineNo">206</span>   */<a name="line.206"></a>
-<span class="sourceLineNo">207</span>  public Stat exists(String path, Watcher watcher) throws KeeperException, InterruptedException {<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    try (TraceScope scope = TraceUtil.createTrace("RecoverableZookeeper.exists")) {<a name="line.208"></a>
-<span class="sourceLineNo">209</span>      RetryCounter retryCounter = retryCounterFactory.create();<a name="line.209"></a>
-<span class="sourceLineNo">210</span>      while (true) {<a name="line.210"></a>
-<span class="sourceLineNo">211</span>        try {<a name="line.211"></a>
-<span class="sourceLineNo">212</span>          long startTime = EnvironmentEdgeManager.currentTime();<a name="line.212"></a>
-<span class="sourceLineNo">213</span>          Stat nodeStat = checkZk().exists(path, watcher);<a name="line.213"></a>
-<span class="sourceLineNo">214</span>          this.metrics.registerReadOperationLatency(<a name="line.214"></a>
-<span class="sourceLineNo">215</span>                  Math.min(EnvironmentEdgeManager.currentTime() - startTime, 1));<a name="line.215"></a>
-<span class="sourceLineNo">216</span>          return nodeStat;<a name="line.216"></a>
-<span class="sourceLineNo">217</span>        } catch (KeeperException e) {<a name="line.217"></a>
-<span class="sourceLineNo">218</span>          this.metrics.registerFailedZKCall();<a name="line.218"></a>
-<span class="sourceLineNo">219</span>          switch (e.code()) {<a name="line.219"></a>
-<span class="sourceLineNo">220</span>            case CONNECTIONLOSS:<a name="line.220"></a>
-<span class="sourceLineNo">221</span>              this.metrics.registerConnectionLossException();<a name="line.221"></a>
-<span class="sourceLineNo">222</span>              retryOrThrow(retryCounter, e, "exists");<a name="line.222"></a>
-<span class="sourceLineNo">223</span>              break;<a name="line.223"></a>
-<span class="sourceLineNo">224</span>            case OPERATIONTIMEOUT:<a name="line.224"></a>
-<span class="sourceLineNo">225</span>              this.metrics.registerOperationTimeoutException();<a name="line.225"></a>
-<span class="sourceLineNo">226</span>              retryOrThrow(retryCounter, e, "exists");<a name="line.226"></a>
-<span class="sourceLineNo">227</span>              break;<a name="line.227"></a>
-<span class="sourceLineNo">228</span><a name="line.228"></a>
-<span class="sourceLineNo">229</span>            default:<a name="line.229"></a>
-<span class="sourceLineNo">230</span>              throw e;<a name="line.230"></a>
-<span class="sourceLineNo">231</span>          }<a name="line.231"></a>
-<span class="sourceLineNo">232</span>        }<a name="line.232"></a>
-<span class="sourceLineNo">233</span>        retryCounter.sleepUntilNextRetry();<a name="line.233"></a>
-<span class="sourceLineNo">234</span>      }<a name="line.234"></a>
-<span class="sourceLineNo">235</span>    }<a name="line.235"></a>
-<span class="sourceLineNo">236</span>  }<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>   * exists is an idempotent operation. Retry before throwing exception<a name="line.239"></a>
-<span class="sourceLineNo">240</span>   * @return A Stat instance<a name="line.240"></a>
-<span class="sourceLineNo">241</span>   */<a name="line.241"></a>
-<span class="sourceLineNo">242</span>  public Stat exists(String path, boolean watch) throws KeeperException, InterruptedException {<a name="line.242"></a>
-<span class="sourceLineNo">243</span>    try (TraceScope scope = TraceUtil.createTrace("RecoverableZookeeper.exists")) {<a name="line.243"></a>
-<span class="sourceLineNo">244</span>      RetryCounter retryCounter = retryCounterFactory.create();<a name="line.244"></a>
-<span class="sourceLineNo">245</span>      while (true) {<a name="line.245"></a>
-<span class="sourceLineNo">246</span>        try {<a name="line.246"></a>
-<span class="sourceLineNo">247</span>          long startTime = EnvironmentEdgeManager.currentTime();<a name="line.247"></a>
-<span class="sourceLineNo">248</span>          Stat nodeStat = checkZk().exists(path, watch);<a name="line.248"></a>
-<span class="sourceLineNo">249</span>          this.metrics.registerReadOperationLatency(<a name="line.249"></a>
-<span class="sourceLineNo">250</span>                  Math.min(EnvironmentEdgeManager.currentTime() - startTime,  1));<a name="line.250"></a>
-<span class="sourceLineNo">251</span>          return nodeStat;<a name="line.251"></a>
-<span class="sourceLineNo">252</span>        } catch (KeeperException e) {<a name="line.252"></a>
-<span class="sourceLineNo">253</span>          this.metrics.registerFailedZKCall();<a name="line.253"></a>
-<span class="sourceLineNo">254</span>          switch (e.code()) {<a name="line.254"></a>
-<span class="sourceLineNo">255</span>            case CONNECTIONLOSS:<a name="line.255"></a>
-<span class="sourceLineNo">256</span>              this.metrics.registerConnectionLossException();<a name="line.256"></a>
-<span class="sourceLineNo">257</span>              retryOrThrow(retryCounter, e, "exists");<a name="line.257"></a>
-<span class="sourceLineNo">258</span>              break;<a name="line.258"></a>
-<span class="sourceLineNo">259</span>            case OPERATIONTIMEOUT:<a name="line.259"></a>
-<span class="sourceLineNo">260</span>              this.metrics.registerOperationTimeoutException();<a name="line.260"></a>
-<span class="sourceLineNo">261</span>              retryOrThrow(retryCounter, e, "exists");<a name="line.261"></a>
-<span class="sourceLineNo">262</span>              break;<a name="line.262"></a>
-<span class="sourceLineNo">263</span><a name="line.263"></a>
-<span class="sourceLineNo">264</span>            default:<a name="line.264"></a>
-<span class="sourceLineNo">265</span>              throw e;<a name="line.265"></a>
-<span class="sourceLineNo">266</span>          }<a name="line.266"></a>
-<span class="sourceLineNo">267</span>        }<a name="line.267"></a>
-<span class="sourceLineNo">268</span>        retryCounter.sleepUntilNextRetry();<a name="line.268"></a>
-<span class="sourceLineNo">269</span>      }<a name="line.269"></a>
-<span class="sourceLineNo">270</span>    }<a name="line.270"></a>
-<span class="sourceLineNo">271</span>  }<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>  private void retryOrThrow(RetryCounter retryCounter, KeeperException e,<a name="line.273"></a>
-<span class="sourceLineNo">274</span>      String opName) throws KeeperException {<a name="line.274"></a>
-<span class="sourceLineNo">275</span>    if (!retryCounter.shouldRetry()) {<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      LOG.error("ZooKeeper " + opName + " failed after "<a name="line.276"></a>
-<span class="sourceLineNo">277</span>        + retryCounter.getMaxAttempts() + " attempts");<a name="line.277"></a>
-<span class="sourceLineNo">278</span>      throw e;<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    }<a name="line.279"></a>
-<span class="sourceLineNo">280</span>    LOG.debug("Retry, connectivity issue (JVM Pause?); quorum=" + quorumServers + "," +<a name="line.280"></a>
-<span class="sourceLineNo">281</span>        "exception=" + e);<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>  /**<a name="line.284"></a>
-<span class="sourceLineNo">285</span>   * getChildren is an idempotent operation. Retry before throwing exception<a name="line.285"></a>
-<span class="sourceLineNo">286</span>   * @return List of children znodes<a name="line.286"></a>
-<span class="sourceLineNo">287</span>   */<a name="line.287"></a>
-<span class="sourceLineNo">288</span>  public List&lt;String&gt; getChildren(String path, Watcher watcher)<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    throws KeeperException, InterruptedException {<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    try (TraceScope scope = TraceUtil.createTrace("RecoverableZookeeper.getChildren")) {<a name="line.290"></a>
-<span class="sourceLineNo">291</span>      RetryCounter retryCounter = retryCounterFactory.create();<a name="line.291"></a>
-<span class="sourceLineNo">292</span>      while (true) {<a name="line.292"></a>
-<span class="sourceLineNo">293</span>        try {<a name="line.293"></a>
-<span class="sourceLineNo">294</span>          long startTime = EnvironmentEdgeManager.currentTime();<a name="line.294"></a>
-<span class="sourceLineNo">295</span>          List&lt;String&gt; children = checkZk().getChildren(path, watcher);<a name="line.295"></a>
-<span class="sourceLineNo">296</span>          this.metrics.registerReadOperationLatency(<a name="line.296"></a>
-<span class="sourceLineNo">297</span>                  Math.min(EnvironmentEdgeManager.currentTime() - startTime,  1));<a name="line.297"></a>
-<span class="sourceLineNo">298</span>          return children;<a name="line.298"></a>
-<span class="sourceLineNo">299</span>        } catch (KeeperException e) {<a name="line.299"></a>
-<span class="sourceLineNo">300</span>          this.metrics.registerFailedZKCall();<a name="line.300"></a>
-<span class="sourceLineNo">301</span>          switch (e.code()) {<a name="line.301"></a>
-<span class="sourceLineNo">302</span>            case CONNECTIONLOSS:<a name="line.302"></a>
-<span class="sourceLineNo">303</span>              this.metrics.registerConnectionLossException();<a name="line.303"></a>
-<span class="sourceLineNo">304</span>              retryOrThrow(retryCounter, e, "getChildren");<a name="line.304"></a>
-<span class="sourceLineNo">305</span>              break;<a name="line.305"></a>
-<span class="sourceLineNo">306</span>            case OPERATIONTIMEOUT:<a name="line.306"></a>
-<span class="sourceLineNo">307</span>              this.metrics.registerOperationTimeoutException();<a name="line.307"></a>
-<span class="sourceLineNo">308</span>              retryOrThrow(retryCounter, e, "getChildren");<a name="line.308"></a>
-<span class="sourceLineNo">309</span>              break;<a name="line.309"></a>
-<span class="sourceLineNo">310</span><a name="line.310"></a>
-<span class="sourceLineNo">311</span>            default:<a name="line.311"></a>
-<span class="sourceLineNo">312</span>              throw e;<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>        retryCounter.sleepUntilNextRetry();<a name="line.315"></a>
-<span class="sourceLineNo">316</span>      }<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    }<a name="line.317"></a>
-<span class="sourceLineNo">318</span>  }<a name="line.318"></a>
+<span class="sourceLineNo">085</span><a name="line.85"></a>
+<span class="sourceLineNo">086</span>  public RecoverableZooKeeper(String quorumServers, int sessionTimeout,<a name="line.86"></a>
+<span class="sourceLineNo">087</span>      Watcher watcher, int maxRetries, int retryIntervalMillis, int maxSleepTime)<a name="line.87"></a>
+<span class="sourceLineNo">088</span>  throws IOException {<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    this(quorumServers, sessionTimeout, watcher, maxRetries, retryIntervalMillis, maxSleepTime,<a name="line.89"></a>
+<span class="sourceLineNo">090</span>        null);<a name="line.90"></a>
+<span class="sourceLineNo">091</span>  }<a name="line.91"></a>
+<span class="sourceLineNo">092</span><a name="line.92"></a>
+<span class="sourceLineNo">093</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="DE_MIGHT_IGNORE",<a name="line.93"></a>
+<span class="sourceLineNo">094</span>      justification="None. Its always been this way.")<a name="line.94"></a>
+<span class="sourceLineNo">095</span>  public RecoverableZooKeeper(String quorumServers, int sessionTimeout,<a name="line.95"></a>
+<span class="sourceLineNo">096</span>      Watcher watcher, int maxRetries, int retryIntervalMillis, int maxSleepTime, String identifier)<a name="line.96"></a>
+<span class="sourceLineNo">097</span>  throws IOException {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    // TODO: Add support for zk 'chroot'; we don't add it to the quorumServers String as we should.<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    this.retryCounterFactory =<a name="line.99"></a>
+<span class="sourceLineNo">100</span>      new RetryCounterFactory(maxRetries+1, retryIntervalMillis, maxSleepTime);<a name="line.100"></a>
+<span class="sourceLineNo">101</span><a name="line.101"></a>
+<span class="sourceLineNo">102</span>    if (identifier == null || identifier.length() == 0) {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>      // the identifier = processID@hostName<a name="line.103"></a>
+<span class="sourceLineNo">104</span>      identifier = ManagementFactory.getRuntimeMXBean().getName();<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    }<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    LOG.info("Process identifier=" + identifier +<a name="line.106"></a>
+<span class="sourceLineNo">107</span>      " connecting to ZooKeeper ensemble=" + quorumServers);<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    this.identifier = identifier;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    this.id = Bytes.toBytes(identifier);<a name="line.109"></a>
+<span class="sourceLineNo">110</span><a name="line.110"></a>
+<span class="sourceLineNo">111</span>    this.watcher = watcher;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    this.sessionTimeout = sessionTimeout;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    this.quorumServers = quorumServers;<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span>    try {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>      checkZk();<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    } catch (Exception x) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>      /* ignore */<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    }<a name="line.119"></a>
+<span class="sourceLineNo">120</span>  }<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>  /**<a name="line.122"></a>
+<span class="sourceLineNo">123</span>   * Try to create a ZooKeeper connection. Turns any exception encountered into a<a name="line.123"></a>
+<span class="sourceLineNo">124</span>   * KeeperException.OperationTimeoutException so it can retried.<a name="line.124"></a>
+<span class="sourceLineNo">125</span>   * @return The created ZooKeeper connection object<a name="line.125"></a>
+<span class="sourceLineNo">126</span>   * @throws KeeperException if a ZooKeeper operation fails<a name="line.126"></a>
+<span class="sourceLineNo">127</span>   */<a name="line.127"></a>
+<span class="sourceLineNo">128</span>  protected synchronized ZooKeeper checkZk() throws KeeperException {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    if (this.zk == null) {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>      try {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>        this.zk = new ZooKeeper(quorumServers, sessionTimeout, watcher);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>      } catch (IOException ex) {<a name="line.132"></a>
+<span class="sourceLineNo">133</span>        LOG.warn("Unable to create ZooKeeper Connection", ex);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>        throw new KeeperException.OperationTimeoutException();<a name="line.134"></a>
+<span class="sourceLineNo">135</span>      }<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    }<a name="line.136"></a>
+<span class="sourceLineNo">137</span>    return zk;<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>  public synchronized void reconnectAfterExpiration()<a name="line.140"></a>
+<span class="sourceLineNo">141</span>        throws IOException, KeeperException, InterruptedException {<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    if (zk != null) {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>      LOG.info("Closing dead ZooKeeper connection, session" +<a name="line.143"></a>
+<span class="sourceLineNo">144</span>        " was: 0x"+Long.toHexString(zk.getSessionId()));<a name="line.144"></a>
+<span class="sourceLineNo">145</span>      zk.close();<a name="line.145"></a>
+<span class="sourceLineNo">146</span>      // reset the ZooKeeper connection<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      zk = null;<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    }<a name="line.148"></a>
+<span class="sourceLineNo">149</span>    checkZk();<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    LOG.info("Recreated a ZooKeeper, session" +<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      " is: 0x"+Long.toHexString(zk.getSessionId()));<a name="line.151"></a>
+<span class="sourceLineNo">152</span>  }<a name="line.152"></a>
+<span class="sourceLineNo">153</span><a name="line.153"></a>
+<span class="sourceLineNo">154</span>  /**<a name="line.154"></a>
+<span class="sourceLineNo">155</span>   * delete is an idempotent operation. Retry before throwing exception.<a name="line.155"></a>
+<span class="sourceLineNo">156</span>   * This function will not throw NoNodeException if the path does not<a name="line.156"></a>
+<span class="sourceLineNo">157</span>   * exist.<a name="line.157"></a>
+<span class="sourceLineNo">158</span>   */<a name="line.158"></a>
+<span class="sourceLineNo">159</span>  public void delete(String path, int version) throws InterruptedException, KeeperException {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    try (TraceScope scope = TraceUtil.createTrace("RecoverableZookeeper.delete")) {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>      RetryCounter retryCounter = retryCounterFactory.create();<a name="line.161"></a>
+<span class="sourceLineNo">162</span>      boolean isRetry = false; // False for first attempt, true for all retries.<a name="line.162"></a>
+<span class="sourceLineNo">163</span>      while (true) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span>        try {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>          long startTime = EnvironmentEdgeManager.currentTime();<a name="line.165"></a>
+<span class="sourceLineNo">166</span>          checkZk().delete(path, version);<a name="line.166"></a>
+<span class="sourceLineNo">167</span>          return;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>        } catch (KeeperException e) {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>          switch (e.code()) {<a name="line.169"></a>
+<span class="sourceLineNo">170</span>            case NONODE:<a name="line.170"></a>
+<span class="sourceLineNo">171</span>              if (isRetry) {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                LOG.debug("Node " + path + " already deleted. Assuming a " +<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                    "previous attempt succeeded.");<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                return;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>              }<a name="line.175"></a>
+<span class="sourceLineNo">176</span>              LOG.debug("Node " + path + " already deleted, retry=" + isRetry);<a name="line.176"></a>
+<span class="sourceLineNo">177</span>              throw e;<a name="line.177"></a>
+<span class="sourceLineNo">178</span><a name="line.178"></a>
+<span class="sourceLineNo">179</span>            case CONNECTIONLOSS:<a name="line.179"></a>
+<span class="sourceLineNo">180</span>              retryOrThrow(retryCounter, e, "delete");<a name="line.180"></a>
+<span class="sourceLineNo">181</span>              break;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>            case OPERATIONTIMEOUT:<a name="line.182"></a>
+<span class="sourceLineNo">183</span>              retryOrThrow(retryCounter, e, "delete");<a name="line.183"></a>
+<span class="sourceLineNo">184</span>              break;<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>            default:<a name="line.186"></a>
+<span class="sourceLineNo">187</span>              throw e;<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>        retryCounter.sleepUntilNextRetry();<a name="line.190"></a>
+<span class="sourceLineNo">191</span>        isRetry = true;<a name="line.191"></a>
+<span class="sourceLineNo">192</span>      }<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    }<a name="line.193"></a>
+<span class="sourceLineNo">194</span>  }<a name="line.194"></a>
+<span class="sourceLineNo">195</span><a name="line.195"></a>
+<span class="sourceLineNo">196</span>  /**<a name="line.196"></a>
+<span class="sourceLineNo">197</span>   * exists is an idempotent operation. Retry before throwing exception<a name="line.197"></a>
+<span class="sourceLineNo">198</span>   * @return A Stat instance<a name="line.198"></a>
+<span class="sourceLineNo">199</span>   */<a name="line.199"></a>
+<span class="sourceLineNo">200</span>  public Stat exists(String path, Watcher watcher) throws KeeperException, InterruptedException {<a name="line.200"></a>
+<span class="sourceLineNo">201</span>    try (TraceScope scope = TraceUtil.createTrace("RecoverableZookeeper.exists")) {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>      RetryCounter retryCounter = retryCounterFactory.create();<a name="line.202"></a>
+<span class="sourceLineNo">203</span>      while (true) {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>        try {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>          long startTime = EnvironmentEdgeManager.currentTime();<a name="line.205"></a>
+<span class="sourceLineNo">206</span>          Stat nodeStat = checkZk().exists(path, watcher);<a name="line.206"></a>
+<span class="sourceLineNo">207</span>          return nodeStat;<a name="line.207"></a>
+<span class="sourceLineNo">208</span>        } catch (KeeperException e) {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>          switch (e.code()) {<a name="line.209"></a>
+<span class="sourceLineNo">210</span>            case CONNECTIONLOSS:<a name="line.210"></a>
+<span class="sourceLineNo">211</span>              retryOrThrow(retryCounter, e, "exists");<a name="line.211"></a>
+<span class="sourceLineNo">212</span>              break;<a name="line.212"></a>
+<span class="sourceLineNo">213</span>            case OPERATIONTIMEOUT:<a name="line.213"></a>
+<span class="sourceLineNo">214</span>              retryOrThrow(retryCounter, e, "exists");<a name="line.214"></a>
+<span class="sourceLineNo">215</span>              break;<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>            default:<a name="line.217"></a>
+<span class="sourceLineNo">218</span>              throw e;<a name="line.218"></a>
+<span class="sourceLineNo">219</span>          }<a name="line.219"></a>
+<span class="sourceLineNo">220</span>        }<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        retryCounter.sleepUntilNextRetry();<a name="line.221"></a>
+<span class="sourceLineNo">222</span>      }<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    }<a name="line.223"></a>
+<span class="sourceLineNo">224</span>  }<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span>  /**<a name="line.226"></a>
+<span class="sourceLineNo">227</span>   * exists is an idempotent operation. Retry before throwing exception<a name="line.227"></a>
+<span class="sourceLineNo">228</span>   * @return A Stat instance<a name="line.228"></a>
+<span class="sourceLineNo">229</span>   */<a name="line.229"></a>
+<span class="sourceLineNo">230</span>  public Stat exists(String path, boolean watch) throws KeeperException, InterruptedException {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    try (TraceScope scope = TraceUtil.createTrace("RecoverableZookeeper.exists")) {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>      RetryCounter retryCounter = retryCounterFactory.create();<a name="line.232"></a>
+<span class="sourceLineNo">233</span>      while (true) {<a name="line.233"></a>
+<span class="sourceLineNo">234</span>        try {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>          long startTime = EnvironmentEdgeManager.currentTime();<a name="line.235"></a>
+<span class="sourceLineNo">236</span>          Stat nodeStat = checkZk().exists(path, watch);<a name="line.236"></a>
+<span class="sourceLineNo">237</span>          return nodeStat;<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        } catch (KeeperException e) {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>          switch (e.code()) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>            case CONNECTIONLOSS:<a name="line.240"></a>
+<span class="sourceLineNo">241</span>              retryOrThrow(retryCounter, e, "exists");<a name="line.241"></a>
+<span class="sourceLineNo">242</span>              break;<a name="line.242"></a>
+<span class="sourceLineNo">243</span>            case OPERATIONTIMEOUT:<a name="line.243"></a>
+<span class="sourceLineNo">244</span>              retryOrThrow(retryCounter, e, "exists");<a name="line.244"></a>
+<span class="sourceLineNo">245</span>              break;<a name="line.245"></a>
+<span class="sourceLineNo">246</span><a name="line.246"></a>
+<span class="sourceLineNo">247</span>            default:<a name="line.247"></a>
+<span class="sourceLineNo">248</span>              throw e;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>          }<a name="line.249"></a>
+<span class="sourceLineNo">250</span>        }<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        retryCounter.sleepUntilNextRetry();<a name="line.251"></a>
+<span class="sourceLineNo">252</span>      }<a name="line.252"></a>
+<span class="sourceLineNo">253</span>    }<a name="line.253"></a>
+<span class="sourceLineNo">254</span>  }<a name="line.254"></a>
+<span class="sourceLineNo">255</span><a name="line.255"></a>
+<span class="sourceLineNo">256</span>  private void retryOrThrow(RetryCounter retryCounter, KeeperException e,<a name="line.256"></a>
+<span class="sourceLineNo">257</span>      String opName) throws KeeperException {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>    if (!retryCounter.shouldRetry()) {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>      LOG.error("ZooKeeper " + opName + " failed after "<a name="line.259"></a>
+<span class="sourceLineNo">260</span>        + retryCounter.getMaxAttempts() + " attempts");<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      throw e;<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    }<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    LOG.debug("Retry, connectivity issue (JVM Pause?); quorum=" + quorumServers + "," +<a name="line.263"></a>
+<span class="sourceLineNo">264</span>        "exception=" + e);<a name="line.264"></a>
+<span class="sourceLineNo">265</span>  }<a name="line.265"></a>
+<span class="sourceLineNo">266</span><a name="line.266"></a>
+<span class="sourceLineNo">267</span>  /**<a name="line.267"></a>
+<span class="sourceLineNo">268</span>   * getChildren is an idempotent operation. Retry before throwing exception<a name="line.268"></a>
+<span class="sourceLineNo">269</span>   * @return List of children znodes<a name="line.269"></a>
+<span class="sourceLineNo">270</span>   */<a name="line.270"></a>
+<span class="sourceLineNo">271</span>  public List&lt;String&gt; getChildren(String path, Watcher watcher)<a name="line.271"></a>
+<span class="sourceLineNo">272</span>    throws KeeperException, InterruptedException {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>    try (TraceScope scope = TraceUtil.createTrace("RecoverableZookeeper.getChildren")) {<a name="line.273"></a>
+<span class="sourceLineNo">274</span>      RetryCounter retryCounter = retryCounterFactory.create();<a name="line.274"></a>
+<span class="sourceLineNo">275</span>      while (true) {<a name="line.275"></a>
+<span class="sourceLineNo">276</span>        try {<a name="line.276"></a>
+<span class="sourceLineNo">277</span>          long startTime = EnvironmentEdgeManager.currentTime();<a name="line.277"></a>
+<span class="sourceLineNo">278</span>          List&lt;String&gt; children = checkZk().getChildren(path, watcher);<a name="line.278"></a>
+<span class="sourceLineNo">279</span>          return children;<a name="line.279"></a>
+<span class="sourceLineNo">280</span>        } catch (KeeperException e) {<a name="line.280"></a>
+<span class="sourceLineNo">281</span>          switch (e.code()) {<a name="line.281"></a>
+<span class="sourceLineNo">282</span>            case CONNECTIONLOSS:<a name="line.282"></a>
+<span class="sourceLineNo">283</span>              retryOrThrow(retryCounter, e, "getChildren");<a name="line.283"></a>
+<span class="sourceLineNo">284</span>              break;<a name="line.284"></a>
+<span class="sourceLineNo">285</span>            case OPERATIONTIMEOUT:<a name="line.285"></a>
+<span class="sourceLineNo">286</span>              retryOrThrow(retryCounter, e, "getChildren");<a name="line.286"></a>
+<span class="sourceLineNo">287</span>              break;<a name="line.287"></a>
+<span class="sourceLineNo">288</span><a name="line.288"></a>
+<span class="sourceLineNo">289</span>            default:<a name="line.289"></a>
+<span class="sourceLineNo">290</span>              throw e;<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>        retryCounter.sleepUntilNextRetry();<a name="line.293"></a>
+<span class="sourceLineNo">294</span>      }<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    }<a name="line.295"></a>
+<span class="sourceLineNo">296</span>  }<a name="line.296"></a>
+<span class="sourceLineNo">297</span><a name="line.297"></a>
+<span class="sourceLineNo">298</span>  /**<a name="line.298"></a>
+<span class="sourceLineNo">299</span>   * getChildren is an idempotent operation. Retry before throwing exception<a name="line.299"></a>
+<span class="sourceLineNo">300</span>   * @return List of children znodes<a name="line.300"></a>
+<span class="sourceLineNo">301</span>   */<a name="line.301"></a>
+<span class="sourceLineNo">302</span>  public List&lt;String&gt; getChildren(String path, boolean watch)<a name="line.302"></a>
+<span class="sourceLineNo">303</span>  throws KeeperException, InterruptedException {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>    try (TraceScope scope = TraceUtil.createTrace("RecoverableZookeeper.getChildren")) {<a name="line.304"></a>
+<span class="sourceLineNo">305</span>      RetryCounter retryCounter = retryCounterFactory.create();<a name="line.305"></a>
+<span class="sourceLineNo">306</span>      while (true) {<a name="line.306"></a>
+<span class="sourceLineNo">307</span>        try {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>          long startTime = EnvironmentEdgeManager.currentTime();<a name="line.308"></a>
+<span class="sourceLineNo">309</span>          List&lt;String&gt; children = checkZk().getChildren(path, watch);<a name="line.309"></a>
+<span class="sourceLineNo">310</span>          return children;<a name="line.310"></a>
+<span class="sourceLineNo">311</span>        } catch (KeeperException e) {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>          switch (e.code()) {<a name="line.312"></a>
+<span class="sourceLineNo">313</span>            case CONNECTIONLOSS:<a name="line.313"></a>
+<span class="sourceLineNo">314</span>              retryOrThrow(retryCounter, e, "getChildren");<a name="line.314"></a>
+<span class="sourceLineNo">315</span>              break;<a name="line.315"></a>
+<span class="sourceLineNo">316</span>            case OPERATIONTIMEOUT:<a name="line.316"></a>
+<span class="sourceLineNo">317</span>              retryOrThrow(retryCounter, e, "getChildren");<a name="line.317"></a>
+<span class="sourceLineNo">318</span>              break;<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>   * getChildren is an idempotent operation. Retry before throwing exception<a name="line.321"></a>
-<span class="sourceLineNo">322</span>   * @return List of children znodes<a name="line.322"></a>
-<span class="sourceLineNo">323</span>   */<a name="line.323"></a>
-<span class="sourceLineNo">324</span>  public List&lt;String&gt; getChildren(String path, boolean watch)<a name="line.324"></a>
-<span class="sourceLineNo">325</span>  throws KeeperException, InterruptedException {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    try (TraceScope scope = TraceUtil.createTrace("RecoverableZookeeper.getChildren")) {<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      RetryCounter retryCounter = retryCounterFactory.create();<a name="line.327"></a>
-<span class="sourceLineNo">328</span>      while (true) {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>        try {<a name="line.329"></a>
-<span class="sourceLineNo">330</span>          long startTime = EnvironmentEdgeManager.currentTime();<a name="line.330"></a>
-<span class="sourceLineNo">331</span>          List&lt;String&gt; children = checkZk().getChildren(path, watch);<a name="line.331"></a>
-<span class="sourceLineNo">332</span>          this.metrics.registerReadOperationLatency(<a name="line.332"></a>
-<span class="sourceLineNo">333</span>                  Math.min(EnvironmentEdgeManager.currentTime() - startTime,  1));<a name="line.333"></a>
-<span class="sourceLineNo">334</span>          return children;<a name="line.334"></a>
-<span class="sourceLineNo">335</span>        } catch (KeeperException e) {<a name="line.335"></a>
-<span class="sourceLineNo">336</span>          this.metrics.registerFailedZKCall();<a name="line.336"></a>
-<span class="sourceLineNo">337</span>          switch (e.code()) {<a name="line.337"></a>
-<span class="sourceLineNo">338</span>            case CONNECTIONLOSS:<a name="line.338"></a>
-<span class="sourceLineNo">339</span>              this.metrics.registerConnectionLossException();<a name="line.339"></a>
-<span class="sourceLineNo">340</span>              retryOrThrow(retryCounter, e, "getChildren");<a name="line.340"></a>
-<span class="sourceLineNo">341</span>              break;<a name="line.341"></a>
-<span class="sourceLineNo">342</span>            case OPERATIONTIMEOUT:<a name="line.342"></a>
-<span class="sourceLineNo">343</span>              this.metrics.registerOperationTimeoutException();<a name="line.343"></a>
-<span class="sourceLineNo">344</span>              retryOrThrow(retryCounter, e, "getChildren");<a name="line.344"></a>
-<span class="sourceLineNo">345</span>              break;<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>            default:<a name="line.347"></a>
-<span class="sourceLineNo">348</span>              throw e;<a name="line.348"></a>
-<span class="sourceLineNo">349</span>          }<a name="line.349"></a>
-<span class="sourceLineNo">350</span>        }<a name="line.350"></a>
-<span class="sourceLineNo">351</span>        retryCounter.sleepUntilNextRetry();<a name="line.351"></a>
-<span class="sourceLineNo">352</span>      }<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    }<a name="line.353"></a>
-<span class="sourceLineNo">354</span>  }<a name="line.354"></a>
-<span class="sourceLineNo">355</span><a name="line.355"></a>
-<span class="sourceLineNo">356</span>  /**<a name="line.356"></a>
-<span class="sourceLineNo">357</span>   * getData is an idempotent operation. Retry before throwing exception<a name="line.357"></a>
-<span class="sourceLineNo">358</span>   * @return Data<a name="line.358"></a>
-<span class="sourceLineNo">359</span>   */<a name="line.359"></a>
-<span class="sourceLineNo">360</span>  public byte[] getData(String path, Watcher watcher, Stat stat)<a name="line.360"></a>
-<span class="sourceLineNo">361</span>  throws KeeperException, InterruptedException {<a name="line.361"></a>
-<span class="sourceLineNo">362</span>    try (TraceScope scope = TraceUtil.createTrace("RecoverableZookeeper.getData")) {<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      RetryCounter retryCounter = retryCounterFactory.create();<a name="line.363"></a>
-<span class="sourceLineNo">364</span>      while (true) {<a name="line.364"></a>
-<span class="sourceLineNo">365</span>        try {<a name="line.365"></a>
-<span class="sourceLineNo">366</span>          long startTime = EnvironmentEdgeManager.currentTime();<a name="line.366"></a>
-<span class="sourceLineNo">367</span>          byte[] revData = checkZk().getData(path, watcher, stat);<a name="line.367"></a>
-<span class="sourceLineNo">368</span>          this.metrics.registerReadOperationLatency(<a name="line.368"></a>
-<span class="sourceLineNo">369</span>                  Math.min(EnvironmentEdgeManager.currentTime() - startTime,  1));<a name="line.369"></a>
-<span class="sourceLineNo">370</span>          return ZKMetadata.removeMetaData(revData);<a name="line.370"></a>
-<span class="sourceLineNo">371</span>        } catch (KeeperException e) {<a name="line.371"></a>
-<span class="sourceLineNo">372</span>          this.metrics.registerFailedZKCall();<a name="line.372"></a>
-<span class="sourceLineNo">373</span>          switch (e.code()) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span>            case CONNECTIONLOSS:<a name="line.374"></a>
-<span class="sourceLineNo">375</span>              this.metrics.registerConnectionLossException();<a name="line.375"></a>
+<span class="sourceLineNo">320</span>            default:<a name="line.320"></a>
+<span class="sourceLineNo">321</span>              throw e;<a name="line.321"></a>
+<span class="sourceLineNo">322</span>          }<a name="line.322"></a>
+<span class="sourceLineNo">323</span>        }<a name="line.323"></a>
+<span class="sourceLineNo">324</span>        retryCounter.sleepUntilNextRetry();<a name="line.324"></a>
+<span class="sourceLineNo">325</span>      }<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    }<a name="line.326"></a>
+<span class="sourceLineNo">327</span>  }<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>   * getData is an idempotent operation. Retry before throwing exception<a name="line.330"></a>
+<span class="sourceLineNo">331</span>   * @return Data<a name="line.331"></a>
+<span class="sourceLineNo">332</span>   */<a name="line.332"></a>
+<span class="sourceLineNo">333</span>  public byte[] getData(String path, Watcher watcher, Stat stat)<a name="line.333"></a>
+<span class="sourceLineNo">334</span>  throws KeeperException, InterruptedException {<a name="line.334"></a>
+<span class="sourceLineNo">335</span>    try (TraceScope scope = TraceUtil.createTrace("RecoverableZookeeper.getData")) {<a name="line.335"></a>
+<span class="sourceLineNo">336</span>      RetryCounter retryCounter = retryCounterFactory.create();<a name="line.336"></a>
+<span class="sourceLineNo">337</span>      while (true) {<a name="line.337"></a>
+<span class="sourceLineNo">338</span>        try {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>          long startTime = EnvironmentEdgeManager.currentTime();<a name="line.339"></a>
+<span class="sourceLineNo">340</span>          byte[] revData = checkZk().getData(path, watcher, stat);<a name="line.340"></a>
+<span class="sourceLineNo">341</span>          return ZKMetadata.removeMetaData(revData);<a name="line.341"></a>
+<span class="sourceLineNo">342</span>        } catch (KeeperException e) {<a name="line.342"></a>
+<span class="sourceLineNo">343</span>          switch (e.code()) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>            case CONNECTIONLOSS:<a name="line.344"></a>
+<span class="sourceLineNo">345</span>              retryOrThrow(retryCounter, e, "getData");<a name="line.345"></a>
+<span class="sourceLineNo">346</span>              break;<a name="line.346"></a>
+<span class="sourceLineNo">347</span>            case OPERATIONTIMEOUT:<a name="line.347"></a>
+<span class="sourceLineNo">348</span>              retryOrThrow(retryCounter, e, "getData");<a name="line.348"></a>
+<span class="sourceLineNo">349</span>              break;<a name="line.349"></a>
+<span class="sourceLineNo">350</span><a name="line.350"></a>
+<span class="sourceLineNo">351</span>            default:<a name="line.351"></a>
+<span class="sourceLineNo">352</span>              throw e;<a name="line.352"></a>
+<span class="sourceLineNo">353</span>          }<a name="line.353"></a>
+<span class="sourceLineNo">354</span>        }<a name="line.354"></a>
+<span class="sourceLineNo">355</span>        retryCounter.sleepUntilNextRetry();<a name="line.355"></a>
+<span class="sourceLineNo">356</span>      }<a name="line.356"></a>
+<span class="sourceLineNo">357</span>    }<a name="line.357"></a>
+<span class="sourceLineNo">358</span>  }<a name="line.358"></a>
+<span class="sourceLineNo">359</span><a name="line.359"></a>
+<span class="sourceLineNo">360</span>  /**<a name="line.360"></a>
+<span class="sourceLineNo">361</span>   * getData is an idempotent operation. Retry before throwing exception<a name="line.361"></a>
+<span class="sourceLineNo">362</span>   * @return Data<a name="line.362"></a>
+<span class="sourceLineNo">363</span>   */<a name="line.363"></a>
+<span class="sourceLineNo">364</span>  public byte[] getData(String path, boolean watch, Stat stat)<a name="line.364"></a>
+<span class="sourceLineNo">365</span>  throws KeeperException, InterruptedException {<a name="line.365"></a>
+<span class="sourceLineNo">366</span>    try (TraceScope scope = TraceUtil.createTrace("RecoverableZookeeper.getData")) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>      RetryCounter retryCounter = retryCounterFactory.create();<a name="line.367"></a>
+<span class="sourceLineNo">368</span>      while (true) {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>        try {<a name="line.369"></a>
+<span class="sourceLineNo">370</span>          long startTime = EnvironmentEdgeManager.currentTime();<a name="line.370"></a>
+<span class="sourceLineNo">371</span>          byte[] revData = checkZk().getData(path, watch, stat);<a name="line.371"></a>
+<span class="sourceLineNo">372</span>          return ZKMetadata.removeMetaData(revData);<a name="line.372"></a>
+<span class="sourceLineNo">373</span>        } catch (KeeperException e) {<a name="line.373"></a>
+<span class="sourceLineNo">374</span>          switch (e.code()) {<a name="line.374"></a>
+<span class="sourceLineNo">375</span>            case CONNECTIONLOSS:<a name="line.375"></a>
 <span class="sourceLineNo">376</span>              retryOrThrow(retryCounter, e, "getData");<a name="line.376"></a>
 <span class="sourceLineNo">377</span>              break;<a name="line.377"></a>
 <span class="sourceLineNo">378</span>            case OPERATIONTIMEOUT:<a name="line.378"></a>
-<span class="sourceLineNo">379</span>              this.metrics.registerOperationTimeoutException();<a name="line.379"></a>
-<span class="sourceLineNo">380</span>              retryOrThrow(retryCounter, e, "getData");<a name="line.380"></a>
-<span class="sourceLineNo">381</span>              break;<a name="line.381"></a>
-<span class="sourceLineNo">382</span><a name="line.382"></a>
-<span class="sourceLineNo">383</span>            default:<a name="line.383"></a>
-<span class="sourceLineNo">384</span>              throw e;<a name="line.384"></a>
-<span class="sourceLineNo">385</span>          }<a name="line.385"></a>
-<span class="sourceLineNo">386</span>        }<a name="line.386"></a>
-<span class="sourceLineNo">387</span>        retryCounter.sleepUntilNextRetry();<a name="line.387"></a>
-<span class="sourceLineNo">388</span>      }<a name="line.388"></a>
-<span class="sourceLineNo">389</span>    }<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>  /**<a name="line.392"></a>
-<span class="sourceLineNo">393</span>   * getData is an idempotent operation. Retry before throwing exception<a name="line.393"></a>
-<span class="sourceLineNo">394</span>   * @return Data<a name="line.394"></a>
-<span class="sourceLineNo">395</span>   */<a name="line.395"></a>
-<span class="sourceLineNo">396</span>  public byte[] getData(String path, boolean watch, Stat stat)<a name="line.396"></a>
-<span class="sourceLineNo">397</span>  throws KeeperException, InterruptedException {<a name="line.397"></a>
-<span class="sourceLineNo">398</span>    try (TraceScope scope = TraceUtil.createTrace("RecoverableZookeeper.getData")) {<a name="line.398"></a>
-<span class="sourceLineNo">399</span>      RetryCounter retryCounter = retryCounterFactory.create();<a name="line.399"></a>
-<span class="sourceLineNo">400</span>      while (true) {<a name="line.400"></a>
-<span class="sourceLineNo">401</span>        try {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>          long startTime = EnvironmentEdgeManager.currentTime();<a name="line.402"></a>
-<span class="sourceLineNo">403</span>          byte[] revData = checkZk().getData(path, watch, stat);<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          this.metrics.registerReadOperationLatency(<a name="line.404"></a>
-<span class="sourceLineNo">405</span>                  Math.min(EnvironmentEdgeManager.currentTime() - startTime,  1));<a name="line.405"></a>
-<span class="sourceLineNo">406</span>          return ZKMetadata.removeMetaData(revData);<a name="line.406"></a>
-<span class="sourceLineNo">407</span>        } catch (KeeperException e) {<a name="line.407"></a>
-<span class="sourceLineNo">408</span>          this.metrics.registerFailedZKCall();<a name="line.408"></a>
-<span class="sourceLineNo">409</span>          switch (e.code()) {<a name="line.409"></a>
-<span class="sourceLineNo">410</span>            case CONNECTIONLOSS:<a name="line.410"></a>
-<span class="sourceLineNo">411</span>              this.metrics.registerConnectionLossException();<a name="line.411"></a>
-<span class="sourceLineNo">412</span>              retryOrThrow(retryCounter, e, "getData");<a name="line.412"></a>
+<span class="sourceLineNo">379</span>              retryOrThrow(retryCounter, e, "getData");<a name="line.379"></a>
+<span class="sourceLineNo">380</span>              break;<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span>            default:<a name="line.382"></a>
+<span class="sourceLineNo">383</span>              throw e;<a name="line.383"></a>
+<span class="sourceLineNo">384</span>          }<a name="line.384"></a>
+<span class="sourceLineNo">385</span>        }<a name="line.385"></a>
+<span class="sourceLineNo">386</span>        retryCounter.sleepUntilNextRetry();<a name="line.386"></a>
+<span class="sourceLineNo">387</span>      }<a name="line.387"></a>
+<span class="sourceLineNo">388</span>    }<a name="line.388"></a>
+<span class="sourceLineNo">389</span>  }<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>   * setData is NOT an idempotent operation. Retry may cause BadVersion Exception<a name="line.392"></a>
+<span class="sourceLineNo">393</span>   * Adding an identifier field into the data to check whether<a name="line.393"></a>
+<span class="sourceLineNo">394</span>   * badversion is caused by the result of previous correctly setData<a name="line.394"></a>
+<span class="sourceLineNo">395</span>   * @return Stat instance<a name="line.395"></a>
+<span class="sourceLineNo">396</span>   */<a name="line.396"></a>
+<span class="sourceLineNo">397</span>  public Stat setData(String path, byte[] data, int version)<a name="line.397"></a>
+<span class="sourceLineNo">398</span>  throws KeeperException, InterruptedException {<a name="line.398"></a>
+<span class="sourceLineNo">399</span>    try (TraceScope scope = TraceUtil.createTrace("RecoverableZookeeper.setData")) {<a name="line.399"></a>
+<span class="sourceLineNo">400</span>      RetryCounter retryCounter = retryCounterFactory.create();<a name="line.400"></a>
+<span class="sourceLineNo">401</span>      byte[] newData = ZKMetadata.appendMetaData(id, data);<a name="line.401"></a>
+<span class="sourceLineNo">402</span>      boolean isRetry = false;<a name="line.402"></a>
+<span class="sourceLineNo">403</span>      long startTime;<a name="line.403"></a>
+<span class="sourceLineNo">404</span>      while (true) {<a name="line.404"></a>
+<span class="sourceLineNo">405</span>        try {<a name="line.405"></a>
+<span class="sourceLineNo">406</span>          startTime = EnvironmentEdgeManager.currentTime();<a name="line.406"></a>
+<span class="sourceLineNo">407</span>          Stat nodeStat = checkZk().setData(path, newData, version);<a name="line.407"></a>
+<span class="sourceLineNo">408</span>          return nodeStat;<a name="line.408"></a>
+<span class="sourceLineNo">409</span>        } catch (KeeperException e) {<a name="line.409"></a>
+<span class="sourceLineNo">410</span>          switch (e.code()) {<a name="line.410"></a>
+<span class="sourceLineNo">411</span>            case CONNECTIONLOSS:<a name="line.411"></a>
+<span class="sourceLineNo">412</span>              retryOrThrow(retryCounter, e, "setData");<a name="line.412"></a>
 <span class="sourceLineNo">413</span>              break;<a name="line.413"></a>
 <span class="sourceLineNo">414</span>            case OPERATIONTIMEOUT:<a name="line.414"></a>
-<span class="sourceLineNo">415</span>              this.metrics.registerOperationTimeoutException();<a name="line.415"></a>
-<span class="sourceLineNo">416</span>              retryOrThrow(retryCounter, e, "getData");<a name="line.416"></a>
-<span class="sourceLineNo">417</span>              break;<a name="line.417"></a>
-<span class="sourceLineNo">418</span><a name="line.418"></a>
-<span class="sourceLineNo">419</span>            default:<a name="line.419"></a>
-<span class="sourceLineNo">420</span>              throw e;<a name="line.420"></a>
-<span class="sourceLineNo">421</span>          }<a name="line.421"></a>
-<span class="sourceLineNo">422</span>        }<a name="line.422"></a>
-<span class="sourceLineNo">423</span>        retryCounter.sleepUntilNextRetry();<a name="line.423"></a>
-<span class="sourceLineNo">424</span>      }<a name="line.424"></a>
-<span class="sourceLineNo">425</span>    }<a name="line.425"></a>
-<span class="sourceLineNo">426</span>  }<a name="line.426"></a>
-<span class="sourceLineNo">427</span><a name="line.427"></a>
-<span class="sourceLineNo">428</span>  /**<a name="line.428"></a>
-<span class="sourceLineNo">429</span>   * setData is NOT an idempotent operation. Retry may cause BadVersion Exception<a name="line.429"></a>
-<span class="sourceLineNo">430</span>   * Adding an identifier field into the data to check whether<a name="line.430"></a>
-<span class="sourceLineNo">431</span>   * badversion is caused by the result of previous correctly setData<a name="line.431"></a>
-<span class="sourceLineNo">432</span>   * @return Stat instance<a name="line.432"></a>
-<span class="sourceLineNo">433</span>   */<a name="line.433"></a>
-<span class="sourceLineNo">434</span>  public Stat setData(String path, byte[] data, int version)<a name="line.434"></a>
-<span class="sourceLineNo">435</span>  throws KeeperException, InterruptedException {<a name="line.435"></a>
-<span class="sourceLineNo">436</span>    try (TraceScope scope = TraceUtil.createTrace("RecoverableZookeeper.setData")) {<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      RetryCounter retryCounter = retryCounterFactory.create();<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      byte[] newData = ZKMetadata.appendMetaData(id, data);<a name="line.438"></a>
-<span class="sourceLineNo">439</span>      boolean isRetry = false;<a name="line.439"></a>
-<span class="sourceLineNo">440</span>      long startTime;<a name="line.440"></a>
-<span class="sourceLineNo">441</span>      while (true) {<a name="line.441"></a>
-<span class="sourceLineNo">442</span>        try {<a name="line.442"></a>
-<span class="sourceLineNo">443</span>          startTime = EnvironmentEdgeManager.currentTime();<a name="line.443"></a>
-<span class="sourceLineNo">444</span>          Stat nodeStat = checkZk().setData(path, newData, version);<a name="line.444"></a>
-<span class="sourceLineNo">445</span>          this.metrics.registerWriteOperationLatency(<a name="line.445"></a>
-<span class="sourceLineNo">446</span>                  Math.min(EnvironmentEdgeManager.currentTime() - startTime,  1));<a name="line.446"></a>
-<span class="sourceLineNo">447</span>          return nodeStat;<a name="line.447"></a>
-<span class="sourceLineNo">448</span>        } catch (KeeperException e) {<a name="line.448"></a>
-<span class="sourceLineNo">449</span>          this.metrics.registerFailedZKCall();<a name="line.449"></a>
-<span class="sourceLineNo">450</span>          switch (e.code()) {<a name="line.450"></a>
-<span class="sourceLineNo">451</span>            case CONNECTIONLOSS:<a name="line.451"></a>
-<span class="sourceLineNo">452</span>              this.metrics.registerConnectionLossException();<a name="line.452"></a>
-<span class="sourceLineNo">453</span>              retryOrThrow(retryCounter, e, "setData");<a name="line.453"></a>
-<span class="sourceLineNo">454</span>              break;<a name="line.454"></a>
-<span class="sourceLineNo">455</span>            case OPERATIONTIMEOUT:<a name="line.455"></a>
-<span class="sourceLineNo">456</span>              this.metrics.registerOperationTimeoutException();<a name="line.456"></a>
-<span class="sourceLineNo">457</span>              retryOrThrow(retryCounter, e, "setData");<a name="line.457"></a>
-<span class="sourceLineNo">458</span>              break;<a name="line.458"></a>
-<span class="sourceLineNo">459</span>            case BADVERSION:<a name="line.459"></a>
-<span class="sourceLineNo">460</span>              if (isRetry) {<a name="line.460"></a>
-<span class="sourceLineNo">461</span>                // try to verify whether the previous setData success or not<a name="line.461"></a>
-<span class="sourceLineNo">462</span>                try{<a name="line.462"></a>
-<span class="sourceLineNo">463</span>                  Stat stat = new Stat();<a name="line.463"></a>
-<span class="sourceLineNo">464</span>                  startTime = EnvironmentEdgeManager.currentTime();<a name="line.464"></a>
-<span class="sourceLineNo">465</span>                  byte[] revData = checkZk().getData(path, false, stat);<a name="line.465"></a>
-<span class="sourceLineNo">466</span>                  this.metrics.registerReadOperationLatency(<a name="line.466"></a>
-<span class="sourceLineNo">467</span>                          Math.min(EnvironmentEdgeManager.currentTime() - startTime,  1));<a name="line.467"></a>
-<span class="sourceLineNo">468</span>                  if(Bytes.compareTo(revData, newData) == 0) {<a name="line.468"></a>
-<span class="sourceLineNo">469</span>                    // the bad version is caused by previous successful setData<a name="line.469"></a>
-<span class="sourceLineNo">470</span>                    return stat;<a name="line.470"></a>
-<span class="sourceLineNo">471</span>                  }<a name="line.471"></a>
-<span class="sourceLineNo">472</span>                } catch(KeeperException keeperException){<a name="line.472"></a>
-<span class="sourceLineNo">473</span>                  this.metrics.registerFailedZKCall();<a name="line.473"></a>
-<span class="sourceLineNo">474</span>                  // the ZK is not reliable at this moment. just throwing exception<a name="line.474"></a>
-<span class="sourceLineNo">475</span>                  throw keeperException;<a name="line.475"></a>
-<span class="sourceLineNo">476</span>                }<a name="line.476"></a>
-<span class="sourceLineNo">477</span>              }<a name="line.477"></a>
-<span class="sourceLineNo">478</span>            // throw other exceptions and verified bad version exceptions<a name="line.478"></a>
-<span class="sourceLineNo">479</span>            default:<a name="line.479"></a>
-<span class="sourceLineNo">480</span>              throw e;<a name="line.480"></a>
-<span class="sourceLineNo">481</span>          }<a name="line.481"></a>
-<span class="sourceLineNo">482</span>        }<a name="line.482"></a>
-<span class="sourceLineNo">483</span>        retryCounter.sleepUntilNextRetry();<a name="line.483"></a>
-<span class="sourceLineNo">484</span>        isRetry = true;<a name="line.484"></a>
-<span class="sourceLineNo">485</span>      }<a name="line.485"></a>
-<span class="sourceLineNo">486</span>    }<a name="line.486"></a>
-<span class="sourceLineNo">487</span>  }<a name="line.487"></a>
-<span class="sourceLineNo">488</span><a name="line.488"></a>
-<span class="sourceLineNo">489</span>  /**<a name="line.489"></a>
-<span class="sourceLineNo">490</span>   * getAcl is an idempotent operation. Retry before throwing exception<a name="line.490"></a>
-<span class="sourceLineNo">491</span>   * @return list of ACLs<a name="line.491"></a>
-<span class="sourceLineNo">492</span>   */<a name="line.492"></a>
-<span class="sourceLineNo">493</span>  public List&lt;ACL&gt; getAcl(String path, Stat stat)<a name="line.493"></a>
-<span class="sourceLineNo">494</span>  throws KeeperException, InterruptedException {<a name="line.494"></a>
-<span class="sourceLineNo">495</span>    try (TraceScope scope = TraceUtil.createTrace("RecoverableZookeeper.getAcl")) {<a name="line.495"></a>
-<span class="sourceLineNo">496</span>      RetryCounter retryCounter = retryCounterFactory.create();<a name="line.496"></a>
-<span class="sourceLineNo">497</span>      while (true) {<a name="line.497"></a>
-<span class="sourceLineNo">498</span>        try {<a name="line.498"></a>
-<span class="sourceLineNo">499</span>          long startTime = EnvironmentEdgeManager.currentTime();<a name="line.499"></a>
-<span class="sourceLineNo">500</span>          List&lt;ACL&gt; nodeACL = checkZk().getACL(path, stat);<a name="line.500"></a>
-<span class="sourceLineNo">501</span>          this.metrics.registerReadOperationLatency(<a name="line.501"></a>
-<span class="sourceLineNo">502</span>                  Math.min(EnvironmentEdgeManager.currentTime() - startTime,  1));<a name="line.502"></a>
-<span class="sourceLineNo">503</span>          return nodeACL;<a name="line.503"></a>
-<span class="sourceLineNo">504</span>        } catch (KeeperException e) {<a name="line.504"></a>
-<span class="sourceLineNo">505</span>          this.metrics.registerFailedZKCall();<a name="line.505"></a>
-<span class="sourceLineNo">506</span>          switch (e.code()) {<a name="line.506"></a>
-<span class="sourceLineNo">507</span>            case CONNECTIONLOSS:<a name="line.507"></a>
-<span class="sourceLineNo">508</span>              this.metrics.registerConnectionLossException();<a name="line.508"></a>
-<span class="sourceLineNo">509</span>              retryOrThrow(retryCounter, e, "getAcl");<a name="line.509"></a>
-<span class="sourceLineNo">510</span>              break;<a name="line.510"></a>
-<span class="sourceLineNo">511</span>            case OPERATIONTIMEOUT:<a name="line.511"></a>
-<span class="sourceLineNo">512</span>              this.metrics.registerOperationTimeoutException();<a name="line.512"></a>
-<span class="sourceLineNo">513</span>              retryOrThrow(retryCounter, e, "getAcl");<a name="line.513"></a>
-<span class="sourceLineNo">514</span>              break;<a name="line.514"></a>
-<span class="sourceLineNo">515</span><a name="line.515"></a>
-<span class="sourceLineNo">516</span>            default:<a name="line.516"></a>
-<span class="sourceLineNo">517</span>              throw e;<a name="line.517"></a>
-<span class="sourceLineNo">518</span>          }<a name="line.518"></a>
-<span class="sourceLineNo">519</span>        }<a name="line.519"></a>
-<span class="sourceLineNo">520</span>        retryCounter.sleepUntilNextRetry();<a name="line.520"></a>
-<span class="sourceLineNo">521</span>      }<a name="line.521"></a>
-<span class="sourceLineNo">522</span>    }<a name="line.522"></a>
-<span class="sourceLineNo">523</span>  }<a name="line.523"></a>
-<span class="sourceLineNo">524</span><a name="line.524"></a>
-<span class="sourceLineNo">525</span>  /**<a name="line.525"></a>
-<span class="sourceLineNo">526</span>   * setAcl is an idempotent operation. Retry before throwing exception<a name="line.526"></a>
-<span class="sourceLineNo">527</span>   * @return list of ACLs<a name="line.527"></a>
-<span class="sourceLineNo">528</span>   */<a name="line.528"></a>
-<span class="sourceLineNo">529</span>  public Stat setAcl(String path, List&lt;ACL&gt; acls, int version)<a name="line.529"></a>
-<span class="sourceLineNo">530</span>  throws KeeperException, InterruptedException {<a name="line.530"></a>
-<span class="sourceLineNo">531</span>    try (TraceScope scope = TraceUtil.createTrace("RecoverableZookeeper.setAcl")) {<a name="line.531"></a>
-<span class="sourceLineNo">532</span>      RetryCounter retryCounter = retryCounterFactory.create();<a name="line.532"></a>
-<span class="sourceLineNo">533</span>      while (true) {<a name="line.533"></a>
-<span class="sourceLineNo">534</span>        try {<a name="line.534"></a>
-<span class="sourceLineNo">535</span>          long startTime = EnvironmentEdgeManager.currentTime();<a name="line.535"></a>
-<span class="sourceLineNo">536</span>          Stat nodeStat = checkZk().setACL(path, acls, version);<a name="line.536"></a>
-<span class="sourceLineNo">537</span>          this.metrics.registerWriteOperationLatency(<a name="line.537"></a>
-<span class="sourceLineNo">538</span>                  Math.min(EnvironmentEdgeManager.currentTime() - startTime,  1));<a name="line.538"></a>
-<span class="sourceLineNo">539</span>          return nodeStat;<a name="line.539"></a>
-<span class="sourceLineNo">540</span>        } catch (KeeperException e) {<a name="line.540"></a>
-<span class="sourceLineNo">541</span>          this.metrics.registerFailedZKCall();<a name="line.541"></a>
-<span class="sourceLineNo">542</span>          switch (e.code()) {<a name="line.542"></a>
-<span class="sourceLineNo">543</span>            case CONNECTIONLOSS:<a name="line.543"></a>
-<span class="sourceLineNo">544</span>              this.metrics.registerConnectionLossException();<a name="line.544"></a>
-<span class="sourceLineNo">545</span>              retryOrThrow(retryCounter, e, "setAcl");<a name="line.545"></a>
-<span class="sourceLineNo">546</span>              break;<a name="line.546"></a>
-<span class="sourceLineNo">547</span>            case OPERATIONTIMEOUT:<a name="line.547"></a>
-<span class="sourceLineNo">548</span>              this.metrics.registerOperationTimeoutException();<a name="line.548"></a>
-<span class="sourceLineNo">549</span>              retryOrThrow(retryCounter, e, "setAcl");<a name="line.549"></a>
-<span class="sourceLineNo">550</span>              break;<a name="line.550"></a>
-<span class="sourceLineNo">551</span><a name="line.551"></a>
-<span class="sourceLineNo">552</span>            default:<a name="line.552"></a>
-<span class="sourceLineNo">553</span>              throw e;<a name="line.553"></a>
-<span class="sourceLineNo">554</span>          }<a name="line.554"></a>
-<span class="sourceLineNo">555</span>        }<a name="line.555"></a>
-<span class="sourceLineNo">556</span>        retryCounter.sleepUntilNextRetry();<a name="line.556"></a>
-<span class="sourceLineNo">557</span>      }<a name="line.557"></a>
-<span class="sourceLineNo">558</span>    }<a name="line.558"></a>
-<span class="sourceLineNo">559</span>  }<a name="line.559"></a>
-<span class="sourceLineNo">560</span><a name="line.560"></a>
-<span class="sourceLineNo">561</span>  /**<a name="line.561"></a>
-<span class="sourceLineNo">562</span>   * &lt;p&gt;<a name="line.562"></a>
-<span class="sourceLineNo">563</span>   * NONSEQUENTIAL create is idempotent operation.<a name="line.563"></a>
-<span class="sourceLineNo">564</span>   * Retry before throwing exceptions.<a name="line.564"></a>
-<span class="sourceLineNo">565</span>   * But this function will not throw the NodeExist exception back to the<a name="line.565"></a>
-<span class="sourceLineNo">566</span>   * application.<a name="line.566"></a>
-<span class="sourceLineNo">567</span>   * &lt;/p&gt;<a name="line.567"></a>
-<span class="sourceLineNo">568</span>   * &lt;p&gt;<a name="line.568"></a>
-<span class="sourceLineNo">569</span>   * But SEQUENTIAL is NOT idempotent operation. It is necessary to add<a name="line.569"></a>
-<span class="sourceLineNo">570</span>   * identifier to the path to verify, whether the previous one is successful<a name="line.570"></a>
-<span class="sourceLineNo">571</span>   * or not.<a name="line.571"></a>
-<span class="sourceLineNo">572</span>   * &lt;/p&gt;<a name="line.572"></a>
-<span class="sourceLineNo">573</span>   *<a name="line.573"></a>
-<span class="sourceLineNo">574</span>   * @return Path<a name="line.574"></a>
-<span class="sourceLineNo">575</span>   */<a name="line.575"></a>
-<span class="sourceLineNo">576</span>  public String create(String path, byte[] data, List&lt;ACL&gt; acl,<a name="line.576"></a>
-<span class="sourceLineNo">577</span>      CreateMode createMode)<a name="line.577"></a>
-<span class="sourceLineNo">578</span>  throws KeeperException, InterruptedException {<a name="line.578"></a>
-<span class="sourceLineNo">579</span>    try (TraceScope scope = TraceUtil.createTrace("RecoverableZookeeper.create")) {<a name="line.579"></a>
-<span class="sourceLineNo">580</span>      byte[] newData = ZKMetadata.appendMetaData(id, data);<a name="line.580"></a>
-<span class="sourceLineNo">581</span>      switch (createMode) {<a name="line.581"></a>
-<span class="sourceLineNo">582</span>        case EPHEMERAL:<a name="line.582"></a>
-<span class="sourceLineNo">583</span>        case PERSISTENT:<a name="line.583"></a>
-<span class="sourceLineNo">584</span>          return createNonSequential(path, newData, acl, createMode);<a name="line.584"></a>
-<span class="sourceLineNo">585</span><a name="line.585"></a>
-<span class="sourceLineNo">586</span>        case EPHEMERAL_SEQUENTIAL:<a name="line.586"></a>
-<span class="sourceLineNo">587</span>        case PERSISTENT_SEQUENTIAL:<a name="line.587"></a>
-<span class="sourceLineNo">588</span>          return createSequential(path, newData, acl, createMode);<a name="line.588"></a>
+<span class="sourceLineNo">415</span>              retryOrThrow(retryCounter, e, "setData");<a name="line.415"></a>
+<span class="sourceLineNo">416</span>              break;<a name="line.416"></a>
+<span class="sourceLineNo">417</span>            case BADVERSION:<a name="line.417"></a>
+<span class="sourceLineNo">418</span>              if (isRetry) {<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                // try to verify whether the previous setData success or not<a name="line.419"></a>
+<span class="sourceLineNo">420</span>                try{<a name="line.420"></a>
+<span class="sourceLineNo">421</span>                  Stat stat = new Stat();<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                  startTime = EnvironmentEdgeManager.currentTime();<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                  byte[] revData = checkZk().getData(path, false, stat);<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                  if(Bytes.compareTo(revData, newData) == 0) {<a name="line.424"></a>
+<span class="sourceLineNo">425</span>                    // the bad version is caused by previous successful setData<a name="line.425"></a>
+<span class="sourceLineNo">426</span>                    return stat;<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                  }<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                } catch(KeeperException keeperException){<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                  // the ZK is not reliable at this moment. just throwing exception<a name="line.429"></a>
+<span class="sourceLineNo">430</span>                  throw keeperException;<a name="line.430"></a>
+<span class="sourceLineNo">431</span>                }<a name="line.431"></a>
+<span class="sourceLineNo">432</span>              }<a name="line.432"></a>
+<span class="sourceLineNo">433</span>            // throw other exceptions and verified bad version exceptions<a name="line.433"></a>
+<span class="sourceLineNo">434</span>            default:<a name="line.434"></a>
+<span class="sourceLineNo">435</span>              throw e;<a name="line.435"></a>
+<span class="sourceLineNo">436</span>          }<a name="line.436"></a>
+<span class="sourceLineNo">437</span>        }<a name="line.437"></a>
+<span class="sourceLineNo">438</span>        retryCounter.sleepUntilNextRetry();<a name="line.438"></a>
+<span class="sourceLineNo">439</span>        isRetry = true;<a name="line.439"></a>
+<span class="sourceLineNo">440</span>      }<a name="line.440"></a>
+<span class="sourceLineNo">441</span>    }<a name="line.441"></a>
+<span class="sourceLineNo">442</span>  }<a name="line.442"></a>
+<span class="sourceLineNo">443</span><a name="line.443"></a>
+<span class="sourceLineNo">444</span>  /**<a name="line.444"></a>
+<span class="sourceLineNo">445</span>   * getAcl is an idempotent operation. Retry before throwing exception<a name="line.445"></a>
+<span class="sourceLineNo">446</span>   * @return list of ACLs<a name="line.446"></a>
+<span class="sourceLineNo">447</span>   */<a name="line.447"></a>
+<span class="sourceLineNo">448</span>  public List&lt;ACL&gt; getAcl(String path, Stat stat)<a name="line.448"></a>
+<span class="sourceLineNo">449</span>  throws KeeperException, InterruptedException {<a name="line.449"></a>
+<span class="sourceLineNo">450</span>    try (TraceScope scope = TraceUtil.createTrace("RecoverableZookeeper.getAcl")) {<a name="line.450"></a>
+<span class="sourceLineNo">451</span>      RetryCounter retryCounter = retryCounterFactory.create();<a name="line.451"></a>
+<span class="sourceLineNo">452</span>      while (true) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>        try {<a name="line.453"></a>
+<span class="sourceLineNo">454</span>          long startTime = EnvironmentEdgeManager.currentTime();<a name="line.454"></a>
+<span class="sourceLineNo">455</span>          List&lt;ACL&gt; nodeACL = checkZk().getACL(path, stat);<a name="line.455"></a>
+<span class="sourceLineNo">456</span>          return nodeACL;<a name="line.456"></a>
+<span class="sourceLineNo">457</span>        } catch (KeeperException e) {<a name="line.457"></a>
+<span class="sourceLineNo">458</span>          switch (e.code()) {<a name="line.458"></a>
+<span class="sourceLineNo">459</span>            case CONNECTIONLOSS:<a name="line.459"></a>
+<span class="sourceLineNo">460</span>              retryOrThrow(retryCounter, e, "getAcl");<a name="line.460"></a>
+<span class="sourceLineNo">461</span>              break;<a name="line.461"></a>
+<span class="sourceLineNo">462</span>            case OPERATIONTIMEOUT:<a name="line.462"></a>
+<span class="sourceLineNo">463</span>              retryOrThrow(retryCounter, e, "getAcl");<a name="line.463"></a>
+<span class="sourceLineNo">464</span>              break;<a name="line.464"></a>
+<span class="sourceLineNo">465</span><a name="line.465"></a>
+<span class="sourceLineNo">466</span>            default:<a name="line.466"></a>
+<span class="sourceLineNo">467</span>              throw e;<a name="line.467"></a>
+<span class="sourceLineNo">468</span>          }<a name="line.468"></a>
+<span class="sourceLineNo">469</span>        }<a name="line.469"></a>
+<span class="sourceLineNo">470</span>        retryCounter.sleepUntilNextRetry();<a name="line.470"></a>
+<span class="sourceLineNo">471</span>      }<a name="line.471"></a>
+<span class="sourceLineNo">472</span>    }<a name="line.472"></a>
+<span class="sourceLineNo">473</span>  }<a name="line.473"></a>
+<span class="sourceLineNo">474</span><a name="line.474"></a>
+<span class="sourceLineNo">475</span>  /**<a name="line.475"></a>
+<span class="sourceLineNo">476</span>   * setAcl is an idempotent operation. Retry before throwing exception<a name="line.476"></a>
+<span class="sourceLineNo">477</span>   * @return list of ACLs<a name="line.477"></a>
+<span class="sourceLineNo">478</span>   */<a name="line.478"></a>
+<span class="sourceLineNo">479</span>  public Stat setAcl(String path, List&lt;ACL&gt; acls, int version)<a name="line.479"></a>
+<span class="sourceLineNo">480</span>  throws KeeperException, InterruptedException {<a name="line.480"></a>
+<span class="sourceLineNo">481</span>    try (TraceScope scope = TraceUtil.createTrace("RecoverableZookeeper.setAcl")) {<a name="line.481"></a>
+<span class="sourceLineNo">482</span>      RetryCounter retryCounter = retryCounterFactory.create();<a name="line.482"></a>
+<span class="sourceLineNo">483</span>      while (true) {<a name="line.483"></a>
+<span class="sourceLineNo">484</span>        try {<a name="line.484"></a>
+<span class="sourceLineNo">485</span>          long startTime = EnvironmentEdgeManager.currentTime();<a name="line.485"></a>
+<span class="sourceLineNo">486</span>          Stat nodeStat = checkZk().setACL(path, acls, version);<a name="line.486"></a>
+<span class="sourceLineNo">487</span>          return nodeStat;<a name="line.487"></a>
+<span class="sourceLineNo">488</span>        } catch (KeeperException e) {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>          switch (e.code()) {<a name="line.489"></a>
+<span class="sourceLineNo">490</span>            case CONNECTIONLOSS:<a name="line.490"></a>
+<span class="sourceLineNo">491</span>              retryOrThrow(retryCounter, e, "setAcl");<a name="line.491"></a>
+<span class="sourceLineNo">492</span>              break;<a name="line.492"></a>
+<span class="sourceLineNo">493</span>            case OPERATIONTIMEOUT:<a name="line.493"></a>
+<span class="sourceLineNo">494</span>              retryOrThrow(retryCounter, e, "setAcl");<a name="line.494"></a>
+<span class="sourceLineNo">495</span>              break;<a name="line.495"></a>
+<span class="sourceLineNo">496</span><a name="line.496"></a>
+<span class="sourceLineNo">497</span>            default:<a name="line.497"></a>
+<span class="sourceLineNo">498</span>              throw e;<a name="line.498"></a>
+<span class="sourceLineNo">499</span>          }<a name="line.499"></a>
+<span class="sourceLineNo">500</s

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/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 7c234b6..b1856b5 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/HMaster.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/HMaster.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":9,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":9,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":9,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10,"i91":10,"i92":10,"i93":10,"i94":10,"i95":10,"i96":10,"i97":10,"i98":10,"i99":10,"i100":10,"i101":10,"i102":10,"i103":10,"i104":10,"i105":10,"i106":10,"i107":10,"i108":10,"i109
 ":10,"i110":10,"i111":10,"i112":10,"i113":10,"i114":10,"i115":10,"i116":9,"i117":10,"i118":10,"i119":10,"i120":10,"i121":10,"i122":10,"i123":10,"i124":10,"i125":10,"i126":10,"i127":10,"i128":10,"i129":10,"i130":9,"i131":10,"i132":10,"i133":10,"i134":10,"i135":10,"i136":10,"i137":10,"i138":10,"i139":10,"i140":10,"i141":10,"i142":10,"i143":10,"i144":10,"i145":10,"i146":10,"i147":10,"i148":10,"i149":10,"i150":10,"i151":10,"i152":10,"i153":10,"i154":10,"i155":10,"i156":10,"i157":10,"i158":10,"i159":10,"i160":10,"i161":10,"i162":10,"i163":10,"i164":10,"i165":10,"i166":10,"i167":9};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":9,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":9,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":9,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10,"i91":10,"i92":10,"i93":10,"i94":10,"i95":10,"i96":10,"i97":10,"i98":10,"i99":10,"i100":10,"i101":10,"i102":10,"i103":10,"i104":10,"i105":10,"i106":10,"i107":10,"i108":10,"i109
 ":10,"i110":10,"i111":10,"i112":10,"i113":10,"i114":10,"i115":10,"i116":9,"i117":10,"i118":10,"i119":10,"i120":10,"i121":10,"i122":10,"i123":10,"i124":10,"i125":10,"i126":10,"i127":10,"i128":10,"i129":10,"i130":9,"i131":10,"i132":10,"i133":10,"i134":10,"i135":10,"i136":10,"i137":10,"i138":10,"i139":10,"i140":10,"i141":10,"i142":10,"i143":10,"i144":10,"i145":10,"i146":10,"i147":10,"i148":10,"i149":10,"i150":10,"i151":10,"i152":10,"i153":10,"i154":10,"i155":10,"i156":10,"i157":10,"i158":10,"i159":10,"i160":10,"i161":10,"i162":10,"i163":10,"i164":10,"i165":10,"i166":10,"i167":10,"i168":9};
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -128,7 +128,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.LimitedPrivate(value="Tools")
-public class <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.230">HMaster</a>
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.231">HMaster</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a>
 implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></pre>
 <div class="block">HMaster is the "master server" for HBase. An HBase cluster has one active
@@ -455,7 +455,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#cacheConfig">cacheConfig</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#cacheFlusher">cacheFlusher</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#clusterConnection">clusterConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#clusterStatusTracker">clusterStatusTracker</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#compactSplitThread">compactSplitThread</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#conf">conf</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#configurationManager">configurationManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#csm">csm</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.ht
 ml#executorService">executorService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#fs">fs</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#fsOk">fsOk</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#fsUtilizationChore">fsUtilizationChore</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#hMemManager">hMemManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#infoServer">infoServer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#leases">leases</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#lock">lock</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#MASTER_HOSTNAME_KEY">MASTER_HOSTNAME_KEY</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#metaTableLocator">metaTa
 bleLocator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#movedRegions">movedRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#msgInterval">msgInterval</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#numRegionsToReport">numRegionsToReport</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#onlineRegions">onlineRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#regionFavoredNodesMap">regionFavoredNodesMap</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#REGIONSERVER">REGIONSERVER</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#regionsInTransitionInRS">regionsInTransitionInRS</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#replicationSinkHandler">replicationSinkHandler</a>, <a href="../.
 ./../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#replicationSourceHandler">replicationSourceHandler</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#rpcServices">rpcServices</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#secureBulkLoadManager">secureBulkLoadManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#serverName">serverName</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#sleeper">sleeper</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#startcode">startcode</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#tableDescriptors">tableDescriptors</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#TEST_SKIP_REPORTING_TRANSITION">TEST_SKIP_REPORTING_TRANSITION</a>, <a href="../../../../../org/apache/hadoop/hbase/re
 gionserver/HRegionServer.html#threadWakeFrequency">threadWakeFrequency</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#useThisHostnameInstead">useThisHostnameInstead</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#walFactory">walFactory</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#walFs">walFs</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#walRoller">walRoller</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#zooKeeper">zooKeeper</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#cacheConfig">cacheConfig</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#cacheFlusher">cacheFlusher</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#clusterConnection">clusterConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#clusterId">clusterId</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#clusterStatusTracker">clusterStatusTracker</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#compactSplitThread">compactSplitThread</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#conf">conf</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#configurationManager">configurationManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HReg
 ionServer.html#csm">csm</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#executorService">executorService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#fs">fs</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#fsOk">fsOk</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#fsUtilizationChore">fsUtilizationChore</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#hMemManager">hMemManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#infoServer">infoServer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#leases">leases</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#lock">lock</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#MASTER_HOSTNAME_KEY">MASTER_HOSTNAME_KEY</a>
 , <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#metaTableLocator">metaTableLocator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#movedRegions">movedRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#msgInterval">msgInterval</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#numRegionsToReport">numRegionsToReport</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#onlineRegions">onlineRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#regionFavoredNodesMap">regionFavoredNodesMap</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#REGIONSERVER">REGIONSERVER</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#regionsInTransitionInRS">regionsInTransitionInRS</a>, <a href="../../../../../org/apache/hado
 op/hbase/regionserver/HRegionServer.html#replicationSinkHandler">replicationSinkHandler</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#replicationSourceHandler">replicationSourceHandler</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#rpcServices">rpcServices</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#secureBulkLoadManager">secureBulkLoadManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#serverName">serverName</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#sleeper">sleeper</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#startcode">startcode</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#tableDescriptors">tableDescriptors</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#TEST_SKIP_RE
 PORTING_TRANSITION">TEST_SKIP_REPORTING_TRANSITION</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#threadWakeFrequency">threadWakeFrequency</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#useThisHostnameInstead">useThisHostnameInstead</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#walFactory">walFactory</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#walFs">walFs</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#walRoller">walRoller</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#zooKeeper">zooKeeper</a></code></li>
 </ul>
 </li>
 </ul>
@@ -1325,24 +1325,30 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#startServiceThreads--">startServiceThreads</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i158" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#stop-java.lang.String-">stop</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;msg)</code>
+<div class="block">Stop this service.</div>
+</td>
+</tr>
+<tr id="i159" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#stopChores--">stopChores</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i159" class="rowColor">
+<tr id="i160" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#stopMaster--">stopMaster</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i160" class="altColor">
+<tr id="i161" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#stopProcedureExecutor--">stopProcedureExecutor</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i161" class="rowColor">
+<tr id="i162" class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#stopServiceThreads--">stopServiceThreads</a></span>()</code>
 <div class="block">Wait on all threads to finish.</div>
 </td>
 </tr>
-<tr id="i162" class="altColor">
+<tr id="i163" class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#truncateTable-org.apache.hadoop.hbase.TableName-boolean-long-long-">truncateTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
              boolean&nbsp;preserveSplits,
@@ -1351,32 +1357,32 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <div class="block">Truncate a table</div>
 </td>
 </tr>
-<tr id="i163" class="rowColor">
+<tr id="i164" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#updateConfigurationForSpaceQuotaObserver-org.apache.hadoop.conf.Configuration-">updateConfigurationForSpaceQuotaObserver</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>
 <div class="block">Adds the <code>MasterSpaceQuotaObserver</code> to the list of configured Master observers to
  automatically remove space quotas for a table when that table is deleted.</div>
 </td>
 </tr>
-<tr id="i164" class="altColor">
+<tr id="i165" class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#updateReplicationPeerConfig-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">updateReplicationPeerConfig</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;peerId,
                            <a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication">ReplicationPeerConfig</a>&nbsp;peerConfig)</code>
 <div class="block">Update the peerConfig for the specified peer</div>
 </td>
 </tr>
-<tr id="i165" class="rowColor">
+<tr id="i166" class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#waitForMasterActive--">waitForMasterActive</a></span>()</code>
 <div class="block">If configured to put regions on active master,
  wait till a backup master becomes active.</div>
 </td>
 </tr>
-<tr id="i166" class="altColor">
+<tr id="i167" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#waitForRegionServers-org.apache.hadoop.hbase.monitoring.MonitoredTask-">waitForRegionServers</a></span>(<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a>&nbsp;status)</code>&nbsp;</td>
 </tr>
-<tr id="i167" class="rowColor">
+<tr id="i168" class="altColor">
 <td class="colFirst"><code>private static void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#warnOrThrowExceptionForFailure-boolean-java.lang.String-java.lang.String-java.lang.Exception-">warnOrThrowExceptionForFailure</a></span>(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,
@@ -1389,7 +1395,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#abort-java.lang.String-">abort</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#addRegion-org.apache.hadoop.hbase.regionserver.HRegion-">addRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#addToMovedRegions-java.lang.String-org.apache.hadoop.hbase.ServerName-long-">addToMovedRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#checkFileSystem--">checkFileSystem</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#cleanMovedRegions--">cleanMovedRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#clearRegionBlockCache-org.apache.hadoop.hbase.regionserver.Region-">clearRegionBlockCache</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#closeAllRegions-boolean-">closeAllRegions</a
 >, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#closeAndOfflineRegionForSplitOrMerge-java.util.List-">closeAndOfflineRegionForSplitOrMerge</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#closeRegion-java.lang.String-boolean-org.apache.hadoop.hbase.ServerName-">closeRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#constructRegionServer-java.lang.Class-org.apache.hadoop.conf.Configuration-">constructRegionServer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#convertThrowableToIOE-java.lang.Throwable-java.lang.String-">convertThrowableToIOE</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createClusterConnection--">createClusterConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createConnection-org.apache.hadoop.conf.Configuration-">createConnection</a>, <
 a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createRegionLoad-java.lang.String-">createRegionLoad</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createRegionServerStatusStub--">createRegionServerStatusStub</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createRegionServerStatusStub-boolean-">createRegionServerStatusStub</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#execRegionServerService-org.apache.hbase.thirdparty.com.google.protobuf.RpcController-org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceRequest-">execRegionServerService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#executeProcedure-long-org.apache.hadoop.hbase.procedure2.RSProcedureCallable-">executeProcedure</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCacheConfig
 --">getCacheConfig</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getChoreService--">getChoreService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getClusterConnection--">getClusterConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getClusterId--">getClusterId</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCompactionPressure--">getCompactionPressure</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCompactionRequestor--">getCompactionRequestor</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCompactSplitThread--">getCompactSplitThread</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getConfiguration--">getConfiguration</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getConfig
 urationManager--">getConfigurationManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getConnection--">getConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCoordinatedStateManager--">getCoordinatedStateManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getEventLoopGroupConfig--">getEventLoopGroupConfig</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getExecutorService--">getExecutorService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFavoredNodesForRegion-java.lang.String-">getFavoredNodesForRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFileSystem--">getFileSystem</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFlushPressure--">getFlushPressure</a>, <a href="../../../../../org/apache/had
 oop/hbase/regionserver/HRegionServer.html#getFlushRequester--">getFlushRequester</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFlushThroughputController--">getFlushThroughputController</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFsTableDescriptors--">getFsTableDescriptors</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getHeapMemoryManager--">getHeapMemoryManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getInfoServer--">getInfoServer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getLastSequenceId-byte:A-">getLastSequenceId</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getLeases--">getLeases</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMasterAddressTracker--">getMasterAddressTracker</a>, <a href="../.
 ./../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMetaTableLocator--">getMetaTableLocator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMetrics--">getMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMostLoadedRegions--">getMostLoadedRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getNonceManager--">getNonceManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getNumberOfOnlineRegions--">getNumberOfOnlineRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getOnlineRegion-byte:A-">getOnlineRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getOnlineRegionsLocalContext--">getOnlineRegionsLocalContext</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getOnlineTables--">getOnlineTabl
 es</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegion-byte:A-">getRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegion-java.lang.String-">getRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionBlockLocations-java.lang.String-">getRegionBlockLocations</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionByEncodedName-byte:A-java.lang.String-">getRegionByEncodedName</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionByEncodedName-java.lang.String-">getRegionByEncodedName</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegions--">getRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegions-org.apache.hadoop.hbase.TableName-">getRegions</a>, <a href="../../../../../org/apache/hado
 op/hbase/regionserver/HRegionServer.html#getRegionServerAccounting--">getRegionServerAccounting</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerCoprocessorHost--">getRegionServerCoprocessorHost</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerCoprocessors--">getRegionServerCoprocessors</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerMetrics--">getRegionServerMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerRpcQuotaManager--">getRegionServerRpcQuotaManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerSpaceQuotaManager--">getRegionServerSpaceQuotaManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionsInTransitionInRS--">getRegionsInTransitionInRS</a>, <a href="../../../../.
 ./org/apache/hadoop/hbase/regionserver/HRegionServer.html#getReplicationSourceService--">getReplicationSourceService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRootDir--">getRootDir</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRpcServer--">getRpcServer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRSRpcServices--">getRSRpcServices</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getSecureBulkLoadManager--">getSecureBulkLoadManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getStartcode--">getStartcode</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getThreadWakeFrequency--">getThreadWakeFrequency</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWAL-org.apache.hadoop.hbase.client.RegionInfo-">getWAL</a>, 
 <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWALFileSystem--">getWALFileSystem</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWalRoller--">getWalRoller</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWALRootDir--">getWALRootDir</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWALs--">getWALs</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#handleReportForDutyResponse-org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupResponse-">handleReportForDutyResponse</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#initializeMemStoreChunkCreator--">initializeMemStoreChunkCreator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isAborted--">isAborted</a>, <a href="../../../../../org/apache/ha
 doop/hbase/regionserver/HRegionServer.html#isOnline--">isOnline</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isStopped--">isStopped</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isStopping--">isStopping</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#kill--">kill</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#movedRegionCleanerPeriod--">movedRegionCleanerPeriod</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#onConfigurationChange-org.apache.hadoop.conf.Configuration-">onConfigurationChange</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#postOpenDeployTasks-org.apache.hadoop.hbase.regionserver.RegionServerServices.PostOpenDeployContext-">postOpenDeployTasks</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#regionLock-java.uti
 l.List-java.lang.String-org.apache.hadoop.hbase.Abortable-">regionLock</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#remoteProcedureComplete-long-java.lang.Throwable-">remoteProcedureComplete</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#removeRegion-org.apache.hadoop.hbase.regionserver.HRegion-org.apache.hadoop.hbase.ServerName-">removeRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#reportRegionSizesForQuotas-java.util.Map-">reportRegionSizesForQuotas</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#reportRegionStateTransition-org.apache.hadoop.hbase.regionserver.RegionServerServices.RegionStateTransitionContext-">reportRegionStateTransition</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#sendShutdownInterrupt--">sendShutdownInterrupt</a>, <a href="../../../../../org/apache/hadoop/hbase/reg
 ionserver/HRegionServer.html#setupClusterConnection--">setupClusterConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#shouldUseThisHostnameInstead--">shouldUseThisHostnameInstead</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#stop-java.lang.String-">stop</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#stop-java.lang.String-boolean-org.apache.hadoop.hbase.security.User-">stop</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#toString--">toString</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#tryRegionServerReport-long-long-">tryRegionServerReport</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#unassign-byte:A-">unassign</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#updateConfiguration--">updateConfiguration</a>, <a href
 ="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#updateRegionFavoredNodesMapping-java.lang.String-java.util.List-">updateRegionFavoredNodesMapping</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#waitForServerOnline--">waitForServerOnline</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#walRollRequestFinished--">walRollRequestFinished</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#abort-java.lang.String-">abort</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#addRegion-org.apache.hadoop.hbase.regionserver.HRegion-">addRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#addToMovedRegions-java.lang.String-org.apache.hadoop.hbase.ServerName-long-">addToMovedRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#checkFileSystem--">checkFileSystem</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#cleanMovedRegions--">cleanMovedRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#clearRegionBlockCache-org.apache.hadoop.hbase.regionserver.Region-">clearRegionBlockCache</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#closeAllRegions-boolean-">closeAllRegions</a
 >, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#closeAndOfflineRegionForSplitOrMerge-java.util.List-">closeAndOfflineRegionForSplitOrMerge</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#closeRegion-java.lang.String-boolean-org.apache.hadoop.hbase.ServerName-">closeRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#constructRegionServer-java.lang.Class-org.apache.hadoop.conf.Configuration-">constructRegionServer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#convertThrowableToIOE-java.lang.Throwable-java.lang.String-">convertThrowableToIOE</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createClusterConnection--">createClusterConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createConnection-org.apache.hadoop.conf.Configuration-">createConnection</a>, <
 a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createRegionLoad-java.lang.String-">createRegionLoad</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createRegionServerStatusStub--">createRegionServerStatusStub</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createRegionServerStatusStub-boolean-">createRegionServerStatusStub</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#execRegionServerService-org.apache.hbase.thirdparty.com.google.protobuf.RpcController-org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceRequest-">execRegionServerService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#executeProcedure-long-org.apache.hadoop.hbase.procedure2.RSProcedureCallable-">executeProcedure</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCacheConfig
 --">getCacheConfig</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getChoreService--">getChoreService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getClusterConnection--">getClusterConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getClusterId--">getClusterId</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCompactionPressure--">getCompactionPressure</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCompactionRequestor--">getCompactionRequestor</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCompactSplitThread--">getCompactSplitThread</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getConfiguration--">getConfiguration</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getConfig
 urationManager--">getConfigurationManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getConnection--">getConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCoordinatedStateManager--">getCoordinatedStateManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getEventLoopGroupConfig--">getEventLoopGroupConfig</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getExecutorService--">getExecutorService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFavoredNodesForRegion-java.lang.String-">getFavoredNodesForRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFileSystem--">getFileSystem</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFlushPressure--">getFlushPressure</a>, <a href="../../../../../org/apache/had
 oop/hbase/regionserver/HRegionServer.html#getFlushRequester--">getFlushRequester</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFlushThroughputController--">getFlushThroughputController</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFsTableDescriptors--">getFsTableDescriptors</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getHeapMemoryManager--">getHeapMemoryManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getInfoServer--">getInfoServer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getLastSequenceId-byte:A-">getLastSequenceId</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getLeases--">getLeases</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMasterAddressTracker--">getMasterAddressTracker</a>, <a href="../.
 ./../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMetaTableLocator--">getMetaTableLocator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMetrics--">getMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMostLoadedRegions--">getMostLoadedRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getNonceManager--">getNonceManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getNumberOfOnlineRegions--">getNumberOfOnlineRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getOnlineRegion-byte:A-">getOnlineRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getOnlineRegionsLocalContext--">getOnlineRegionsLocalContext</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getOnlineTables--">getOnlineTabl
 es</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegion-byte:A-">getRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegion-java.lang.String-">getRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionBlockLocations-java.lang.String-">getRegionBlockLocations</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionByEncodedName-byte:A-java.lang.String-">getRegionByEncodedName</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionByEncodedName-java.lang.String-">getRegionByEncodedName</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegions--">getRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegions-org.apache.hadoop.hbase.TableName-">getRegions</a>, <a href="../../../../../org/apache/hado
 op/hbase/regionserver/HRegionServer.html#getRegionServerAccounting--">getRegionServerAccounting</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerCoprocessorHost--">getRegionServerCoprocessorHost</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerCoprocessors--">getRegionServerCoprocessors</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerMetrics--">getRegionServerMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerRpcQuotaManager--">getRegionServerRpcQuotaManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerSpaceQuotaManager--">getRegionServerSpaceQuotaManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionsInTransitionInRS--">getRegionsInTransitionInRS</a>, <a href="../../../../.
 ./org/apache/hadoop/hbase/regionserver/HRegionServer.html#getReplicationSourceService--">getReplicationSourceService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRootDir--">getRootDir</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRpcServer--">getRpcServer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRSRpcServices--">getRSRpcServices</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getSecureBulkLoadManager--">getSecureBulkLoadManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getStartcode--">getStartcode</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getThreadWakeFrequency--">getThreadWakeFrequency</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWAL-org.apache.hadoop.hbase.client.RegionInfo-">getWAL</a>, 
 <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWALFileSystem--">getWALFileSystem</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWalRoller--">getWalRoller</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWALRootDir--">getWALRootDir</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWALs--">getWALs</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#handleReportForDutyResponse-org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupResponse-">handleReportForDutyResponse</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#initializeMemStoreChunkCreator--">initializeMemStoreChunkCreator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isAborted--">isAborted</a>, <a href="../../../../../org/apache/ha
 doop/hbase/regionserver/HRegionServer.html#isOnline--">isOnline</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isStopped--">isStopped</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isStopping--">isStopping</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#kill--">kill</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#movedRegionCleanerPeriod--">movedRegionCleanerPeriod</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#onConfigurationChange-org.apache.hadoop.conf.Configuration-">onConfigurationChange</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#postOpenDeployTasks-org.apache.hadoop.hbase.regionserver.RegionServerServices.PostOpenDeployContext-">postOpenDeployTasks</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#regionLock-java.uti
 l.List-java.lang.String-org.apache.hadoop.hbase.Abortable-">regionLock</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#remoteProcedureComplete-long-java.lang.Throwable-">remoteProcedureComplete</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#removeRegion-org.apache.hadoop.hbase.regionserver.HRegion-org.apache.hadoop.hbase.ServerName-">removeRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#reportRegionSizesForQuotas-java.util.Map-">reportRegionSizesForQuotas</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#reportRegionStateTransition-org.apache.hadoop.hbase.regionserver.RegionServerServices.RegionStateTransitionContext-">reportRegionStateTransition</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#sendShutdownInterrupt--">sendShutdownInterrupt</a>, <a href="../../../../../org/apache/hadoop/hbase/reg
 ionserver/HRegionServer.html#setupClusterConnection--">setupClusterConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#shouldUseThisHostnameInstead--">shouldUseThisHostnameInstead</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#stop-java.lang.String-boolean-org.apache.hadoop.hbase.security.User-">stop</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#toString--">toString</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#tryRegionServerReport-long-long-">tryRegionServerReport</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#unassign-byte:A-">unassign</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#updateConfiguration--">updateConfiguration</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#updateRegionFavoredNodesMapping-java.lang
 .String-java.util.List-">updateRegionFavoredNodesMapping</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#waitForServerOnline--">waitForServerOnline</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#walRollRequestFinished--">walRollRequestFinished</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.util.HasThread">
@@ -1431,7 +1437,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.<a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/Stoppable.html#isStopped--">isStopped</a>, <a href="../../../../../org/apache/hadoop/hbase/Stoppable.html#stop-java.lang.String-">stop</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/Stoppable.html#isStopped--">isStopped</a></code></li>
 </ul>
 </li>
 </ul>
@@ -1453,7 +1459,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.231">LOG</a></pre>
+<pre>private static&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.232">LOG</a></pre>
 </li>
 </ul>
 <a name="MASTER">
@@ -1462,7 +1468,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>MASTER</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/HMaster.html#line.287">MASTER</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/HMaster.html#line.288">MASTER</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.master.HMaster.MASTER">Constant Field Values</a></dd>
@@ -1475,7 +1481,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>activeMasterManager</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/ActiveMasterManager.html" title="class in org.apache.hadoop.hbase.master">ActiveMasterManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.290">activeMasterManager</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/ActiveMasterManager.html" title="class in org.apache.hadoop.hbase.master">ActiveMasterManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.291">activeMasterManager</a></pre>
 </li>
 </ul>
 <a name="regionServerTracker">
@@ -1484,7 +1490,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>regionServerTracker</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/master/RegionServerTracker.html" title="class in org.apache.hadoop.hbase.master">RegionServerTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.292">regionServerTracker</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/master/RegionServerTracker.html" title="class in org.apache.hadoop.hbase.master">RegionServerTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.293">regionServerTracker</a></pre>
 </li>
 </ul>
 <a name="drainingServerTracker">
@@ -1493,7 +1499,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>drainingServerTracker</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/DrainingServerTracker.html" title="class in org.apache.hadoop.hbase.master">DrainingServerTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.294">drainingServerTracker</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/DrainingServerTracker.html" title="class in org.apache.hadoop.hbase.master">DrainingServerTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.295">drainingServerTracker</a></pre>
 </li>
 </ul>
 <a name="loadBalancerTracker">
@@ -1502,7 +1508,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>loadBalancerTracker</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/zookeeper/LoadBalancerTracker.html" title="class in org.apache.hadoop.hbase.zookeeper">LoadBalancerTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.296">loadBalancerTracker</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/zookeeper/LoadBalancerTracker.html" title="class in org.apache.hadoop.hbase.zookeeper">LoadBalancerTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.297">loadBalancerTracker</a></pre>
 </li>
 </ul>
 <a name="splitOrMergeTracker">
@@ -1511,7 +1517,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>splitOrMergeTracker</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/SplitOrMergeTracker.html" title="class in org.apache.hadoop.hbase.master">SplitOrMergeTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.299">splitOrMergeTracker</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/SplitOrMergeTracker.html" title="class in org.apache.hadoop.hbase.master">SplitOrMergeTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.300">splitOrMergeTracker</a></pre>
 </li>
 </ul>
 <a name="regionNormalizerTracker">
@@ -1520,7 +1526,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>regionNormalizerTracker</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/RegionNormalizerTracker.html" title="class in org.apache.hadoop.hbase.zookeeper">RegionNormalizerTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.302">regionNormalizerTracker</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/RegionNormalizerTracker.html" title="class in org.apache.hadoop.hbase.zookeeper">RegionNormalizerTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.303">regionNormalizerTracker</a></pre>
 </li>
 </ul>
 <a name="maintenanceModeTracker">
@@ -1529,7 +1535,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>maintenanceModeTracker</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/MasterMaintenanceModeTracker.html" title="class in org.apache.hadoop.hbase.zookeeper">MasterMaintenanceModeTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.305">maintenanceModeTracker</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/MasterMaintenanceModeTracker.html" title="class in org.apache.hadoop.hbase.zookeeper">MasterMaintenanceModeTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.306">maintenanceModeTracker</a></pre>
 </li>
 </ul>
 <a name="clusterSchemaService">
@@ -1538,7 +1544,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>clusterSchemaService</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/ClusterSchemaService.html" title="interface in org.apache.hadoop.hbase.master">ClusterSchemaService</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.307">clusterSchemaService</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/ClusterSchemaService.html" title="interface in org.apache.hadoop.hbase.master">ClusterSchemaService</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.308">clusterSchemaService</a></pre>
 </li>
 </ul>
 <a name="HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS">
@@ -1547,7 +1553,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS</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/HMaster.html#line.309">HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS</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/HMaster.html#line.310">HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.master.HMaster.HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS">Constant Field Values</a></dd>
@@ -1560,7 +1566,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS</h4>
-<pre>public static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.311">DEFAULT_HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS</a></pre>
+<pre>public static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.312">DEFAULT_HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.master.HMaster.DEFAULT_HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS">Constant Field Values</a></dd>
@@ -1573,7 +1579,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>metricsMaster</h4>
-<pre>final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MetricsMaster.html" title="class in org.apache.hadoop.hbase.master">MetricsMaster</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.314">metricsMaster</a></pre>
+<pre>final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MetricsMaster.html" title="class in org.apache.hadoop.hbase.master">MetricsMaster</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.315">metricsMaster</a></pre>
 </li>
 </ul>
 <a name="fileSystemManager">
@@ -1582,7 +1588,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>fileSystemManager</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterFileSystem.html" title="class in org.apache.hadoop.hbase.master">MasterFileSystem</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.316">fileSystemManager</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterFileSystem.html" title="class in org.apache.hadoop.hbase.master">MasterFileSystem</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.317">fileSystemManager</a></pre>
 </li>
 </ul>
 <a name="walManager">
@@ -1591,7 +1597,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>walManager</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterWalManager.html" title="class in org.apache.hadoop.hbase.master">MasterWalManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.317">walManager</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterWalManager.html" title="class in org.apache.hadoop.hbase.master">MasterWalManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.318">walManager</a></pre>
 </li>
 </ul>
 <a name="serverManager">
@@ -1600,7 +1606,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>serverManager</h4>
-<pre>private volatile&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/master/HMaster.html#line.320">serverManager</a></pre>
+<pre>private volatile&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/master/HMaster.html#line.321">serverManager</a></pre>
 </li>
 </ul>
 <a name="assignmentManager">
@@ -1609,7 +1615,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>assignmentManager</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/assignment/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignmentManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.323">assignmentManager</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/assignment/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignmentManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.324">assignmentManager</a></pre>
 </li>
 </ul>
 <a name="replicationPeerManager">
@@ -1618,7 +1624,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>replicationPeerManager</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.html" title="class in org.apache.hadoop.hbase.master.replication">ReplicationPeerManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.326">replicationPeerManager</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.html" title="class in org.apache.hadoop.hbase.master.replication">ReplicationPeerManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.327">replicationPeerManager</a></pre>
 </li>
 </ul>
 <a name="rsFatals">
@@ -1627,7 +1633,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>rsFatals</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/monitoring/MemoryBoundedLogMessageBuffer.html" title="class in org.apache.hadoop.hbase.monitoring">MemoryBoundedLogMessageBuffer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.331">rsFatals</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/monitoring/MemoryBoundedLogMessageBuffer.html" title="class in org.apache.hadoop.hbase.monitoring">MemoryBoundedLogMessageBuffer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.332">rsFatals</a></pre>
 </li>
 </ul>
 <a name="activeMaster">
@@ -1636,7 +1642,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>activeMaster</h4>
-<pre>private volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.334">activeMaster</a></pre>
+<pre>private volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.335">activeMaster</a></pre>
 </li>
 </ul>
 <a name="initialized">
@@ -1645,7 +1651,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>initialized</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureEvent</a>&lt;?&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.337">initialized</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureEvent</a>&lt;?&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.338">initialized</a></pre>
 </li>
 </ul>
 <a name="serviceStarted">
@@ -1654,7 +1660,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>serviceStarted</h4>
-<pre>volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.341">serviceStarted</a></pre>
+<pre>volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.342">serviceStarted</a></pre>
 </li>
 </ul>
 <a name="serverCrashProcessingEnabled">
@@ -1663,7 +1669,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>serverCrashProcessingEnabled</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureEvent</a>&lt;?&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.344">serverCrashProcessingEnabled</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureEvent</a>&lt;?&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.345">serverCrashProcessingEnabled</a></pre>
 </li>
 </ul>
 <a name="maxBlancingTime">
@@ -1672,7 +1678,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>maxBlancingTime</h4>
-<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.348">maxBlancingTime</a></pre>
+<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.349">maxBlancingTime</a></pre>
 </li>
 </ul>
 <a name="maxRitPercent">
@@ -1681,7 +1687,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>maxRitPercent</h4>
-<pre>private final&nbsp;double <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.350">maxRitPercent</a></pre>
+<pre>private final&nbsp;double <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.351">maxRitPercent</a></pre>
 </li>
 </ul>
 <a name="lockManager">
@@ -1690,7 +1696,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>lockManager</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/locking/LockManager.html" title="class in org.apache.hadoop.hbase.master.locking">LockManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.352">lockManager</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/locking/LockManager.html" title="class in org.apache.hadoop.hbase.master.locking">LockManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.353">lockManager</a></pre>
 </li>
 </ul>
 <a name="balancer">
@@ -1699,7 +1705,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>balancer</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.master">LoadBalancer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.354">balancer</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.master">LoadBalancer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.355">balancer</a></pre>
 </li>
 </ul>
 <a name="normalizer">
@@ -1708,7 +1714,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>normalizer</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/normalizer/RegionNormalizer.html" title="interface in org.apache.hadoop.hbase.master.normalizer">RegionNormalizer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.355">normalizer</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/normalizer/RegionNormalizer.html" title="interface in org.apache.hadoop.hbase.master.normalizer">RegionNormalizer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.356">normalizer</a></pre>
 </li>
 </ul>
 <a name="balancerChore">
@@ -1717,7 +1723,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>balancerChore</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/balancer/BalancerChore.html" title="class in org.apache.hadoop.hbase.master.balancer">BalancerChore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.356">balancerChore</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/balancer/BalancerChore.html" title="class in org.apache.hadoop.hbase.master.balancer">BalancerChore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.357">balancerChore</a></pre>
 </li>
 </ul>
 <a name="normalizerChore">
@@ -1726,7 +1732,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>normalizerChore</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/normalizer/RegionNormalizerChore.html" title="class in org.apache.hadoop.hbase.master.normalizer">RegionNormalizerChore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.357">normalizerChore</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/normalizer/RegionNormalizerChore.html" title="class in org.apache.hadoop.hbase.master.normalizer">RegionNormalizerChore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.358">normalizerChore</a></pre>
 </li>
 </ul>
 <a name="clusterStatusChore">
@@ -1735,7 +1741,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>clusterStatusChore</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/balancer/ClusterStatusChore.html" title="class in org.apache.hadoop.hbase.master.balancer">ClusterStatusChore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.358">clusterStatusChore</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/balancer/ClusterStatusChore.html" title="class in org.apache.hadoop.hbase.master.balancer">ClusterStatusChore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.359">clusterStatusChore</a></pre>
 </li>
 </ul>
 <a name="clusterStatusPublisherChore">
@@ -1744,7 +1750,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>clusterStatusPublisherChore</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/ClusterStatusPublisher.html" title="class in org.apache.hadoop.hbase.master">ClusterStatusPublisher</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.359">clusterStatusPublisherChore</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/ClusterStatusPublisher.html" title="class in org.apache.hadoop.hbase.master">ClusterStatusPublisher</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.360">clusterStatusPublisherChore</a></pre>
 </li>
 </ul>
 <a name="catalogJanitorChore">
@@ -1753,7 +1759,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>catalogJanitorChore</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/master/CatalogJanitor.html" title="class in org.apache.hadoop.hbase.master">CatalogJanitor</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.361">catalogJanitorChore</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/master/CatalogJanitor.html" title="class in org.apache.hadoop.hbase.master">CatalogJanitor</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.362">catalogJanitorChore</a></pre>
 </li>
 </ul>
 <a name="replicationMetaCleaner">
@@ -1762,7 +1768,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>replicationMetaCleaner</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/cleaner/ReplicationMetaCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">ReplicationMetaCleaner</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.362">replicationMetaCleaner</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/cleaner/ReplicationMetaCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">ReplicationMetaCleaner</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.363">replicationMetaCleaner</a></pre>
 </li>
 </ul>
 <a name="logCleaner">
@@ -1771,7 +1777,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>logCleaner</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">LogCleaner</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.363">logCleaner</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">LogCleaner</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.364">logCleaner</a></pre>
 </li>
 </ul>
 <a name="hfileCleaner">
@@ -1780,7 +1786,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>hfileCleaner</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.364">hfileCleaner</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.365">hfileCleaner</a></pre>
 </li>
 </ul>
 <a name="expiredMobFileCleanerChore">
@@ -1789,7 +1795,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>expiredMobFileCleanerChore</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/ExpiredMobFileCleanerChore.html" title="class in org.apache.hadoop.hbase.master">ExpiredMobFileCleanerChore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.365">expiredMobFileCleanerChore</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/ExpiredMobFileCleanerChore.html" title="class in org.apache.hadoop.hbase.master">ExpiredMobFileCleanerChore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.366">expiredMobFileCleanerChore</a></pre>
 </li>
 </ul>
 <a name="mobCompactChore">
@@ -1798,7 +1804,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>mobCompactChore</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MobCompactionChore.html" title="class in org.apache.hadoop.hbase.master">MobCompactionChore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.366">mobCompactChore</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MobCompactionChore.html" title="class in org.apache.hadoop.hbase.master">MobCompactionChore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.367">mobCompactChore</a></pre>
 </li>
 </ul>
 <a name="mobCompactThread">
@@ -1807,7 +1813,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>mobCompactThread</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterMobCompactionThread.html" title="class in org.apache.hadoop.hbase.master">MasterMobCompactionThread</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.367">mobCompactThread</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterMobCompactionThread.html" title="class in org.apache.hadoop.hbase.master">MasterMobCompactionThread</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.368">mobCompactThread</a></pre>
 </li>
 </ul>
 <a name="mobCompactionLock">
@@ -1816,7 +1822,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>mobCompactionLock</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/IdLock.html" title="class in org.apache.hadoop.hbase.util">IdLock</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.369">mobCompactionLock</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/IdLock.html" title="class in org.apache.hadoop.hbase.util">IdLock</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.370">mobCompactionLock</a></pre>
 </li>
 </ul>
 <a name="mobCompactionStates">
@@ -1825,7 +1831,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>mobCompactionStates</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="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.372">mobCompactionStates</a></pre>
+<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="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.373">mobCompactionStates</a></pre>
 </li>
 </ul>
 <a name="cpHost">
@@ -1834,7 +1840,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>cpHost</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html" title="class in org.apache.hadoop.hbase.master">MasterCoprocessorHost</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.374">cpHost</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html" title="class in org.apache.hadoop.hbase.master">MasterCoprocessorHost</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.375">cpHost</a></pre>
 </li>
 </ul>
 <a name="preLoadTableDescriptors">
@@ -1843,7 +1849,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>preLoadTableDescriptors</h4>
-<pre>private final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.376">preLoadTableDescriptors</a></pre>
+<pre>private final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.377">preLoadTableDescriptors</a></pre>
 </li>
 </ul>
 <a name="masterActiveTime">
@@ -1852,7 +1858,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>masterActiveTime</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.379">masterActiveTime</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.380">masterActiveTime</a></pre>
 </li>
 </ul>
 <a name="masterFinishedInitializationTime">
@@ -1861,7 +1867,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>masterFinishedInitializationTime</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.382">masterFinishedInitializationTime</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.383">masterFinishedInitializationTime</a></pre>
 </li>
 </ul>
 <a name="masterCheckCompression">
@@ -1870,7 +1876,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>masterCheckCompression</h4>
-<pre>private final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.385">masterCheckCompression</a></pre>
+<pre>private final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.386">masterCheckCompression</a></pre>
 </li>
 </ul>
 <a name="masterCheckEncryption">
@@ -1879,7 +1885,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>masterCheckEncryption</h4>
-<pre>private final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.388">masterCheckEncryption</a></pre>
+<pre>private final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.389">masterCheckEncryption</a></pre>
 </li>
 </ul>
 <a name="coprocessorServiceHandlers">
@@ -1888,7 +1894,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>coprocessorServiceHandlers</h4>
-<pre><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>,com.google.protobuf.Service&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.390">coprocessorServiceHandlers</a></pre>
+<pre><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>,com.google.protobuf.Service&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.391">coprocessorServiceHandlers</a></pre>
 </li>
 </ul>
 <a name="snapshotManager">
@@ -1897,7 +1903,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>snapshotManager</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html" title="class in org.apache.hadoop.hbase.master.snapshot">SnapshotManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.393">snapshotManager</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html" title="class in org.apache.hadoop.hbase.master.snapshot">SnapshotManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.394">snapshotManager</a></pre>
 </li>
 </ul>
 <a name="mpmHost">
@@ -1906,7 +1912,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>mpmHost</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure/MasterProcedureManagerHost.html" title="class in org.apache.hadoop.hbase.procedure">MasterProcedureManagerHost</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.395">mpmHost</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure/MasterProcedureManagerHost.html" title="class in org.apache.hadoop.hbase.procedure">MasterProcedureManagerHost</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.396">mpmHost</a></pre>
 </li>
 </ul>
 <a name="quotaManager">
@@ -1915,7 +1921,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>quotaManager</h4>
-<pre>private volatile&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/MasterQuotaManager.html" title="class in org.apache.hadoop.hbase.quotas">MasterQuotaManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.398">quotaManager</a></pre>
+<pre>private volatile&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/MasterQuotaManager.html" title="class in org.apache.hadoop.hbase.quotas">MasterQuotaManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.399">quotaManager</a></pre>
 </li>
 </ul>
 <a name="spaceQuotaSnapshotNotifier">
@@ -1924,7 +1930,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class=

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/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 1fc3ca7..ec25b93 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
@@ -62,3477 +62,3486 @@
 <span class="sourceLineNo">054</span>import javax.servlet.http.HttpServletResponse;<a name="line.54"></a>
 <span class="sourceLineNo">055</span>import org.apache.hadoop.conf.Configuration;<a name="line.55"></a>
 <span class="sourceLineNo">056</span>import org.apache.hadoop.fs.Path;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.ClusterMetrics;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.ClusterMetrics.Option;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.ClusterMetricsBuilder;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.CoordinatedStateException;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.DoNotRetryIOException;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.HBaseIOException;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.HBaseInterfaceAudience;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.HConstants;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.InvalidFamilyOperationException;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.MasterNotRunningException;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.PleaseHoldException;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.ReplicationPeerNotFoundException;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.ServerLoad;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.ServerMetricsBuilder;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.ServerName;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.TableDescriptors;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.TableName;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.TableNotDisabledException;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.client.MasterSwitchType;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.client.RegionInfo;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.client.Result;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.client.TableDescriptor;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.client.TableDescriptorBuilder;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.client.TableState;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.coprocessor.CoprocessorHost;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.exceptions.MergeRegionException;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.executor.ExecutorType;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.favored.FavoredNodesManager;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.favored.FavoredNodesPromoter;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.http.InfoServer;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.ipc.RpcServer;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.ipc.ServerNotRunningYetException;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.log.HBaseMarkers;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.master.MasterRpcServices.BalanceSwitchMode;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.master.assignment.AssignmentManager;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.master.assignment.MergeTableRegionsProcedure;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.master.assignment.RegionStates;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.master.assignment.RegionStates.RegionStateNode;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.master.balancer.BalancerChore;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.master.balancer.ClusterStatusChore;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.master.balancer.LoadBalancerFactory;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.master.cleaner.HFileCleaner;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.master.cleaner.LogCleaner;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.master.cleaner.ReplicationMetaCleaner;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.master.locking.LockManager;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.master.normalizer.NormalizationPlan;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.master.normalizer.NormalizationPlan.PlanType;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizer;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizerChore;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizerFactory;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.master.procedure.CreateTableProcedure;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.master.procedure.DeleteTableProcedure;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.master.procedure.DisableTableProcedure;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.master.procedure.EnableTableProcedure;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureConstants;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureUtil;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.master.procedure.ModifyTableProcedure;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.master.procedure.ProcedurePrepareLatch;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.master.procedure.RecoverMetaProcedure;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.master.procedure.TruncateTableProcedure;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.master.replication.AddPeerProcedure;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.master.replication.DisablePeerProcedure;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.master.replication.EnablePeerProcedure;<a name="line.130"></a>
-<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.master.replication.ModifyPeerProcedure;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.master.replication.RemovePeerProcedure;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.master.replication.ReplicationPeerManager;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.master.replication.UpdatePeerConfigProcedure;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.master.snapshot.SnapshotManager;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.mob.MobConstants;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.monitoring.MemoryBoundedLogMessageBuffer;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.monitoring.MonitoredTask;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.monitoring.TaskMonitor;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.procedure.MasterProcedureManagerHost;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.procedure.flush.MasterFlushTableProcedureManager;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.procedure2.LockedResource;<a name="line.142"></a>
-<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.procedure2.Procedure;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.procedure2.ProcedureEvent;<a name="line.144"></a>
-<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.procedure2.ProcedureExecutor;<a name="line.145"></a>
-<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.procedure2.RemoteProcedureDispatcher.RemoteProcedure;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.procedure2.RemoteProcedureException;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.procedure2.store.wal.WALProcedureStore;<a name="line.148"></a>
-<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.quotas.MasterQuotaManager;<a name="line.149"></a>
-<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.quotas.MasterSpaceQuotaObserver;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.quotas.QuotaObserverChore;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.quotas.QuotaUtil;<a name="line.152"></a>
-<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.quotas.SnapshotQuotaObserverChore;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.quotas.SpaceQuotaSnapshotNotifier;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.quotas.SpaceQuotaSnapshotNotifierFactory;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.regionserver.DefaultStoreEngine;<a name="line.156"></a>
-<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.regionserver.HRegionServer;<a name="line.157"></a>
-<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.regionserver.HStore;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.regionserver.RSRpcServices;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost;<a name="line.160"></a>
-<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.regionserver.RegionSplitPolicy;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.regionserver.compactions.ExploringCompactionPolicy;<a name="line.162"></a>
-<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.regionserver.compactions.FIFOCompactionPolicy;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.164"></a>
-<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.replication.master.ReplicationPeerConfigUpgrader;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.replication.regionserver.Replication;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.security.AccessDeniedException;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.security.UserProvider;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.trace.TraceUtil;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.util.Addressing;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.173"></a>
-<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.util.CompressionTest;<a name="line.174"></a>
-<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.util.EncryptionTest;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.util.HFileArchiveUtil;<a name="line.176"></a>
-<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.util.HasThread;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.util.IdLock;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.util.ModifyRegionUtils;<a name="line.179"></a>
-<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.180"></a>
-<span class="sourceLineNo">181</span>import org.apache.hadoop.hbase.util.Threads;<a name="line.181"></a>
-<span class="sourceLineNo">182</span>import org.apache.hadoop.hbase.util.VersionInfo;<a name="line.182"></a>
-<span class="sourceLineNo">183</span>import org.apache.hadoop.hbase.util.ZKDataMigrator;<a name="line.183"></a>
-<span class="sourceLineNo">184</span>import org.apache.hadoop.hbase.zookeeper.LoadBalancerTracker;<a name="line.184"></a>
-<span class="sourceLineNo">185</span>import org.apache.hadoop.hbase.zookeeper.MasterAddressTracker;<a name="line.185"></a>
-<span class="sourceLineNo">186</span>import org.apache.hadoop.hbase.zookeeper.MasterMaintenanceModeTracker;<a name="line.186"></a>
-<span class="sourceLineNo">187</span>import org.apache.hadoop.hbase.zookeeper.RegionNormalizerTracker;<a name="line.187"></a>
-<span class="sourceLineNo">188</span>import org.apache.hadoop.hbase.zookeeper.ZKClusterId;<a name="line.188"></a>
-<span class="sourceLineNo">189</span>import org.apache.hadoop.hbase.zookeeper.ZKUtil;<a name="line.189"></a>
-<span class="sourceLineNo">190</span>import org.apache.hadoop.hbase.zookeeper.ZKWatcher;<a name="line.190"></a>
-<span class="sourceLineNo">191</span>import org.apache.hadoop.hbase.zookeeper.ZNodePaths;<a name="line.191"></a>
-<span class="sourceLineNo">192</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.192"></a>
-<span class="sourceLineNo">193</span>import org.apache.zookeeper.KeeperException;<a name="line.193"></a>
-<span class="sourceLineNo">194</span>import org.eclipse.jetty.server.Server;<a name="line.194"></a>
-<span class="sourceLineNo">195</span>import org.eclipse.jetty.server.ServerConnector;<a name="line.195"></a>
-<span class="sourceLineNo">196</span>import org.eclipse.jetty.servlet.ServletHolder;<a name="line.196"></a>
-<span class="sourceLineNo">197</span>import org.eclipse.jetty.webapp.WebAppContext;<a name="line.197"></a>
-<span class="sourceLineNo">198</span>import org.slf4j.Logger;<a name="line.198"></a>
-<span class="sourceLineNo">199</span>import org.slf4j.LoggerFactory;<a name="line.199"></a>
-<span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>import org.apache.hbase.thirdparty.com.google.common.annotations.VisibleForTesting;<a name="line.201"></a>
-<span class="sourceLineNo">202</span>import org.apache.hbase.thirdparty.com.google.common.collect.Lists;<a name="line.202"></a>
-<span class="sourceLineNo">203</span>import org.apache.hbase.thirdparty.com.google.common.collect.Maps;<a name="line.203"></a>
-<span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.205"></a>
-<span class="sourceLineNo">206</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetRegionInfoResponse.CompactionState;<a name="line.206"></a>
-<span class="sourceLineNo">207</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionServerInfo;<a name="line.207"></a>
-<span class="sourceLineNo">208</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.Quotas;<a name="line.208"></a>
-<span class="sourceLineNo">209</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.SpaceViolationPolicy;<a name="line.209"></a>
-<span class="sourceLineNo">210</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription;<a name="line.210"></a>
-<span class="sourceLineNo">211</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos;<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> * HMaster is the "master server" for HBase. An HBase cluster has one active<a name="line.214"></a>
-<span class="sourceLineNo">215</span> * master.  If many masters are started, all compete.  Whichever wins goes on to<a name="line.215"></a>
-<span class="sourceLineNo">216</span> * run the cluster.  All others park themselves in their constructor until<a name="line.216"></a>
-<span class="sourceLineNo">217</span> * master or cluster shutdown or until the active master loses its lease in<a name="line.217"></a>
-<span class="sourceLineNo">218</span> * zookeeper.  Thereafter, all running master jostle to take over master role.<a name="line.218"></a>
-<span class="sourceLineNo">219</span> *<a name="line.219"></a>
-<span class="sourceLineNo">220</span> * &lt;p&gt;The Master can be asked shutdown the cluster. See {@link #shutdown()}.  In<a name="line.220"></a>
-<span class="sourceLineNo">221</span> * this case it will tell all regionservers to go down and then wait on them<a name="line.221"></a>
-<span class="sourceLineNo">222</span> * all reporting in that they are down.  This master will then shut itself down.<a name="line.222"></a>
-<span class="sourceLineNo">223</span> *<a name="line.223"></a>
-<span class="sourceLineNo">224</span> * &lt;p&gt;You can also shutdown just this master.  Call {@link #stopMaster()}.<a name="line.224"></a>
-<span class="sourceLineNo">225</span> *<a name="line.225"></a>
-<span class="sourceLineNo">226</span> * @see org.apache.zookeeper.Watcher<a name="line.226"></a>
-<span class="sourceLineNo">227</span> */<a name="line.227"></a>
-<span class="sourceLineNo">228</span>@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.TOOLS)<a name="line.228"></a>
-<span class="sourceLineNo">229</span>@SuppressWarnings("deprecation")<a name="line.229"></a>
-<span class="sourceLineNo">230</span>public class HMaster extends HRegionServer implements MasterServices {<a name="line.230"></a>
-<span class="sourceLineNo">231</span>  private static Logger LOG = LoggerFactory.getLogger(HMaster.class.getName());<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>   * Protection against zombie master. Started once Master accepts active responsibility and<a name="line.234"></a>
-<span class="sourceLineNo">235</span>   * starts taking over responsibilities. Allows a finite time window before giving up ownership.<a name="line.235"></a>
-<span class="sourceLineNo">236</span>   */<a name="line.236"></a>
-<span class="sourceLineNo">237</span>  private static class InitializationMonitor extends HasThread {<a name="line.237"></a>
-<span class="sourceLineNo">238</span>    /** The amount of time in milliseconds to sleep before checking initialization status. */<a name="line.238"></a>
-<span class="sourceLineNo">239</span>    public static final String TIMEOUT_KEY = "hbase.master.initializationmonitor.timeout";<a name="line.239"></a>
-<span class="sourceLineNo">240</span>    public static final long TIMEOUT_DEFAULT = TimeUnit.MILLISECONDS.convert(15, TimeUnit.MINUTES);<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>     * When timeout expired and initialization has not complete, call {@link System#exit(int)} when<a name="line.243"></a>
-<span class="sourceLineNo">244</span>     * true, do nothing otherwise.<a name="line.244"></a>
-<span class="sourceLineNo">245</span>     */<a name="line.245"></a>
-<span class="sourceLineNo">246</span>    public static final String HALT_KEY = "hbase.master.initializationmonitor.haltontimeout";<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    public static final boolean HALT_DEFAULT = false;<a name="line.247"></a>
-<span class="sourceLineNo">248</span><a name="line.248"></a>
-<span class="sourceLineNo">249</span>    private final HMaster master;<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    private final long timeout;<a name="line.250"></a>
-<span class="sourceLineNo">251</span>    private final boolean haltOnTimeout;<a name="line.251"></a>
-<span class="sourceLineNo">252</span><a name="line.252"></a>
-<span class="sourceLineNo">253</span>    /** Creates a Thread that monitors the {@link #isInitialized()} state. */<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    InitializationMonitor(HMaster master) {<a name="line.254"></a>
-<span class="sourceLineNo">255</span>      super("MasterInitializationMonitor");<a name="line.255"></a>
-<span class="sourceLineNo">256</span>      this.master = master;<a name="line.256"></a>
-<span class="sourceLineNo">257</span>      this.timeout = master.getConfiguration().getLong(TIMEOUT_KEY, TIMEOUT_DEFAULT);<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      this.haltOnTimeout = master.getConfiguration().getBoolean(HALT_KEY, HALT_DEFAULT);<a name="line.258"></a>
-<span class="sourceLineNo">259</span>      this.setDaemon(true);<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>    @Override<a name="line.262"></a>
-<span class="sourceLineNo">263</span>    public void run() {<a name="line.263"></a>
-<span class="sourceLineNo">264</span>      try {<a name="line.264"></a>
-<span class="sourceLineNo">265</span>        while (!master.isStopped() &amp;&amp; master.isActiveMaster()) {<a name="line.265"></a>
-<span class="sourceLineNo">266</span>          Thread.sleep(timeout);<a name="line.266"></a>
-<span class="sourceLineNo">267</span>          if (master.isInitialized()) {<a name="line.267"></a>
-<span class="sourceLineNo">268</span>            LOG.debug("Initialization completed within allotted tolerance. Monitor exiting.");<a name="line.268"></a>
-<span class="sourceLineNo">269</span>          } else {<a name="line.269"></a>
-<span class="sourceLineNo">270</span>            LOG.error("Master failed to complete initialization after " + timeout + "ms. Please"<a name="line.270"></a>
-<span class="sourceLineNo">271</span>                + " consider submitting a bug report including a thread dump of this process.");<a name="line.271"></a>
-<span class="sourceLineNo">272</span>            if (haltOnTimeout) {<a name="line.272"></a>
-<span class="sourceLineNo">273</span>              LOG.error("Zombie Master exiting. Thread dump to stdout");<a name="line.273"></a>
-<span class="sourceLineNo">274</span>              Threads.printThreadInfo(System.out, "Zombie HMaster");<a name="line.274"></a>
-<span class="sourceLineNo">275</span>              System.exit(-1);<a name="line.275"></a>
-<span class="sourceLineNo">276</span>            }<a name="line.276"></a>
-<span class="sourceLineNo">277</span>          }<a name="line.277"></a>
-<span class="sourceLineNo">278</span>        }<a name="line.278"></a>
-<span class="sourceLineNo">279</span>      } catch (InterruptedException ie) {<a name="line.279"></a>
-<span class="sourceLineNo">280</span>        LOG.trace("InitMonitor thread interrupted. Existing.");<a name="line.280"></a>
-<span class="sourceLineNo">281</span>      }<a name="line.281"></a>
-<span class="sourceLineNo">282</span>    }<a name="line.282"></a>
-<span class="sourceLineNo">283</span>  }<a name="line.283"></a>
-<span class="sourceLineNo">284</span><a name="line.284"></a>
-<span class="sourceLineNo">285</span>  // MASTER is name of the webapp and the attribute name used stuffing this<a name="line.285"></a>
-<span class="sourceLineNo">286</span>  //instance into web context.<a name="line.286"></a>
-<span class="sourceLineNo">287</span>  public static final String MASTER = "master";<a name="line.287"></a>
-<span class="sourceLineNo">288</span><a name="line.288"></a>
-<span class="sourceLineNo">289</span>  // Manager and zk listener for master election<a name="line.289"></a>
-<span class="sourceLineNo">290</span>  private final ActiveMasterManager activeMasterManager;<a name="line.290"></a>
-<span class="sourceLineNo">291</span>  // Region server tracker<a name="line.291"></a>
-<span class="sourceLineNo">292</span>  RegionServerTracker regionServerTracker;<a name="line.292"></a>
-<span class="sourceLineNo">293</span>  // Draining region server tracker<a name="line.293"></a>
-<span class="sourceLineNo">294</span>  private DrainingServerTracker drainingServerTracker;<a name="line.294"></a>
-<span class="sourceLineNo">295</span>  // Tracker for load balancer state<a name="line.295"></a>
-<span class="sourceLineNo">296</span>  LoadBalancerTracker loadBalancerTracker;<a name="line.296"></a>
-<span class="sourceLineNo">297</span><a name="line.297"></a>
-<span class="sourceLineNo">298</span>  // Tracker for split and merge state<a name="line.298"></a>
-<span class="sourceLineNo">299</span>  private SplitOrMergeTracker splitOrMergeTracker;<a name="line.299"></a>
-<span class="sourceLineNo">300</span><a name="line.300"></a>
-<span class="sourceLineNo">301</span>  // Tracker for region normalizer state<a name="line.301"></a>
-<span class="sourceLineNo">302</span>  private RegionNormalizerTracker regionNormalizerTracker;<a name="line.302"></a>
-<span class="sourceLineNo">303</span><a name="line.303"></a>
-<span class="sourceLineNo">304</span>  //Tracker for master maintenance mode setting<a name="line.304"></a>
-<span class="sourceLineNo">305</span>  private MasterMaintenanceModeTracker maintenanceModeTracker;<a name="line.305"></a>
-<span class="sourceLineNo">306</span><a name="line.306"></a>
-<span class="sourceLineNo">307</span>  private ClusterSchemaService clusterSchemaService;<a name="line.307"></a>
-<span class="sourceLineNo">308</span><a name="line.308"></a>
-<span class="sourceLineNo">309</span>  public static final String HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS =<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    "hbase.master.wait.on.service.seconds";<a name="line.310"></a>
-<span class="sourceLineNo">311</span>  public static final int DEFAULT_HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS = 5 * 60;<a name="line.311"></a>
-<span class="sourceLineNo">312</span><a name="line.312"></a>
-<span class="sourceLineNo">313</span>  // Metrics for the HMaster<a name="line.313"></a>
-<span class="sourceLineNo">314</span>  final MetricsMaster metricsMaster;<a name="line.314"></a>
-<span class="sourceLineNo">315</span>  // file system manager for the master FS operations<a name="line.315"></a>
-<span class="sourceLineNo">316</span>  private MasterFileSystem fileSystemManager;<a name="line.316"></a>
-<span class="sourceLineNo">317</span>  private MasterWalManager walManager;<a name="line.317"></a>
-<span class="sourceLineNo">318</span><a name="line.318"></a>
-<span class="sourceLineNo">319</span>  // server manager to deal with region server info<a name="line.319"></a>
-<span class="sourceLineNo">320</span>  private volatile ServerManager serverManager;<a name="line.320"></a>
-<span class="sourceLineNo">321</span><a name="line.321"></a>
-<span class="sourceLineNo">322</span>  // manager of assignment nodes in zookeeper<a name="line.322"></a>
-<span class="sourceLineNo">323</span>  private AssignmentManager assignmentManager;<a name="line.323"></a>
-<span class="sourceLineNo">324</span><a name="line.324"></a>
-<span class="sourceLineNo">325</span>  // manager of replication<a name="line.325"></a>
-<span class="sourceLineNo">326</span>  private ReplicationPeerManager replicationPeerManager;<a name="line.326"></a>
-<span class="sourceLineNo">327</span><a name="line.327"></a>
-<span class="sourceLineNo">328</span>  // buffer for "fatal error" notices from region servers<a name="line.328"></a>
-<span class="sourceLineNo">329</span>  // in the cluster. This is only used for assisting<a name="line.329"></a>
-<span class="sourceLineNo">330</span>  // operations/debugging.<a name="line.330"></a>
-<span class="sourceLineNo">331</span>  MemoryBoundedLogMessageBuffer rsFatals;<a name="line.331"></a>
-<span class="sourceLineNo">332</span><a name="line.332"></a>
-<span class="sourceLineNo">333</span>  // flag set after we become the active master (used for testing)<a name="line.333"></a>
-<span class="sourceLineNo">334</span>  private volatile boolean activeMaster = false;<a name="line.334"></a>
-<span class="sourceLineNo">335</span><a name="line.335"></a>
-<span class="sourceLineNo">336</span>  // flag set after we complete initialization once active<a name="line.336"></a>
-<span class="sourceLineNo">337</span>  private final ProcedureEvent&lt;?&gt; initialized = new ProcedureEvent&lt;&gt;("master initialized");<a name="line.337"></a>
-<span class="sourceLineNo">338</span><a name="line.338"></a>
-<span class="sourceLineNo">339</span>  // flag set after master services are started,<a name="line.339"></a>
-<span class="sourceLineNo">340</span>  // initialization may have not completed yet.<a name="line.340"></a>
-<span class="sourceLineNo">341</span>  volatile boolean serviceStarted = false;<a name="line.341"></a>
-<span class="sourceLineNo">342</span><a name="line.342"></a>
-<span class="sourceLineNo">343</span>  // flag set after we complete assignMeta.<a name="line.343"></a>
-<span class="sourceLineNo">344</span>  private final ProcedureEvent&lt;?&gt; serverCrashProcessingEnabled =<a name="line.344"></a>
-<span class="sourceLineNo">345</span>    new ProcedureEvent&lt;&gt;("server crash processing");<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>  // Maximum time we should run balancer for<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  private final int maxBlancingTime;<a name="line.348"></a>
-<span class="sourceLineNo">349</span>  // Maximum percent of regions in transition when balancing<a name="line.349"></a>
-<span class="sourceLineNo">350</span>  private final double maxRitPercent;<a name="line.350"></a>
-<span class="sourceLineNo">351</span><a name="line.351"></a>
-<span class="sourceLineNo">352</span>  private final LockManager lockManager = new LockManager(this);<a name="line.352"></a>
-<span class="sourceLineNo">353</span><a name="line.353"></a>
-<span class="sourceLineNo">354</span>  private LoadBalancer balancer;<a name="line.354"></a>
-<span class="sourceLineNo">355</span>  private RegionNormalizer normalizer;<a name="line.355"></a>
-<span class="sourceLineNo">356</span>  private BalancerChore balancerChore;<a name="line.356"></a>
-<span class="sourceLineNo">357</span>  private RegionNormalizerChore normalizerChore;<a name="line.357"></a>
-<span class="sourceLineNo">358</span>  private ClusterStatusChore clusterStatusChore;<a name="line.358"></a>
-<span class="sourceLineNo">359</span>  private ClusterStatusPublisher clusterStatusPublisherChore = null;<a name="line.359"></a>
-<span class="sourceLineNo">360</span><a name="line.360"></a>
-<span class="sourceLineNo">361</span>  CatalogJanitor catalogJanitorChore;<a name="line.361"></a>
-<span class="sourceLineNo">362</span>  private ReplicationMetaCleaner replicationMetaCleaner;<a name="line.362"></a>
-<span class="sourceLineNo">363</span>  private LogCleaner logCleaner;<a name="line.363"></a>
-<span class="sourceLineNo">364</span>  private HFileCleaner hfileCleaner;<a name="line.364"></a>
-<span class="sourceLineNo">365</span>  private ExpiredMobFileCleanerChore expiredMobFileCleanerChore;<a name="line.365"></a>
-<span class="sourceLineNo">366</span>  private MobCompactionChore mobCompactChore;<a name="line.366"></a>
-<span class="sourceLineNo">367</span>  private MasterMobCompactionThread mobCompactThread;<a name="line.367"></a>
-<span class="sourceLineNo">368</span>  // used to synchronize the mobCompactionStates<a name="line.368"></a>
-<span class="sourceLineNo">369</span>  private final IdLock mobCompactionLock = new IdLock();<a name="line.369"></a>
-<span class="sourceLineNo">370</span>  // save the information of mob compactions in tables.<a name="line.370"></a>
-<span class="sourceLineNo">371</span>  // the key is table name, the value is the number of compactions in that table.<a name="line.371"></a>
-<span class="sourceLineNo">372</span>  private Map&lt;TableName, AtomicInteger&gt; mobCompactionStates = Maps.newConcurrentMap();<a name="line.372"></a>
-<span class="sourceLineNo">373</span><a name="line.373"></a>
-<span class="sourceLineNo">374</span>  MasterCoprocessorHost cpHost;<a name="line.374"></a>
-<span class="sourceLineNo">375</span><a name="line.375"></a>
-<span class="sourceLineNo">376</span>  private final boolean preLoadTableDescriptors;<a name="line.376"></a>
-<span class="sourceLineNo">377</span><a name="line.377"></a>
-<span class="sourceLineNo">378</span>  // Time stamps for when a hmaster became active<a name="line.378"></a>
-<span class="sourceLineNo">379</span>  private long masterActiveTime;<a name="line.379"></a>
-<span class="sourceLineNo">380</span><a name="line.380"></a>
-<span class="sourceLineNo">381</span>  // Time stamp for when HMaster finishes becoming Active Master<a name="line.381"></a>
-<span class="sourceLineNo">382</span>  private long masterFinishedInitializationTime;<a name="line.382"></a>
-<span class="sourceLineNo">383</span><a name="line.383"></a>
-<span class="sourceLineNo">384</span>  //should we check the compression codec type at master side, default true, HBASE-6370<a name="line.384"></a>
-<span class="sourceLineNo">385</span>  private final boolean masterCheckCompression;<a name="line.385"></a>
-<span class="sourceLineNo">386</span><a name="line.386"></a>
-<span class="sourceLineNo">387</span>  //should we check encryption settings at master side, default true<a name="line.387"></a>
-<span class="sourceLineNo">388</span>  private final boolean masterCheckEncryption;<a name="line.388"></a>
-<span class="sourceLineNo">389</span><a name="line.389"></a>
-<span class="sourceLineNo">390</span>  Map&lt;String, Service&gt; coprocessorServiceHandlers = Maps.newHashMap();<a name="line.390"></a>
-<span class="sourceLineNo">391</span><a name="line.391"></a>
-<span class="sourceLineNo">392</span>  // monitor for snapshot of hbase tables<a name="line.392"></a>
-<span class="sourceLineNo">393</span>  SnapshotManager snapshotManager;<a name="line.393"></a>
-<span class="sourceLineNo">394</span>  // monitor for distributed procedures<a name="line.394"></a>
-<span class="sourceLineNo">395</span>  private MasterProcedureManagerHost mpmHost;<a name="line.395"></a>
-<span class="sourceLineNo">396</span><a name="line.396"></a>
-<span class="sourceLineNo">397</span>  // it is assigned after 'initialized' guard set to true, so should be volatile<a name="line.397"></a>
-<span class="sourceLineNo">398</span>  private volatile MasterQuotaManager quotaManager;<a name="line.398"></a>
-<span class="sourceLineNo">399</span>  private SpaceQuotaSnapshotNotifier spaceQuotaSnapshotNotifier;<a name="line.399"></a>
-<span class="sourceLineNo">400</span>  private QuotaObserverChore quotaObserverChore;<a name="line.400"></a>
-<span class="sourceLineNo">401</span>  private SnapshotQuotaObserverChore snapshotQuotaChore;<a name="line.401"></a>
-<span class="sourceLineNo">402</span><a name="line.402"></a>
-<span class="sourceLineNo">403</span>  private ProcedureExecutor&lt;MasterProcedureEnv&gt; procedureExecutor;<a name="line.403"></a>
-<span class="sourceLineNo">404</span>  private WALProcedureStore procedureStore;<a name="line.404"></a>
-<span class="sourceLineNo">405</span><a name="line.405"></a>
-<span class="sourceLineNo">406</span>  // handle table states<a name="line.406"></a>
-<span class="sourceLineNo">407</span>  private TableStateManager tableStateManager;<a name="line.407"></a>
-<span class="sourceLineNo">408</span><a name="line.408"></a>
-<span class="sourceLineNo">409</span>  private long splitPlanCount;<a name="line.409"></a>
-<span class="sourceLineNo">410</span>  private long mergePlanCount;<a name="line.410"></a>
-<span class="sourceLineNo">411</span><a name="line.411"></a>
-<span class="sourceLineNo">412</span>  /* Handle favored nodes information */<a name="line.412"></a>
-<span class="sourceLineNo">413</span>  private FavoredNodesManager favoredNodesManager;<a name="line.413"></a>
-<span class="sourceLineNo">414</span><a name="line.414"></a>
-<span class="sourceLineNo">415</span>  /** jetty server for master to redirect requests to regionserver infoServer */<a name="line.415"></a>
-<span class="sourceLineNo">416</span>  private Server masterJettyServer;<a name="line.416"></a>
-<span class="sourceLineNo">417</span><a name="line.417"></a>
-<span class="sourceLineNo">418</span>  public static class RedirectServlet extends HttpServlet {<a name="line.418"></a>
-<span class="sourceLineNo">419</span>    private static final long serialVersionUID = 2894774810058302473L;<a name="line.419"></a>
-<span class="sourceLineNo">420</span>    private final int regionServerInfoPort;<a name="line.420"></a>
-<span class="sourceLineNo">421</span>    private final String regionServerHostname;<a name="line.421"></a>
-<span class="sourceLineNo">422</span><a name="line.422"></a>
-<span class="sourceLineNo">423</span>    /**<a name="line.423"></a>
-<span class="sourceLineNo">424</span>     * @param infoServer that we're trying to send all requests to<a name="line.424"></a>
-<span class="sourceLineNo">425</span>     * @param hostname may be null. if given, will be used for redirects instead of host from client.<a name="line.425"></a>
-<span class="sourceLineNo">426</span>     */<a name="line.426"></a>
-<span class="sourceLineNo">427</span>    public RedirectServlet(InfoServer infoServer, String hostname) {<a name="line.427"></a>
-<span class="sourceLineNo">428</span>       regionServerInfoPort = infoServer.getPort();<a name="line.428"></a>
-<span class="sourceLineNo">429</span>       regionServerHostname = hostname;<a name="line.429"></a>
-<span class="sourceLineNo">430</span>    }<a name="line.430"></a>
-<span class="sourceLineNo">431</span><a name="line.431"></a>
-<span class="sourceLineNo">432</span>    @Override<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    public void doGet(HttpServletRequest request,<a name="line.433"></a>
-<span class="sourceLineNo">434</span>        HttpServletResponse response) throws ServletException, IOException {<a name="line.434"></a>
-<span class="sourceLineNo">435</span>      String redirectHost = regionServerHostname;<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      if(redirectHost == null) {<a name="line.436"></a>
-<span class="sourceLineNo">437</span>        redirectHost = request.getServerName();<a name="line.437"></a>
-<span class="sourceLineNo">438</span>        if(!Addressing.isLocalAddress(InetAddress.getByName(redirectHost))) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>          LOG.warn("Couldn't resolve '" + redirectHost + "' as an address local to this node and '" +<a name="line.439"></a>
-<span class="sourceLineNo">440</span>              MASTER_HOSTNAME_KEY + "' is not set; client will get a HTTP 400 response. If " +<a name="line.440"></a>
-<span class="sourceLineNo">441</span>              "your HBase deployment relies on client accessible names that the region server process " +<a name="line.441"></a>
-<span class="sourceLineNo">442</span>              "can't resolve locally, then you should set the previously mentioned configuration variable " +<a name="line.442"></a>
-<span class="sourceLineNo">443</span>              "to an appropriate hostname.");<a name="line.443"></a>
-<span class="sourceLineNo">444</span>          // no sending client provided input back to the client, so the goal host is just in the logs.<a name="line.444"></a>
-<span class="sourceLineNo">445</span>          response.sendError(400, "Request was to a host that I can't resolve for any of the network interfaces on " +<a name="line.445"></a>
-<span class="sourceLineNo">446</span>              "this node. If this is due to an intermediary such as an HTTP load balancer or other proxy, your HBase " +<a name="line.446"></a>
-<span class="sourceLineNo">447</span>              "administrator can set '" + MASTER_HOSTNAME_KEY + "' to point to the correct hostname.");<a name="line.447"></a>
-<span class="sourceLineNo">448</span>          return;<a name="line.448"></a>
-<span class="sourceLineNo">449</span>        }<a name="line.449"></a>
-<span class="sourceLineNo">450</span>      }<a name="line.450"></a>
-<span class="sourceLineNo">451</span>      // TODO this scheme should come from looking at the scheme registered in the infoserver's http server for the<a name="line.451"></a>
-<span class="sourceLineNo">452</span>      // host and port we're using, but it's buried way too deep to do that ATM.<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      String redirectUrl = request.getScheme() + "://"<a name="line.453"></a>
-<span class="sourceLineNo">454</span>        + redirectHost + ":" + regionServerInfoPort<a name="line.454"></a>
-<span class="sourceLineNo">455</span>        + request.getRequestURI();<a name="line.455"></a>
-<span class="sourceLineNo">456</span>      response.sendRedirect(redirectUrl);<a name="line.456"></a>
-<span class="sourceLineNo">457</span>    }<a name="line.457"></a>
-<span class="sourceLineNo">458</span>  }<a name="line.458"></a>
-<span class="sourceLineNo">459</span><a name="line.459"></a>
-<span class="sourceLineNo">460</span>  /**<a name="line.460"></a>
-<span class="sourceLineNo">461</span>   * Initializes the HMaster. The steps are as follows:<a name="line.461"></a>
-<span class="sourceLineNo">462</span>   * &lt;p&gt;<a name="line.462"></a>
-<span class="sourceLineNo">463</span>   * &lt;ol&gt;<a name="line.463"></a>
-<span class="sourceLineNo">464</span>   * &lt;li&gt;Initialize the local HRegionServer<a name="line.464"></a>
-<span class="sourceLineNo">465</span>   * &lt;li&gt;Start the ActiveMasterManager.<a name="line.465"></a>
-<span class="sourceLineNo">466</span>   * &lt;/ol&gt;<a name="line.466"></a>
-<span class="sourceLineNo">467</span>   * &lt;p&gt;<a name="line.467"></a>
-<span class="sourceLineNo">468</span>   * Remaining steps of initialization occur in<a name="line.468"></a>
-<span class="sourceLineNo">469</span>   * #finishActiveMasterInitialization(MonitoredTask) after<a name="line.469"></a>
-<span class="sourceLineNo">470</span>   * the master becomes the active one.<a name="line.470"></a>
-<span class="sourceLineNo">471</span>   */<a name="line.471"></a>
-<span class="sourceLineNo">472</span>  public HMaster(final Configuration conf)<a name="line.472"></a>
-<span class="sourceLineNo">473</span>      throws IOException, KeeperException {<a name="line.473"></a>
-<span class="sourceLineNo">474</span>    super(conf);<a name="line.474"></a>
-<span class="sourceLineNo">475</span>    TraceUtil.initTracer(conf);<a name="line.475"></a>
-<span class="sourceLineNo">476</span>    try {<a name="line.476"></a>
-<span class="sourceLineNo">477</span>      this.rsFatals = new MemoryBoundedLogMessageBuffer(<a name="line.477"></a>
-<span class="sourceLineNo">478</span>          conf.getLong("hbase.master.buffer.for.rs.fatals", 1 * 1024 * 1024));<a name="line.478"></a>
-<span class="sourceLineNo">479</span>      LOG.info("hbase.rootdir=" + getRootDir() +<a name="line.479"></a>
-<span class="sourceLineNo">480</span>          ", hbase.cluster.distributed=" + this.conf.getBoolean(HConstants.CLUSTER_DISTRIBUTED, false));<a name="line.480"></a>
-<span class="sourceLineNo">481</span><a name="line.481"></a>
-<span class="sourceLineNo">482</span>      // Disable usage of meta replicas in the master<a name="line.482"></a>
-<span class="sourceLineNo">483</span>      this.conf.setBoolean(HConstants.USE_META_REPLICAS, false);<a name="line.483"></a>
-<span class="sourceLineNo">484</span><a name="line.484"></a>
-<span class="sourceLineNo">485</span>      Replication.decorateMasterConfiguration(this.conf);<a name="line.485"></a>
-<span class="sourceLineNo">486</span><a name="line.486"></a>
-<span class="sourceLineNo">487</span>      // Hack! Maps DFSClient =&gt; Master for logs.  HDFS made this<a name="line.487"></a>
-<span class="sourceLineNo">488</span>      // config param for task trackers, but we can piggyback off of it.<a name="line.488"></a>
-<span class="sourceLineNo">489</span>      if (this.conf.get("mapreduce.task.attempt.id") == null) {<a name="line.489"></a>
-<span class="sourceLineNo">490</span>        this.conf.set("mapreduce.task.attempt.id", "hb_m_" + this.serverName.toString());<a name="line.490"></a>
-<span class="sourceLineNo">491</span>      }<a name="line.491"></a>
-<span class="sourceLineNo">492</span><a name="line.492"></a>
-<span class="sourceLineNo">493</span>      // should we check the compression codec type at master side, default true, HBASE-6370<a name="line.493"></a>
-<span class="sourceLineNo">494</span>      this.masterCheckCompression = conf.getBoolean("hbase.master.check.compression", true);<a name="line.494"></a>
-<span class="sourceLineNo">495</span><a name="line.495"></a>
-<span class="sourceLineNo">496</span>      // should we check encryption settings at master side, default true<a name="line.496"></a>
-<span class="sourceLineNo">497</span>      this.masterCheckEncryption = conf.getBoolean("hbase.master.check.encryption", true);<a name="line.497"></a>
-<span class="sourceLineNo">498</span><a name="line.498"></a>
-<span class="sourceLineNo">499</span>      this.metricsMaster = new MetricsMaster(new MetricsMasterWrapperImpl(this));<a name="line.499"></a>
-<span class="sourceLineNo">500</span><a name="line.500"></a>
-<span class="sourceLineNo">501</span>      // preload table descriptor at startup<a name="line.501"></a>
-<span class="sourceLineNo">502</span>      this.preLoadTableDescriptors = conf.getBoolean("hbase.master.preload.tabledescriptors", true);<a name="line.502"></a>
-<span class="sourceLineNo">503</span><a name="line.503"></a>
-<span class="sourceLineNo">504</span>      this.maxBlancingTime = getMaxBalancingTime();<a name="line.504"></a>
-<span class="sourceLineNo">505</span>      this.maxRitPercent = conf.getDouble(HConstants.HBASE_MASTER_BALANCER_MAX_RIT_PERCENT,<a name="line.505"></a>
-<span class="sourceLineNo">506</span>          HConstants.DEFAULT_HBASE_MASTER_BALANCER_MAX_RIT_PERCENT);<a name="line.506"></a>
-<span class="sourceLineNo">507</span><a name="line.507"></a>
-<span class="sourceLineNo">508</span>      // Do we publish the status?<a name="line.508"></a>
-<span class="sourceLineNo">509</span><a name="line.509"></a>
-<span class="sourceLineNo">510</span>      boolean shouldPublish = conf.getBoolean(HConstants.STATUS_PUBLISHED,<a name="line.510"></a>
-<span class="sourceLineNo">511</span>          HConstants.STATUS_PUBLISHED_DEFAULT);<a name="line.511"></a>
-<span class="sourceLineNo">512</span>      Class&lt;? extends ClusterStatusPublisher.Publisher&gt; publisherClass =<a name="line.512"></a>
-<span class="sourceLineNo">513</span>          conf.getClass(ClusterStatusPublisher.STATUS_PUBLISHER_CLASS,<a name="line.513"></a>
-<span class="sourceLineNo">514</span>              ClusterStatusPublisher.DEFAULT_STATUS_PUBLISHER_CLASS,<a name="line.514"></a>
-<span class="sourceLineNo">515</span>              ClusterStatusPublisher.Publisher.class);<a name="line.515"></a>
-<span class="sourceLineNo">516</span><a name="line.516"></a>
-<span class="sourceLineNo">517</span>      if (shouldPublish) {<a name="line.517"></a>
-<span class="sourceLineNo">518</span>        if (publisherClass == null) {<a name="line.518"></a>
-<span class="sourceLineNo">519</span>          LOG.warn(HConstants.STATUS_PUBLISHED + " is true, but " +<a name="line.519"></a>
-<span class="sourceLineNo">520</span>              ClusterStatusPublisher.DEFAULT_STATUS_PUBLISHER_CLASS +<a name="line.520"></a>
-<span class="sourceLineNo">521</span>              " is not set - not publishing status");<a name="line.521"></a>
-<span class="sourceLineNo">522</span>        } else {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>          clusterStatusPublisherChore = new ClusterStatusPublisher(this, conf, publisherClass);<a name="line.523"></a>
-<span class="sourceLineNo">524</span>          getChoreService().scheduleChore(clusterStatusPublisherChore);<a name="line.524"></a>
-<span class="sourceLineNo">525</span>        }<a name="line.525"></a>
-<span class="sourceLineNo">526</span>      }<a name="line.526"></a>
-<span class="sourceLineNo">527</span><a name="line.527"></a>
-<span class="sourceLineNo">528</span>      // Some unit tests don't need a cluster, so no zookeeper at all<a name="line.528"></a>
-<span class="sourceLineNo">529</span>      if (!conf.getBoolean("hbase.testing.nocluster", false)) {<a name="line.529"></a>
-<span class="sourceLineNo">530</span>        this.activeMasterManager = new ActiveMasterManager(zooKeeper, this.serverName, this);<a name="line.530"></a>
-<span class="sourceLineNo">531</span>      } else {<a name="line.531"></a>
-<span class="sourceLineNo">532</span>        this.activeMasterManager = null;<a name="line.532"></a>
-<span class="sourceLineNo">533</span>      }<a name="line.533"></a>
-<span class="sourceLineNo">534</span>    } catch (Throwable t) {<a name="line.534"></a>
-<span class="sourceLineNo">535</span>      // Make sure we log the exception. HMaster is often started via reflection and the<a name="line.535"></a>
-<span class="sourceLineNo">536</span>      // cause of failed startup is lost.<a name="line.536"></a>
-<span class="sourceLineNo">537</span>      LOG.error("Failed construction of Master", t);<a name="line.537"></a>
-<span class="sourceLineNo">538</span>      throw t;<a name="line.538"></a>
-<span class="sourceLineNo">539</span>    }<a name="line.539"></a>
-<span class="sourceLineNo">540</span>  }<a name="line.540"></a>
-<span class="sourceLineNo">541</span><a name="line.541"></a>
-<span class="sourceLineNo">542</span>  // Main run loop. Calls through to the regionserver run loop AFTER becoming active Master; will<a name="line.542"></a>
-<span class="sourceLineNo">543</span>  // block in here until then.<a name="line.543"></a>
-<span class="sourceLineNo">544</span>  @Override<a name="line.544"></a>
-<span class="sourceLineNo">545</span>  public void run() {<a name="line.545"></a>
-<span class="sourceLineNo">546</span>    try {<a name="line.546"></a>
-<span class="sourceLineNo">547</span>      if (!conf.getBoolean("hbase.testing.nocluster", false)) {<a name="line.547"></a>
-<span class="sourceLineNo">548</span>        try {<a name="line.548"></a>
-<span class="sourceLineNo">549</span>          int infoPort = putUpJettyServer();<a name="line.549"></a>
-<span class="sourceLineNo">550</span>          startActiveMasterManager(infoPort);<a name="line.550"></a>
-<span class="sourceLineNo">551</span>        } catch (Throwable t) {<a name="line.551"></a>
-<span class="sourceLineNo">552</span>          // Make sure we log the exception.<a name="line.552"></a>
-<span class="sourceLineNo">553</span>          String error = "Failed to become Active Master";<a name="line.553"></a>
-<span class="sourceLineNo">554</span>          LOG.error(error, t);<a name="line.554"></a>
-<span class="sourceLineNo">555</span>          // Abort should have been called already.<a name="line.555"></a>
-<span class="sourceLineNo">556</span>          if (!isAborted()) {<a name="line.556"></a>
-<span class="sourceLineNo">557</span>            abort(error, t);<a name="line.557"></a>
-<span class="sourceLineNo">558</span>          }<a name="line.558"></a>
-<span class="sourceLineNo">559</span>        }<a name="line.559"></a>
-<span class="sourceLineNo">560</span>      }<a name="line.560"></a>
-<span class="sourceLineNo">561</span>      // Fall in here even if we have been aborted. Need to run the shutdown services and<a name="line.561"></a>
-<span class="sourceLineNo">562</span>      // the super run call will do this for us.<a name="line.562"></a>
-<span class="sourceLineNo">563</span>      super.run();<a name="line.563"></a>
-<span class="sourceLineNo">564</span>    } finally {<a name="line.564"></a>
-<span class="sourceLineNo">565</span>      if (this.clusterSchemaService != null) {<a name="line.565"></a>
-<span class="sourceLineNo">566</span>        // If on way out, then we are no longer active master.<a name="line.566"></a>
-<span class="sourceLineNo">567</span>        this.clusterSchemaService.stopAsync();<a name="line.567"></a>
-<span class="sourceLineNo">568</span>        try {<a name="line.568"></a>
-<span class="sourceLineNo">569</span>          this.clusterSchemaService.awaitTerminated(<a name="line.569"></a>
-<span class="sourceLineNo">570</span>              getConfiguration().getInt(HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS,<a name="line.570"></a>
-<span class="sourceLineNo">571</span>              DEFAULT_HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS), TimeUnit.SECONDS);<a name="line.571"></a>
-<span class="sourceLineNo">572</span>        } catch (TimeoutException te) {<a name="line.572"></a>
-<span class="sourceLineNo">573</span>          LOG.warn("Failed shutdown of clusterSchemaService", te);<a name="line.573"></a>
-<span class="sourceLineNo">574</span>        }<a name="line.574"></a>
-<span class="sourceLineNo">575</span>      }<a name="line.575"></a>
-<span class="sourceLineNo">576</span>      this.activeMaster = false;<a name="line.576"></a>
-<span class="sourceLineNo">577</span>    }<a name="line.577"></a>
-<span class="sourceLineNo">578</span>  }<a name="line.578"></a>
-<span class="sourceLineNo">579</span><a name="line.579"></a>
-<span class="sourceLineNo">580</span>  // return the actual infoPort, -1 means disable info server.<a name="line.580"></a>
-<span class="sourceLineNo">581</span>  private int putUpJettyServer() throws IOException {<a name="line.581"></a>
-<span class="sourceLineNo">582</span>    if (!conf.getBoolean("hbase.master.infoserver.redirect", true)) {<a name="line.582"></a>
-<span class="sourceLineNo">583</span>      return -1;<a name="line.583"></a>
-<span class="sourceLineNo">584</span>    }<a name="line.584"></a>
-<span class="sourceLineNo">585</span>    final int infoPort = conf.getInt("hbase.master.info.port.orig",<a name="line.585"></a>
-<span class="sourceLineNo">586</span>      HConstants.DEFAULT_MASTER_INFOPORT);<a name="line.586"></a>
-<span class="sourceLineNo">587</span>    // -1 is for disabling info server, so no redirecting<a name="line.587"></a>
-<span class="sourceLineNo">588</span>    if (infoPort &lt; 0 || infoServer == null) {<a name="line.588"></a>
-<span class="sourceLineNo">589</span>      return -1;<a name="line.589"></a>
-<span class="sourceLineNo">590</span>    }<a name="line.590"></a>
-<span class="sourceLineNo">591</span>    if(infoPort == infoServer.getPort()) {<a name="line.591"></a>
-<span class="sourceLineNo">592</span>      return infoPort;<a name="line.592"></a>
-<span class="sourceLineNo">593</span>    }<a name="line.593"></a>
-<span class="sourceLineNo">594</span>    final String addr = conf.get("hbase.master.info.bindAddress", "0.0.0.0");<a name="line.594"></a>
-<span class="sourceLineNo">595</span>    if (!Addressing.isLocalAddress(InetAddress.getByName(addr))) {<a name="line.595"></a>
-<span class="sourceLineNo">596</span>      String msg =<a name="line.596"></a>
-<span class="sourceLineNo">597</span>          "Failed to start redirecting jetty server. Address " + addr<a name="line.597"></a>
-<span class="sourceLineNo">598</span>              + " does not belong to this host. Correct configuration parameter: "<a name="line.598"></a>
-<span class="sourceLineNo">599</span>              + "hbase.master.info.bindAddress";<a name="line.599"></a>
-<span class="sourceLineNo">600</span>      LOG.error(msg);<a name="line.600"></a>
-<span class="sourceLineNo">601</span>      throw new IOException(msg);<a name="line.601"></a>
-<span class="sourceLineNo">602</span>    }<a name="line.602"></a>
-<span class="sourceLineNo">603</span><a name="line.603"></a>
-<span class="sourceLineNo">604</span>    // TODO I'm pretty sure we could just add another binding to the InfoServer run by<a name="line.604"></a>
-<span class="sourceLineNo">605</span>    // the RegionServer and have it run the RedirectServlet instead of standing up<a name="line.605"></a>
-<span class="sourceLineNo">606</span>    // a second entire stack here.<a name="line.606"></a>
-<span class="sourceLineNo">607</span>    masterJettyServer = new Server();<a name="line.607"></a>
-<span class="sourceLineNo">608</span>    final ServerConnector connector = new ServerConnector(masterJettyServer);<a name="line.608"></a>
-<span class="sourceLineNo">609</span>    connector.setHost(addr);<a name="line.609"></a>
-<span class="sourceLineNo">610</span>    connector.setPort(infoPort);<a name="line.610"></a>
-<span class="sourceLineNo">611</span>    masterJettyServer.addConnector(connector);<a name="line.611"></a>
-<span class="sourceLineNo">612</span>    masterJettyServer.setStopAtShutdown(true);<a name="line.612"></a>
-<span class="sourceLineNo">613</span><a name="line.613"></a>
-<span class="sourceLineNo">614</span>    final String redirectHostname = shouldUseThisHostnameInstead() ? useThisHostnameInstead : null;<a name="line.614"></a>
-<span class="sourceLineNo">615</span><a name="line.615"></a>
-<span class="sourceLineNo">616</span>    final RedirectServlet redirect = new RedirectServlet(infoServer, redirectHostname);<a name="line.616"></a>
-<span class="sourceLineNo">617</span>    final WebAppContext context = new WebAppContext(null, "/", null, null, null, null, WebAppContext.NO_SESSIONS);<a name="line.617"></a>
-<span class="sourceLineNo">618</span>    context.addServlet(new ServletHolder(redirect), "/*");<a name="line.618"></a>
-<span class="sourceLineNo">619</span>    context.setServer(masterJettyServer);<a name="line.619"></a>
-<span class="sourceLineNo">620</span><a name="line.620"></a>
-<span class="sourceLineNo">621</span>    try {<a name="line.621"></a>
-<span class="sourceLineNo">622</span>      masterJettyServer.start();<a name="line.622"></a>
-<span class="sourceLineNo">623</span>    } catch (Exception e) {<a name="line.623"></a>
-<span class="sourceLineNo">624</span>      throw new IOException("Failed to start redirecting jetty server", e);<a name="line.624"></a>
-<span class="sourceLineNo">625</span>    }<a name="line.625"></a>
-<span class="sourceLineNo">626</span>    return connector.getLocalPort();<a name="line.626"></a>
-<span class="sourceLineNo">627</span>  }<a name="line.627"></a>
-<span class="sourceLineNo">628</span><a name="line.628"></a>
-<span class="sourceLineNo">629</span>  @Override<a name="line.629"></a>
-<span class="sourceLineNo">630</span>  protected Function&lt;TableDescriptorBuilder, TableDescriptorBuilder&gt; getMetaTableObserver() {<a name="line.630"></a>
-<span class="sourceLineNo">631</span>    return builder -&gt; builder.setRegionReplication(conf.getInt(HConstants.META_REPLICAS_NUM, HConstants.DEFAULT_META_REPLICA_NUM));<a name="line.631"></a>
-<span class="sourceLineNo">632</span>  }<a name="line.632"></a>
-<span class="sourceLineNo">633</span>  /**<a name="line.633"></a>
-<span class="sourceLineNo">634</span>   * For compatibility, if failed with regionserver credentials, try the master one<a name="line.634"></a>
-<span class="sourceLineNo">635</span>   */<a name="line.635"></a>
-<span class="sourceLineNo">636</span>  @Override<a name="line.636"></a>
-<span class="sourceLineNo">637</span>  protected void login(UserProvider user, String host) throws IOException {<a name="line.637"></a>
-<span class="sourceLineNo">638</span>    try {<a name="line.638"></a>
-<span class="sourceLineNo">639</span>      super.login(user, host);<a name="line.639"></a>
-<span class="sourceLineNo">640</span>    } catch (IOException ie) {<a name="line.640"></a>
-<span class="sourceLineNo">641</span>      user.login("hbase.master.keytab.file",<a name="line.641"></a>
-<span class="sourceLineNo">642</span>        "hbase.master.kerberos.principal", host);<a name="line.642"></a>
-<span class="sourceLineNo">643</span>    }<a name="line.643"></a>
-<span class="sourceLineNo">644</span>  }<a name="line.644"></a>
-<span class="sourceLineNo">645</span><a name="line.645"></a>
-<span class="sourceLineNo">646</span>  /**<a name="line.646"></a>
-<span class="sourceLineNo">647</span>   * If configured to put regions on active master,<a name="line.647"></a>
-<span class="sourceLineNo">648</span>   * wait till a backup master becomes active.<a name="line.648"></a>
-<span class="sourceLineNo">649</span>   * Otherwise, loop till the server is stopped or aborted.<a name="line.649"></a>
-<span class="sourceLineNo">650</span>   */<a name="line.650"></a>
-<span class="sourceLineNo">651</span>  @Override<a name="line.651"></a>
-<span class="sourceLineNo">652</span>  protected void waitForMasterActive(){<a name="line.652"></a>
-<span class="sourceLineNo">653</span>    boolean tablesOnMaster = LoadBalancer.isTablesOnMaster(conf);<a name="line.653"></a>
-<span class="sourceLineNo">654</span>    while (!(tablesOnMaster &amp;&amp; activeMaster) &amp;&amp; !isStopped() &amp;&amp; !isAborted()) {<a name="line.654"></a>
-<span class="sourceLineNo">655</span>      sleeper.sleep();<a name="line.655"></a>
-<span class="sourceLineNo">656</span>    }<a name="line.656"></a>
-<span class="sourceLineNo">657</span>  }<a name="line.657"></a>
-<span class="sourceLineNo">658</span><a name="line.658"></a>
-<span class="sourceLineNo">659</span>  @VisibleForTesting<a name="line.659"></a>
-<span class="sourceLineNo">660</span>  public MasterRpcServices getMasterRpcServices() {<a name="line.660"></a>
-<span class="sourceLineNo">661</span>    return (MasterRpcServices)rpcServices;<a name="line.661"></a>
-<span class="sourceLineNo">662</span>  }<a name="line.662"></a>
-<span class="sourceLineNo">663</span><a name="line.663"></a>
-<span class="sourceLineNo">664</span>  public boolean balanceSwitch(final boolean b) throws IOException {<a name="line.664"></a>
-<span class="sourceLineNo">665</span>    return getMasterRpcServices().switchBalancer(b, BalanceSwitchMode.ASYNC);<a name="line.665"></a>
-<span class="sourceLineNo">666</span>  }<a name="line.666"></a>
-<span class="sourceLineNo">667</span><a name="line.667"></a>
-<span class="sourceLineNo">668</span>  @Override<a name="line.668"></a>
-<span class="sourceLineNo">669</span>  protected String getProcessName() {<a name="line.669"></a>
-<span class="sourceLineNo">670</span>    return MASTER;<a name="line.670"></a>
-<span class="sourceLineNo">671</span>  }<a name="line.671"></a>
-<span class="sourceLineNo">672</span><a name="line.672"></a>
-<span class="sourceLineNo">673</span>  @Override<a name="line.673"></a>
-<span class="sourceLineNo">674</span>  protected boolean canCreateBaseZNode() {<a name="line.674"></a>
-<span class="sourceLineNo">675</span>    return true;<a name="line.675"></a>
-<span class="sourceLineNo">676</span>  }<a name="line.676"></a>
-<span class="sourceLineNo">677</span><a name="line.677"></a>
-<span class="sourceLineNo">678</span>  @Override<a name="line.678"></a>
-<span class="sourceLineNo">679</span>  protected boolean canUpdateTableDescriptor() {<a name="line.679"></a>
-<span class="sourceLineNo">680</span>    return true;<a name="line.680"></a>
-<span class="sourceLineNo">681</span>  }<a name="line.681"></a>
-<span class="sourceLineNo">682</span><a name="line.682"></a>
-<span class="sourceLineNo">683</span>  @Override<a name="line.683"></a>
-<span class="sourceLineNo">684</span>  protected RSRpcServices createRpcServices() throws IOException {<a name="line.684"></a>
-<span class="sourceLineNo">685</span>    return new MasterRpcServices(this);<a name="line.685"></a>
-<span class="sourceLineNo">686</span>  }<a name="line.686"></a>
-<span class="sourceLineNo">687</span><a name="line.687"></a>
-<span class="sourceLineNo">688</span>  @Override<a name="line.688"></a>
-<span class="sourceLineNo">689</span>  protected void configureInfoServer() {<a name="line.689"></a>
-<span class="sourceLineNo">690</span>    infoServer.addServlet("master-status", "/master-status", MasterStatusServlet.class);<a name="line.690"></a>
-<span class="sourceLineNo">691</span>    infoServer.setAttribute(MASTER, this);<a name="line.691"></a>
-<span class="sourceLineNo">692</span>    if (LoadBalancer.isTablesOnMaster(conf)) {<a name="line.692"></a>
-<span class="sourceLineNo">693</span>      super.configureInfoServer();<a name="line.693"></a>
-<span class="sourceLineNo">694</span>    }<a name="line.694"></a>
-<span class="sourceLineNo">695</span>  }<a name="line.695"></a>
-<span class="sourceLineNo">696</span><a name="line.696"></a>
-<span class="sourceLineNo">697</span>  @Override<a name="line.697"></a>
-<span class="sourceLineNo">698</span>  protected Class&lt;? extends HttpServlet&gt; getDumpServlet() {<a name="line.698"></a>
-<span class="sourceLineNo">699</span>    return MasterDumpServlet.class;<a name="line.699"></a>
-<span class="sourceLineNo">700</span>  }<a name="line.700"></a>
-<span class="sourceLineNo">701</span><a name="line.701"></a>
-<span class="sourceLineNo">702</span>  @Override<a name="line.702"></a>
-<span class="sourceLineNo">703</span>  public MetricsMaster getMasterMetrics() {<a name="line.703"></a>
-<span class="sourceLineNo">704</span>    return metricsMaster;<a name="line.704"></a>
-<span class="sourceLineNo">705</span>  }<a name="line.705"></a>
-<span class="sourceLineNo">706</span><a name="line.706"></a>
-<span class="sourceLineNo">707</span>  /**<a name="line.707"></a>
-<span class="sourceLineNo">708</span>   * Initialize all ZK based system trackers.<a name="line.708"></a>
-<span class="sourceLineNo">709</span>   */<a name="line.709"></a>
-<span class="sourceLineNo">710</span>  void initializeZKBasedSystemTrackers() throws IOException, InterruptedException, KeeperException,<a name="line.710"></a>
-<span class="sourceLineNo">711</span>      CoordinatedStateException, ReplicationException {<a name="line.711"></a>
-<span class="sourceLineNo">712</span>    this.balancer = LoadBalancerFactory.getLoadBalancer(conf);<a name="line.712"></a>
-<span class="sourceLineNo">713</span>    this.normalizer = RegionNormalizerFactory.getRegionNormalizer(conf);<a name="line.713"></a>
-<span class="sourceLineNo">714</span>    this.normalizer.setMasterServices(this);<a name="line.714"></a>
-<span class="sourceLineNo">715</span>    this.normalizer.setMasterRpcServices((MasterRpcServices)rpcServices);<a name="line.715"></a>
-<span class="sourceLineNo">716</span>    this.loadBalancerTracker = new LoadBalancerTracker(zooKeeper, this);<a name="line.716"></a>
-<span class="sourceLineNo">717</span>    this.loadBalancerTracker.start();<a name="line.717"></a>
-<span class="sourceLineNo">718</span><a name="line.718"></a>
-<span class="sourceLineNo">719</span>    this.regionNormalizerTracker = new RegionNormalizerTracker(zooKeeper, this);<a name="line.719"></a>
-<span class="sourceLineNo">720</span>    this.regionNormalizerTracker.start();<a name="line.720"></a>
-<span class="sourceLineNo">721</span><a name="line.721"></a>
-<span class="sourceLineNo">722</span>    this.splitOrMergeTracker = new SplitOrMergeTracker(zooKeeper, conf, this);<a name="line.722"></a>
-<span class="sourceLineNo">723</span>    this.splitOrMergeTracker.start();<a name="line.723"></a>
-<span class="sourceLineNo">724</span><a name="line.724"></a>
-<span class="sourceLineNo">725</span>    // Create Assignment Manager<a name="line.725"></a>
-<span class="sourceLineNo">726</span>    this.assignmentManager = new AssignmentManager(this);<a name="line.726"></a>
-<span class="sourceLineNo">727</span>    this.assignmentManager.start();<a name="line.727"></a>
-<span class="sourceLineNo">728</span><a name="line.728"></a>
-<span class="sourceLineNo">729</span>    this.replicationPeerManager = ReplicationPeerManager.create(zooKeeper, conf);<a name="line.729"></a>
-<span class="sourceLineNo">730</span><a name="line.730"></a>
-<span class="sourceLineNo">731</span>    this.regionServerTracker = new RegionServerTracker(zooKeeper, this, this.serverManager);<a name="line.731"></a>
-<span class="sourceLineNo">732</span>    this.regionServerTracker.start();<a name="line.732"></a>
-<span class="sourceLineNo">733</span><a name="line.733"></a>
-<span class="sourceLineNo">734</span>    this.drainingServerTracker = new DrainingServerTracker(zooKeeper, this, this.serverManager);<a name="line.734"></a>
-<span class="sourceLineNo">735</span>    this.drainingServerTracker.start();<a name="line.735"></a>
-<span class="sourceLineNo">736</span><a name="line.736"></a>
-<span class="sourceLineNo">737</span>    this.maintenanceModeTracker = new MasterMaintenanceModeTracker(zooKeeper);<a name="line.737"></a>
-<span class="sourceLineNo">738</span>    this.maintenanceModeTracker.start();<a name="line.738"></a>
-<span class="sourceLineNo">739</span><a name="line.739"></a>
-<span class="sourceLineNo">740</span>    // Set the cluster as up.  If new RSs, they'll be waiting on this before<a name="line.740"></a>
-<span class="sourceLineNo">741</span>    // going ahead with their startup.<a name="line.741"></a>
-<span class="sourceLineNo">742</span>    boolean wasUp = this.clusterStatusTracker.isClusterUp();<a name="line.742"></a>
-<span class="sourceLineNo">743</span>    if (!wasUp) this.clusterStatusTracker.setClusterUp();<a name="line.743"></a>
-<span class="sourceLineNo">744</span><a name="line.744"></a>
-<span class="sourceLineNo">745</span>    LOG.info("Server active/primary master=" + this.serverName +<a name="line.745"></a>
-<span class="sourceLineNo">746</span>        ", sessionid=0x" +<a name="line.746"></a>
-<span class="sourceLineNo">747</span>        Long.toHexString(this.zooKeeper.getRecoverableZooKeeper().getSessionId()) +<a name="line.747"></a>
-<span class="sourceLineNo">748</span>        ", setting cluster-up flag (Was=" + wasUp + ")");<a name="line.748"></a>
-<span class="sourceLineNo">749</span><a name="line.749"></a>
-<span class="sourceLineNo">750</span>    // create/initialize the snapshot manager and other procedure managers<a name="line.750"></a>
-<span class="sourceLineNo">751</span>    this.snapshotManager = new SnapshotManager();<a name="line.751"></a>
-<span class="sourceLineNo">752</span>    this.mpmHost = new MasterProcedureManagerHost();<a name="line.752"></a>
-<span class="sourceLineNo">753</span>    this.mpmHost.register(this.snapshotManager);<a name="line.753"></a>
-<span class="sourceLineNo">754</span>    this.mpmHost.register(new MasterFlushTableProcedureManager());<a name="line.754"></a>
-<span class="sourceLineNo">755</span>    this.mpmHost.loadProcedures(conf);<a name="line.755"></a>
-<span class="sourceLineNo">756</span>    this.mpmHost.initialize(this, this.metricsMaster);<a name="line.756"></a>
-<span class="sourceLineNo">757</span>  }<a name="line.757"></a>
-<span class="sourceLineNo">758</span><a name="line.758"></a>
-<span class="sourceLineNo">759</span>  /**<a name="line.759"></a>
-<span class="sourceLineNo">760</span>   * Finish initialization of HMaster after becoming the primary master.<a name="line.760"></a>
-<span class="sourceLineNo">761</span>   *<a name="line.761"></a>
-<span class="sourceLineNo">762</span>   * &lt;ol&gt;<a name="line.762"></a>
-<span class="sourceLineNo">763</span>   * &lt;li&gt;Initialize master components - file system manager, server manager,<a name="line.763"></a>
-<span class="sourceLineNo">764</span>   *     assignment manager, region server tracker, etc&lt;/li&gt;<a name="line.764"></a>
-<span class="sourceLineNo">765</span>   * &lt;li&gt;Start necessary service threads - balancer, catalog janior,<a name="line.765"></a>
-<span class="sourceLineNo">766</span>   *     executor services, etc&lt;/li&gt;<a name="line.766"></a>
-<span class="sourceLineNo">767</span>   * &lt;li&gt;Set cluster as UP in ZooKeeper&lt;/li&gt;<a name="line.767"></a>
-<span class="sourceLineNo">768</span>   * &lt;li&gt;Wait for RegionServers to check-in&lt;/li&gt;<a name="line.768"></a>
-<span class="sourceLineNo">769</span>   * &lt;li&gt;Split logs and perform data recovery, if necessary&lt;/li&gt;<a name="line.769"></a>
-<span class="sourceLineNo">770</span>   * &lt;li&gt;Ensure assignment of meta/namespace regions&lt;li&gt;<a name="line.770"></a>
-<span class="sourceLineNo">771</span>   * &lt;li&gt;Handle either fresh cluster start or master failover&lt;/li&gt;<a name="line.771"></a>
-<span class="sourceLineNo">772</span>   * &lt;/ol&gt;<a name="line.772"></a>
-<span class="sourceLineNo">773</span>   */<a name="line.773"></a>
-<span class="sourceLineNo">774</span>  private void finishActiveMasterInitialization(MonitoredTask status) throws IOException,<a name="line.774"></a>
-<span class="sourceLineNo">775</span>          InterruptedException, KeeperException, CoordinatedStateException, ReplicationException {<a name="line.775"></a>
-<span class="sourceLineNo">776</span>    Thread zombieDetector = new Thread(new InitializationMonitor(this),<a name="line.776"></a>
-<span class="sourceLineNo">777</span>        "ActiveMasterInitializationMonitor-" + System.currentTimeMillis());<a name="line.777"></a>
-<span class="sourceLineNo">778</span>    zombieDetector.setDaemon(true);<a name="line.778"></a>
-<span class="sourceLineNo">779</span>    zombieDetector.start();<a name="line.779"></a>
-<span class="sourceLineNo">780</span><a name="line.780"></a>
-<span class="sourceLineNo">781</span>    /*<a name="line.781"></a>
-<span class="sourceLineNo">782</span>     * We are active master now... go initialize components we need to run.<a name="line.782"></a>
-<span class="sourceLineNo">783</span>     */<a name="line.783"></a>
-<span class="sourceLineNo">784</span>    status.setStatus("Initializing Master file system");<a name="line.784"></a>
-<span class="sourceLineNo">785</span><a name="line.785"></a>
-<span class="sourceLineNo">786</span>    this.masterActiveTime = System.currentTimeMillis();<a name="line.786"></a>
-<span class="sourceLineNo">787</span>    // TODO: Do this using Dependency Injection, using PicoContainer, Guice or Spring.<a name="line.787"></a>
-<span class="sourceLineNo">788</span>    // Initialize the chunkCreator<a name="line.788"></a>
-<span class="sourceLineNo">789</span>    initializeMemStoreChunkCreator();<a name="line.789"></a>
-<span class="sourceLineNo">790</span>    this.fileSystemManager = new MasterFileSystem(this);<a name="line.790"></a>
-<span class="sourceLineNo">791</span>    this.walManager = new MasterWalManager(this);<a name="line.791"></a>
-<span class="sourceLineNo">792</span><a name="line.792"></a>
-<span class="sourceLineNo">793</span>    // enable table descriptors cache<a name="line.793"></a>
-<span class="sourceLineNo">794</span>    this.tableDescriptors.setCacheOn();<a name="line.794"></a>
-<span class="sourceLineNo">795</span><a name="line.795"></a>
-<span class="sourceLineNo">796</span>    // warm-up HTDs cache on master initialization<a name="line.796"></a>
-<span class="sourceLineNo">797</span>    if (preLoadTableDescriptors) {<a name="line.797"></a>
-<span class="sourceLineNo">798</span>      status.setStatus("Pre-loading table descriptors");<a name="line.798"></a>
-<span class="sourceLineNo">799</span>      this.tableDescriptors.getAll();<a name="line.799"></a>
-<span class="sourceLineNo">800</span>    }<a name="line.800"></a>
-<span class="sourceLineNo">801</span><a name="line.801"></a>
-<span class="sourceLineNo">802</span>    // Publish cluster ID<a name="line.802"></a>
-<span class="sourceLineNo">803</span>    status.setStatus("Publishing Cluster ID in ZooKeeper");<a name="line.803"></a>
-<span class="sourceLineNo">804</span>    ZKClusterId.setClusterId(this.zooKeeper, fileSystemManager.getClusterId());<a name="line.804"></a>
-<span class="sourceLineNo">805</span><a name="line.805"></a>
-<span class="sourceLineNo">806</span>    this.serverManager = createServerManager(this);<a name="line.806"></a>
-<span class="sourceLineNo">807</span><a name="line.807"></a>
-<span class="sourceLineNo">808</span>    this.tableStateManager = new TableStateManager(this);<a name="line.808"></a>
-<span class="sourceLineNo">809</span><a name="line.809"></a>
-<span class="sourceLineNo">810</span>    status.setStatus("Initializing ZK system trackers");<a name="line.810"></a>
-<span class="sourceLineNo">811</span>    initializeZKBasedSystemTrackers();<a name="line.811"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.ClusterId;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.ClusterMetrics;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.ClusterMetrics.Option;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.ClusterMetricsBuilder;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.CoordinatedStateException;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.DoNotRetryIOException;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.HBaseIOException;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.HBaseInterfaceAudience;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.HConstants;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.InvalidFamilyOperationException;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.MasterNotRunningException;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.PleaseHoldException;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.ReplicationPeerNotFoundException;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.ServerLoad;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.ServerMetricsBuilder;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.ServerName;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.TableDescriptors;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.TableName;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.TableNotDisabledException;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.client.MasterSwitchType;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.client.RegionInfo;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.client.Result;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.client.TableDescriptor;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.client.TableDescriptorBuilder;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.client.TableState;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.coprocessor.CoprocessorHost;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.exceptions.MergeRegionException;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.executor.ExecutorType;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.favored.FavoredNodesManager;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.favored.FavoredNodesPromoter;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.http.InfoServer;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.ipc.RpcServer;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.ipc.ServerNotRunningYetException;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.log.HBaseMarkers;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.master.MasterRpcServices.BalanceSwitchMode;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.master.assignment.AssignmentManager;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.master.assignment.MergeTableRegionsProcedure;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.master.assignment.RegionStates;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.master.assignment.RegionStates.RegionStateNode;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.master.balancer.BalancerChore;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.master.balancer.ClusterStatusChore;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.master.balancer.LoadBalancerFactory;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.master.cleaner.HFileCleaner;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.master.cleaner.LogCleaner;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.master.cleaner.ReplicationMetaCleaner;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.master.locking.LockManager;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.master.normalizer.NormalizationPlan;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.master.normalizer.NormalizationPlan.PlanType;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizer;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizerChore;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizerFactory;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.master.procedure.CreateTableProcedure;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.master.procedure.DeleteTableProcedure;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.master.procedure.DisableTableProcedure;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.master.procedure.EnableTableProcedure;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureConstants;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureUtil;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.master.procedure.ModifyTableProcedure;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.master.procedure.ProcedurePrepareLatch;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.master.procedure.RecoverMetaProcedure;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.master.procedure.TruncateTableProcedure;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.master.replication.AddPeerProcedure;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.master.replication.D

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/src-html/org/apache/hadoop/hbase/backup/TestBackupBase.IncrementalTableBackupClientForTest.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/backup/TestBackupBase.IncrementalTableBackupClientForTest.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/backup/TestBackupBase.IncrementalTableBackupClientForTest.html
index c4e20fb..73d508d 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/backup/TestBackupBase.IncrementalTableBackupClientForTest.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/backup/TestBackupBase.IncrementalTableBackupClientForTest.html
@@ -65,456 +65,452 @@
 <span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.client.HTable;<a name="line.57"></a>
 <span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.client.Put;<a name="line.58"></a>
 <span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.client.Table;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.coprocessor.CoprocessorHost;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.security.HadoopSecurityEnabledUserProviderForTesting;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.security.UserProvider;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.security.access.SecureTestUtil;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.snapshot.SnapshotTestingUtils;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.wal.WALFactory;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.junit.AfterClass;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.junit.Before;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.slf4j.Logger;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.slf4j.LoggerFactory;<a name="line.71"></a>
-<span class="sourceLineNo">072</span><a name="line.72"></a>
-<span class="sourceLineNo">073</span>/**<a name="line.73"></a>
-<span class="sourceLineNo">074</span> * This class is only a base for other integration-level backup tests. Do not add tests here.<a name="line.74"></a>
-<span class="sourceLineNo">075</span> * TestBackupSmallTests is where tests that don't require bring machines up/down should go All other<a name="line.75"></a>
-<span class="sourceLineNo">076</span> * tests should have their own classes and extend this one<a name="line.76"></a>
-<span class="sourceLineNo">077</span> */<a name="line.77"></a>
-<span class="sourceLineNo">078</span>public class TestBackupBase {<a name="line.78"></a>
-<span class="sourceLineNo">079</span><a name="line.79"></a>
-<span class="sourceLineNo">080</span>  private static final Logger LOG = LoggerFactory.getLogger(TestBackupBase.class);<a name="line.80"></a>
-<span class="sourceLineNo">081</span><a name="line.81"></a>
-<span class="sourceLineNo">082</span>  protected static HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();<a name="line.82"></a>
-<span class="sourceLineNo">083</span>  protected static HBaseTestingUtility TEST_UTIL2;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>  protected static Configuration conf1 = TEST_UTIL.getConfiguration();<a name="line.84"></a>
-<span class="sourceLineNo">085</span>  protected static Configuration conf2;<a name="line.85"></a>
-<span class="sourceLineNo">086</span><a name="line.86"></a>
-<span class="sourceLineNo">087</span>  protected static TableName table1 = TableName.valueOf("table1");<a name="line.87"></a>
-<span class="sourceLineNo">088</span>  protected static HTableDescriptor table1Desc;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>  protected static TableName table2 = TableName.valueOf("table2");<a name="line.89"></a>
-<span class="sourceLineNo">090</span>  protected static TableName table3 = TableName.valueOf("table3");<a name="line.90"></a>
-<span class="sourceLineNo">091</span>  protected static TableName table4 = TableName.valueOf("table4");<a name="line.91"></a>
-<span class="sourceLineNo">092</span><a name="line.92"></a>
-<span class="sourceLineNo">093</span>  protected static TableName table1_restore = TableName.valueOf("ns1:table1_restore");<a name="line.93"></a>
-<span class="sourceLineNo">094</span>  protected static TableName table2_restore = TableName.valueOf("ns2:table2_restore");<a name="line.94"></a>
-<span class="sourceLineNo">095</span>  protected static TableName table3_restore = TableName.valueOf("ns3:table3_restore");<a name="line.95"></a>
-<span class="sourceLineNo">096</span>  protected static TableName table4_restore = TableName.valueOf("ns4:table4_restore");<a name="line.96"></a>
-<span class="sourceLineNo">097</span><a name="line.97"></a>
-<span class="sourceLineNo">098</span>  protected static final int NB_ROWS_IN_BATCH = 99;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>  protected static final byte[] qualName = Bytes.toBytes("q1");<a name="line.99"></a>
-<span class="sourceLineNo">100</span>  protected static final byte[] famName = Bytes.toBytes("f");<a name="line.100"></a>
-<span class="sourceLineNo">101</span><a name="line.101"></a>
-<span class="sourceLineNo">102</span>  protected static String BACKUP_ROOT_DIR = Path.SEPARATOR +"backupUT";<a name="line.102"></a>
-<span class="sourceLineNo">103</span>  protected static String BACKUP_REMOTE_ROOT_DIR = Path.SEPARATOR + "backupUT";<a name="line.103"></a>
-<span class="sourceLineNo">104</span>  protected static String provider = "defaultProvider";<a name="line.104"></a>
-<span class="sourceLineNo">105</span>  protected static boolean secure = false;<a name="line.105"></a>
-<span class="sourceLineNo">106</span><a name="line.106"></a>
-<span class="sourceLineNo">107</span>  protected static boolean autoRestoreOnFailure = true;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>  protected static boolean setupIsDone = false;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>  protected static boolean useSecondCluster = false;<a name="line.109"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.security.HadoopSecurityEnabledUserProviderForTesting;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.security.UserProvider;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.security.access.SecureTestUtil;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.snapshot.SnapshotTestingUtils;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.wal.WALFactory;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.junit.AfterClass;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.junit.Before;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.slf4j.Logger;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.slf4j.LoggerFactory;<a name="line.70"></a>
+<span class="sourceLineNo">071</span><a name="line.71"></a>
+<span class="sourceLineNo">072</span>/**<a name="line.72"></a>
+<span class="sourceLineNo">073</span> * This class is only a base for other integration-level backup tests. Do not add tests here.<a name="line.73"></a>
+<span class="sourceLineNo">074</span> * TestBackupSmallTests is where tests that don't require bring machines up/down should go All other<a name="line.74"></a>
+<span class="sourceLineNo">075</span> * tests should have their own classes and extend this one<a name="line.75"></a>
+<span class="sourceLineNo">076</span> */<a name="line.76"></a>
+<span class="sourceLineNo">077</span>public class TestBackupBase {<a name="line.77"></a>
+<span class="sourceLineNo">078</span><a name="line.78"></a>
+<span class="sourceLineNo">079</span>  private static final Logger LOG = LoggerFactory.getLogger(TestBackupBase.class);<a name="line.79"></a>
+<span class="sourceLineNo">080</span><a name="line.80"></a>
+<span class="sourceLineNo">081</span>  protected static HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();<a name="line.81"></a>
+<span class="sourceLineNo">082</span>  protected static HBaseTestingUtility TEST_UTIL2;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>  protected static Configuration conf1 = TEST_UTIL.getConfiguration();<a name="line.83"></a>
+<span class="sourceLineNo">084</span>  protected static Configuration conf2;<a name="line.84"></a>
+<span class="sourceLineNo">085</span><a name="line.85"></a>
+<span class="sourceLineNo">086</span>  protected static TableName table1 = TableName.valueOf("table1");<a name="line.86"></a>
+<span class="sourceLineNo">087</span>  protected static HTableDescriptor table1Desc;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>  protected static TableName table2 = TableName.valueOf("table2");<a name="line.88"></a>
+<span class="sourceLineNo">089</span>  protected static TableName table3 = TableName.valueOf("table3");<a name="line.89"></a>
+<span class="sourceLineNo">090</span>  protected static TableName table4 = TableName.valueOf("table4");<a name="line.90"></a>
+<span class="sourceLineNo">091</span><a name="line.91"></a>
+<span class="sourceLineNo">092</span>  protected static TableName table1_restore = TableName.valueOf("ns1:table1_restore");<a name="line.92"></a>
+<span class="sourceLineNo">093</span>  protected static TableName table2_restore = TableName.valueOf("ns2:table2_restore");<a name="line.93"></a>
+<span class="sourceLineNo">094</span>  protected static TableName table3_restore = TableName.valueOf("ns3:table3_restore");<a name="line.94"></a>
+<span class="sourceLineNo">095</span>  protected static TableName table4_restore = TableName.valueOf("ns4:table4_restore");<a name="line.95"></a>
+<span class="sourceLineNo">096</span><a name="line.96"></a>
+<span class="sourceLineNo">097</span>  protected static final int NB_ROWS_IN_BATCH = 99;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>  protected static final byte[] qualName = Bytes.toBytes("q1");<a name="line.98"></a>
+<span class="sourceLineNo">099</span>  protected static final byte[] famName = Bytes.toBytes("f");<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>  protected static String BACKUP_ROOT_DIR = Path.SEPARATOR +"backupUT";<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  protected static String BACKUP_REMOTE_ROOT_DIR = Path.SEPARATOR + "backupUT";<a name="line.102"></a>
+<span class="sourceLineNo">103</span>  protected static String provider = "defaultProvider";<a name="line.103"></a>
+<span class="sourceLineNo">104</span>  protected static boolean secure = false;<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>  protected static boolean autoRestoreOnFailure = true;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>  protected static boolean setupIsDone = false;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>  protected static boolean useSecondCluster = false;<a name="line.108"></a>
+<span class="sourceLineNo">109</span><a name="line.109"></a>
 <span class="sourceLineNo">110</span><a name="line.110"></a>
-<span class="sourceLineNo">111</span><a name="line.111"></a>
-<span class="sourceLineNo">112</span>  static class IncrementalTableBackupClientForTest extends IncrementalTableBackupClient<a name="line.112"></a>
-<span class="sourceLineNo">113</span>  {<a name="line.113"></a>
-<span class="sourceLineNo">114</span><a name="line.114"></a>
-<span class="sourceLineNo">115</span>    public IncrementalTableBackupClientForTest() {<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    }<a name="line.116"></a>
-<span class="sourceLineNo">117</span><a name="line.117"></a>
-<span class="sourceLineNo">118</span>    public IncrementalTableBackupClientForTest(Connection conn,<a name="line.118"></a>
-<span class="sourceLineNo">119</span>        String backupId, BackupRequest request) throws IOException {<a name="line.119"></a>
-<span class="sourceLineNo">120</span>      super(conn, backupId, request);<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    }<a name="line.121"></a>
-<span class="sourceLineNo">122</span><a name="line.122"></a>
-<span class="sourceLineNo">123</span>    @Override<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    public void execute() throws IOException<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    {<a name="line.125"></a>
-<span class="sourceLineNo">126</span>      // case INCREMENTAL_COPY:<a name="line.126"></a>
-<span class="sourceLineNo">127</span>      try {<a name="line.127"></a>
-<span class="sourceLineNo">128</span>        // case PREPARE_INCREMENTAL:<a name="line.128"></a>
-<span class="sourceLineNo">129</span>        failStageIf(Stage.stage_0);<a name="line.129"></a>
-<span class="sourceLineNo">130</span>        beginBackup(backupManager, backupInfo);<a name="line.130"></a>
-<span class="sourceLineNo">131</span><a name="line.131"></a>
-<span class="sourceLineNo">132</span>        failStageIf(Stage.stage_1);<a name="line.132"></a>
-<span class="sourceLineNo">133</span>        backupInfo.setPhase(BackupPhase.PREPARE_INCREMENTAL);<a name="line.133"></a>
-<span class="sourceLineNo">134</span>        LOG.debug("For incremental backup, current table set is "<a name="line.134"></a>
-<span class="sourceLineNo">135</span>            + backupManager.getIncrementalBackupTableSet());<a name="line.135"></a>
-<span class="sourceLineNo">136</span>        newTimestamps = ((IncrementalBackupManager) backupManager).getIncrBackupLogFileMap();<a name="line.136"></a>
-<span class="sourceLineNo">137</span>        // copy out the table and region info files for each table<a name="line.137"></a>
-<span class="sourceLineNo">138</span>        BackupUtils.copyTableRegionInfo(conn, backupInfo, conf);<a name="line.138"></a>
-<span class="sourceLineNo">139</span>        // convert WAL to HFiles and copy them to .tmp under BACKUP_ROOT<a name="line.139"></a>
-<span class="sourceLineNo">140</span>        convertWALsToHFiles();<a name="line.140"></a>
-<span class="sourceLineNo">141</span>        incrementalCopyHFiles(new String[] {getBulkOutputDir().toString()},<a name="line.141"></a>
-<span class="sourceLineNo">142</span>          backupInfo.getBackupRootDir());<a name="line.142"></a>
-<span class="sourceLineNo">143</span>        failStageIf(Stage.stage_2);<a name="line.143"></a>
-<span class="sourceLineNo">144</span>        // Save list of WAL files copied<a name="line.144"></a>
-<span class="sourceLineNo">145</span>        backupManager.recordWALFiles(backupInfo.getIncrBackupFileList());<a name="line.145"></a>
-<span class="sourceLineNo">146</span><a name="line.146"></a>
-<span class="sourceLineNo">147</span>        // case INCR_BACKUP_COMPLETE:<a name="line.147"></a>
-<span class="sourceLineNo">148</span>        // set overall backup status: complete. Here we make sure to complete the backup.<a name="line.148"></a>
-<span class="sourceLineNo">149</span>        // After this checkpoint, even if entering cancel process, will let the backup finished<a name="line.149"></a>
-<span class="sourceLineNo">150</span>        // Set the previousTimestampMap which is before this current log roll to the manifest.<a name="line.150"></a>
-<span class="sourceLineNo">151</span>        HashMap&lt;TableName, HashMap&lt;String, Long&gt;&gt; previousTimestampMap =<a name="line.151"></a>
-<span class="sourceLineNo">152</span>            backupManager.readLogTimestampMap();<a name="line.152"></a>
-<span class="sourceLineNo">153</span>        backupInfo.setIncrTimestampMap(previousTimestampMap);<a name="line.153"></a>
-<span class="sourceLineNo">154</span><a name="line.154"></a>
-<span class="sourceLineNo">155</span>        // The table list in backupInfo is good for both full backup and incremental backup.<a name="line.155"></a>
-<span class="sourceLineNo">156</span>        // For incremental backup, it contains the incremental backup table set.<a name="line.156"></a>
-<span class="sourceLineNo">157</span>        backupManager.writeRegionServerLogTimestamp(backupInfo.getTables(), newTimestamps);<a name="line.157"></a>
-<span class="sourceLineNo">158</span>        failStageIf(Stage.stage_3);<a name="line.158"></a>
-<span class="sourceLineNo">159</span><a name="line.159"></a>
-<span class="sourceLineNo">160</span>        HashMap&lt;TableName, HashMap&lt;String, Long&gt;&gt; newTableSetTimestampMap =<a name="line.160"></a>
-<span class="sourceLineNo">161</span>            backupManager.readLogTimestampMap();<a name="line.161"></a>
-<span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span>        Long newStartCode =<a name="line.163"></a>
-<span class="sourceLineNo">164</span>            BackupUtils.getMinValue(BackupUtils.getRSLogTimestampMins(newTableSetTimestampMap));<a name="line.164"></a>
-<span class="sourceLineNo">165</span>        backupManager.writeBackupStartCode(newStartCode);<a name="line.165"></a>
-<span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span>        handleBulkLoad(backupInfo.getTableNames());<a name="line.167"></a>
-<span class="sourceLineNo">168</span>        failStageIf(Stage.stage_4);<a name="line.168"></a>
-<span class="sourceLineNo">169</span><a name="line.169"></a>
-<span class="sourceLineNo">170</span>        // backup complete<a name="line.170"></a>
-<span class="sourceLineNo">171</span>        completeBackup(conn, backupInfo, backupManager, BackupType.INCREMENTAL, conf);<a name="line.171"></a>
-<span class="sourceLineNo">172</span><a name="line.172"></a>
-<span class="sourceLineNo">173</span>      } catch (Exception e) {<a name="line.173"></a>
-<span class="sourceLineNo">174</span>        failBackup(conn, backupInfo, backupManager, e, "Unexpected Exception : ",<a name="line.174"></a>
-<span class="sourceLineNo">175</span>          BackupType.INCREMENTAL, conf);<a name="line.175"></a>
-<span class="sourceLineNo">176</span>        throw new IOException(e);<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>
-<span class="sourceLineNo">179</span>    }<a name="line.179"></a>
-<span class="sourceLineNo">180</span>  }<a name="line.180"></a>
-<span class="sourceLineNo">181</span><a name="line.181"></a>
-<span class="sourceLineNo">182</span>  static class FullTableBackupClientForTest extends FullTableBackupClient<a name="line.182"></a>
-<span class="sourceLineNo">183</span>  {<a name="line.183"></a>
+<span class="sourceLineNo">111</span>  static class IncrementalTableBackupClientForTest extends IncrementalTableBackupClient<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>    public IncrementalTableBackupClientForTest() {<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    }<a name="line.115"></a>
+<span class="sourceLineNo">116</span><a name="line.116"></a>
+<span class="sourceLineNo">117</span>    public IncrementalTableBackupClientForTest(Connection conn,<a name="line.117"></a>
+<span class="sourceLineNo">118</span>        String backupId, BackupRequest request) throws IOException {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>      super(conn, backupId, request);<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    }<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>    @Override<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    public void execute() throws IOException<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>      // case INCREMENTAL_COPY:<a name="line.125"></a>
+<span class="sourceLineNo">126</span>      try {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>        // case PREPARE_INCREMENTAL:<a name="line.127"></a>
+<span class="sourceLineNo">128</span>        failStageIf(Stage.stage_0);<a name="line.128"></a>
+<span class="sourceLineNo">129</span>        beginBackup(backupManager, backupInfo);<a name="line.129"></a>
+<span class="sourceLineNo">130</span><a name="line.130"></a>
+<span class="sourceLineNo">131</span>        failStageIf(Stage.stage_1);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>        backupInfo.setPhase(BackupPhase.PREPARE_INCREMENTAL);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>        LOG.debug("For incremental backup, current table set is "<a name="line.133"></a>
+<span class="sourceLineNo">134</span>            + backupManager.getIncrementalBackupTableSet());<a name="line.134"></a>
+<span class="sourceLineNo">135</span>        newTimestamps = ((IncrementalBackupManager) backupManager).getIncrBackupLogFileMap();<a name="line.135"></a>
+<span class="sourceLineNo">136</span>        // copy out the table and region info files for each table<a name="line.136"></a>
+<span class="sourceLineNo">137</span>        BackupUtils.copyTableRegionInfo(conn, backupInfo, conf);<a name="line.137"></a>
+<span class="sourceLineNo">138</span>        // convert WAL to HFiles and copy them to .tmp under BACKUP_ROOT<a name="line.138"></a>
+<span class="sourceLineNo">139</span>        convertWALsToHFiles();<a name="line.139"></a>
+<span class="sourceLineNo">140</span>        incrementalCopyHFiles(new String[] {getBulkOutputDir().toString()},<a name="line.140"></a>
+<span class="sourceLineNo">141</span>          backupInfo.getBackupRootDir());<a name="line.141"></a>
+<span class="sourceLineNo">142</span>        failStageIf(Stage.stage_2);<a name="line.142"></a>
+<span class="sourceLineNo">143</span>        // Save list of WAL files copied<a name="line.143"></a>
+<span class="sourceLineNo">144</span>        backupManager.recordWALFiles(backupInfo.getIncrBackupFileList());<a name="line.144"></a>
+<span class="sourceLineNo">145</span><a name="line.145"></a>
+<span class="sourceLineNo">146</span>        // case INCR_BACKUP_COMPLETE:<a name="line.146"></a>
+<span class="sourceLineNo">147</span>        // set overall backup status: complete. Here we make sure to complete the backup.<a name="line.147"></a>
+<span class="sourceLineNo">148</span>        // After this checkpoint, even if entering cancel process, will let the backup finished<a name="line.148"></a>
+<span class="sourceLineNo">149</span>        // Set the previousTimestampMap which is before this current log roll to the manifest.<a name="line.149"></a>
+<span class="sourceLineNo">150</span>        HashMap&lt;TableName, HashMap&lt;String, Long&gt;&gt; previousTimestampMap =<a name="line.150"></a>
+<span class="sourceLineNo">151</span>            backupManager.readLogTimestampMap();<a name="line.151"></a>
+<span class="sourceLineNo">152</span>        backupInfo.setIncrTimestampMap(previousTimestampMap);<a name="line.152"></a>
+<span class="sourceLineNo">153</span><a name="line.153"></a>
+<span class="sourceLineNo">154</span>        // The table list in backupInfo is good for both full backup and incremental backup.<a name="line.154"></a>
+<span class="sourceLineNo">155</span>        // For incremental backup, it contains the incremental backup table set.<a name="line.155"></a>
+<span class="sourceLineNo">156</span>        backupManager.writeRegionServerLogTimestamp(backupInfo.getTables(), newTimestamps);<a name="line.156"></a>
+<span class="sourceLineNo">157</span>        failStageIf(Stage.stage_3);<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>        HashMap&lt;TableName, HashMap&lt;String, Long&gt;&gt; newTableSetTimestampMap =<a name="line.159"></a>
+<span class="sourceLineNo">160</span>            backupManager.readLogTimestampMap();<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>        Long newStartCode =<a name="line.162"></a>
+<span class="sourceLineNo">163</span>            BackupUtils.getMinValue(BackupUtils.getRSLogTimestampMins(newTableSetTimestampMap));<a name="line.163"></a>
+<span class="sourceLineNo">164</span>        backupManager.writeBackupStartCode(newStartCode);<a name="line.164"></a>
+<span class="sourceLineNo">165</span><a name="line.165"></a>
+<span class="sourceLineNo">166</span>        handleBulkLoad(backupInfo.getTableNames());<a name="line.166"></a>
+<span class="sourceLineNo">167</span>        failStageIf(Stage.stage_4);<a name="line.167"></a>
+<span class="sourceLineNo">168</span><a name="line.168"></a>
+<span class="sourceLineNo">169</span>        // backup complete<a name="line.169"></a>
+<span class="sourceLineNo">170</span>        completeBackup(conn, backupInfo, backupManager, BackupType.INCREMENTAL, conf);<a name="line.170"></a>
+<span class="sourceLineNo">171</span><a name="line.171"></a>
+<span class="sourceLineNo">172</span>      } catch (Exception e) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>        failBackup(conn, backupInfo, backupManager, e, "Unexpected Exception : ",<a name="line.173"></a>
+<span class="sourceLineNo">174</span>          BackupType.INCREMENTAL, conf);<a name="line.174"></a>
+<span class="sourceLineNo">175</span>        throw new IOException(e);<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>    }<a name="line.178"></a>
+<span class="sourceLineNo">179</span>  }<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span>  static class FullTableBackupClientForTest extends FullTableBackupClient<a name="line.181"></a>
+<span class="sourceLineNo">182</span>  {<a name="line.182"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
 <span class="sourceLineNo">184</span><a name="line.184"></a>
-<span class="sourceLineNo">185</span><a name="line.185"></a>
-<span class="sourceLineNo">186</span>    public FullTableBackupClientForTest() {<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    }<a name="line.187"></a>
-<span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>    public FullTableBackupClientForTest(Connection conn, String backupId, BackupRequest request)<a name="line.189"></a>
-<span class="sourceLineNo">190</span>        throws IOException {<a name="line.190"></a>
-<span class="sourceLineNo">191</span>      super(conn, backupId, request);<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    }<a name="line.192"></a>
-<span class="sourceLineNo">193</span><a name="line.193"></a>
-<span class="sourceLineNo">194</span>    @Override<a name="line.194"></a>
-<span class="sourceLineNo">195</span>    public void execute() throws IOException<a name="line.195"></a>
-<span class="sourceLineNo">196</span>    {<a name="line.196"></a>
-<span class="sourceLineNo">197</span>      // Get the stage ID to fail on<a name="line.197"></a>
-<span class="sourceLineNo">198</span>      try (Admin admin = conn.getAdmin()) {<a name="line.198"></a>
-<span class="sourceLineNo">199</span>        // Begin BACKUP<a name="line.199"></a>
-<span class="sourceLineNo">200</span>        beginBackup(backupManager, backupInfo);<a name="line.200"></a>
-<span class="sourceLineNo">201</span>        failStageIf(Stage.stage_0);<a name="line.201"></a>
-<span class="sourceLineNo">202</span>        String savedStartCode = null;<a name="line.202"></a>
-<span class="sourceLineNo">203</span>        boolean firstBackup = false;<a name="line.203"></a>
-<span class="sourceLineNo">204</span>        // do snapshot for full table backup<a name="line.204"></a>
-<span class="sourceLineNo">205</span>        savedStartCode = backupManager.readBackupStartCode();<a name="line.205"></a>
-<span class="sourceLineNo">206</span>        firstBackup = savedStartCode == null || Long.parseLong(savedStartCode) == 0L;<a name="line.206"></a>
-<span class="sourceLineNo">207</span>        if (firstBackup) {<a name="line.207"></a>
-<span class="sourceLineNo">208</span>          // This is our first backup. Let's put some marker to system table so that we can hold the logs<a name="line.208"></a>
-<span class="sourceLineNo">209</span>          // while we do the backup.<a name="line.209"></a>
-<span class="sourceLineNo">210</span>          backupManager.writeBackupStartCode(0L);<a name="line.210"></a>
-<span class="sourceLineNo">211</span>        }<a name="line.211"></a>
-<span class="sourceLineNo">212</span>        failStageIf(Stage.stage_1);<a name="line.212"></a>
-<span class="sourceLineNo">213</span>        // We roll log here before we do the snapshot. It is possible there is duplicate data<a name="line.213"></a>
-<span class="sourceLineNo">214</span>        // in the log that is already in the snapshot. But if we do it after the snapshot, we<a name="line.214"></a>
-<span class="sourceLineNo">215</span>        // could have data loss.<a name="line.215"></a>
-<span class="sourceLineNo">216</span>        // A better approach is to do the roll log on each RS in the same global procedure as<a name="line.216"></a>
-<span class="sourceLineNo">217</span>        // the snapshot.<a name="line.217"></a>
-<span class="sourceLineNo">218</span>        LOG.info("Execute roll log procedure for full backup ...");<a name="line.218"></a>
-<span class="sourceLineNo">219</span><a name="line.219"></a>
-<span class="sourceLineNo">220</span>        Map&lt;String, String&gt; props = new HashMap&lt;String, String&gt;();<a name="line.220"></a>
-<span class="sourceLineNo">221</span>        props.put("backupRoot", backupInfo.getBackupRootDir());<a name="line.221"></a>
-<span class="sourceLineNo">222</span>        admin.execProcedure(LogRollMasterProcedureManager.ROLLLOG_PROCEDURE_SIGNATURE,<a name="line.222"></a>
-<span class="sourceLineNo">223</span>          LogRollMasterProcedureManager.ROLLLOG_PROCEDURE_NAME, props);<a name="line.223"></a>
-<span class="sourceLineNo">224</span>        failStageIf(Stage.stage_2);<a name="line.224"></a>
-<span class="sourceLineNo">225</span>        newTimestamps = backupManager.readRegionServerLastLogRollResult();<a name="line.225"></a>
-<span class="sourceLineNo">226</span>        if (firstBackup) {<a name="line.226"></a>
-<span class="sourceLineNo">227</span>          // Updates registered log files<a name="line.227"></a>
-<span class="sourceLineNo">228</span>          // We record ALL old WAL files as registered, because<a name="line.228"></a>
-<span class="sourceLineNo">229</span>          // this is a first full backup in the system and these<a name="line.229"></a>
-<span class="sourceLineNo">230</span>          // files are not needed for next incremental backup<a name="line.230"></a>
-<span class="sourceLineNo">231</span>          List&lt;String&gt; logFiles = BackupUtils.getWALFilesOlderThan(conf, newTimestamps);<a name="line.231"></a>
-<span class="sourceLineNo">232</span>          backupManager.recordWALFiles(logFiles);<a name="line.232"></a>
-<span class="sourceLineNo">233</span>        }<a name="line.233"></a>
-<span class="sourceLineNo">234</span><a name="line.234"></a>
-<span class="sourceLineNo">235</span>        // SNAPSHOT_TABLES:<a name="line.235"></a>
-<span class="sourceLineNo">236</span>        backupInfo.setPhase(BackupPhase.SNAPSHOT);<a name="line.236"></a>
-<span class="sourceLineNo">237</span>        for (TableName tableName : tableList) {<a name="line.237"></a>
-<span class="sourceLineNo">238</span>          String snapshotName =<a name="line.238"></a>
-<span class="sourceLineNo">239</span>              "snapshot_" + Long.toString(EnvironmentEdgeManager.currentTime()) + "_"<a name="line.239"></a>
-<span class="sourceLineNo">240</span>                  + tableName.getNamespaceAsString() + "_" + tableName.getQualifierAsString();<a name="line.240"></a>
-<span class="sourceLineNo">241</span><a name="line.241"></a>
-<span class="sourceLineNo">242</span>          snapshotTable(admin, tableName, snapshotName);<a name="line.242"></a>
-<span class="sourceLineNo">243</span>          backupInfo.setSnapshotName(tableName, snapshotName);<a name="line.243"></a>
-<span class="sourceLineNo">244</span>        }<a name="line.244"></a>
-<span class="sourceLineNo">245</span>        failStageIf(Stage.stage_3);<a name="line.245"></a>
-<span class="sourceLineNo">246</span>        // SNAPSHOT_COPY:<a name="line.246"></a>
-<span class="sourceLineNo">247</span>        // do snapshot copy<a name="line.247"></a>
-<span class="sourceLineNo">248</span>        LOG.debug("snapshot copy for " + backupId);<a name="line.248"></a>
-<span class="sourceLineNo">249</span>        snapshotCopy(backupInfo);<a name="line.249"></a>
-<span class="sourceLineNo">250</span>        // Updates incremental backup table set<a name="line.250"></a>
-<span class="sourceLineNo">251</span>        backupManager.addIncrementalBackupTableSet(backupInfo.getTables());<a name="line.251"></a>
-<span class="sourceLineNo">252</span><a name="line.252"></a>
-<span class="sourceLineNo">253</span>        // BACKUP_COMPLETE:<a name="line.253"></a>
-<span class="sourceLineNo">254</span>        // set overall backup status: complete. Here we make sure to complete the backup.<a name="line.254"></a>
-<span class="sourceLineNo">255</span>        // After this checkpoint, even if entering cancel process, will let the backup finished<a name="line.255"></a>
-<span class="sourceLineNo">256</span>        backupInfo.setState(BackupState.COMPLETE);<a name="line.256"></a>
-<span class="sourceLineNo">257</span>        // The table list in backupInfo is good for both full backup and incremental backup.<a name="line.257"></a>
-<span class="sourceLineNo">258</span>        // For incremental backup, it contains the incremental backup table set.<a name="line.258"></a>
-<span class="sourceLineNo">259</span>        backupManager.writeRegionServerLogTimestamp(backupInfo.getTables(), newTimestamps);<a name="line.259"></a>
-<span class="sourceLineNo">260</span><a name="line.260"></a>
-<span class="sourceLineNo">261</span>        HashMap&lt;TableName, HashMap&lt;String, Long&gt;&gt; newTableSetTimestampMap =<a name="line.261"></a>
-<span class="sourceLineNo">262</span>            backupManager.readLogTimestampMap();<a name="line.262"></a>
-<span class="sourceLineNo">263</span><a name="line.263"></a>
-<span class="sourceLineNo">264</span>        Long newStartCode =<a name="line.264"></a>
-<span class="sourceLineNo">265</span>            BackupUtils.getMinValue(BackupUtils<a name="line.265"></a>
-<span class="sourceLineNo">266</span>                .getRSLogTimestampMins(newTableSetTimestampMap));<a name="line.266"></a>
-<span class="sourceLineNo">267</span>        backupManager.writeBackupStartCode(newStartCode);<a name="line.267"></a>
-<span class="sourceLineNo">268</span>        failStageIf(Stage.stage_4);<a name="line.268"></a>
-<span class="sourceLineNo">269</span>        // backup complete<a name="line.269"></a>
-<span class="sourceLineNo">270</span>        completeBackup(conn, backupInfo, backupManager, BackupType.FULL, conf);<a name="line.270"></a>
-<span class="sourceLineNo">271</span><a name="line.271"></a>
-<span class="sourceLineNo">272</span>      } catch (Exception e) {<a name="line.272"></a>
-<span class="sourceLineNo">273</span><a name="line.273"></a>
-<span class="sourceLineNo">274</span>        if(autoRestoreOnFailure) {<a name="line.274"></a>
-<span class="sourceLineNo">275</span>          failBackup(conn, backupInfo, backupManager, e, "Unexpected BackupException : ",<a name="line.275"></a>
-<span class="sourceLineNo">276</span>            BackupType.FULL, conf);<a name="line.276"></a>
-<span class="sourceLineNo">277</span>        }<a name="line.277"></a>
-<span class="sourceLineNo">278</span>        throw new IOException(e);<a name="line.278"></a>
-<span class="sourceLineNo">279</span>      }<a name="line.279"></a>
-<span class="sourceLineNo">280</span>    }<a name="line.280"></a>
-<span class="sourceLineNo">281</span><a name="line.281"></a>
-<span class="sourceLineNo">282</span>  }<a name="line.282"></a>
+<span class="sourceLineNo">185</span>    public FullTableBackupClientForTest() {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>    }<a name="line.186"></a>
+<span class="sourceLineNo">187</span><a name="line.187"></a>
+<span class="sourceLineNo">188</span>    public FullTableBackupClientForTest(Connection conn, String backupId, BackupRequest request)<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        throws IOException {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>      super(conn, backupId, request);<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    }<a name="line.191"></a>
+<span class="sourceLineNo">192</span><a name="line.192"></a>
+<span class="sourceLineNo">193</span>    @Override<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    public void execute() throws IOException<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>      // Get the stage ID to fail on<a name="line.196"></a>
+<span class="sourceLineNo">197</span>      try (Admin admin = conn.getAdmin()) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>        // Begin BACKUP<a name="line.198"></a>
+<span class="sourceLineNo">199</span>        beginBackup(backupManager, backupInfo);<a name="line.199"></a>
+<span class="sourceLineNo">200</span>        failStageIf(Stage.stage_0);<a name="line.200"></a>
+<span class="sourceLineNo">201</span>        String savedStartCode = null;<a name="line.201"></a>
+<span class="sourceLineNo">202</span>        boolean firstBackup = false;<a name="line.202"></a>
+<span class="sourceLineNo">203</span>        // do snapshot for full table backup<a name="line.203"></a>
+<span class="sourceLineNo">204</span>        savedStartCode = backupManager.readBackupStartCode();<a name="line.204"></a>
+<span class="sourceLineNo">205</span>        firstBackup = savedStartCode == null || Long.parseLong(savedStartCode) == 0L;<a name="line.205"></a>
+<span class="sourceLineNo">206</span>        if (firstBackup) {<a name="line.206"></a>
+<span class="sourceLineNo">207</span>          // This is our first backup. Let's put some marker to system table so that we can hold the logs<a name="line.207"></a>
+<span class="sourceLineNo">208</span>          // while we do the backup.<a name="line.208"></a>
+<span class="sourceLineNo">209</span>          backupManager.writeBackupStartCode(0L);<a name="line.209"></a>
+<span class="sourceLineNo">210</span>        }<a name="line.210"></a>
+<span class="sourceLineNo">211</span>        failStageIf(Stage.stage_1);<a name="line.211"></a>
+<span class="sourceLineNo">212</span>        // We roll log here before we do the snapshot. It is possible there is duplicate data<a name="line.212"></a>
+<span class="sourceLineNo">213</span>        // in the log that is already in the snapshot. But if we do it after the snapshot, we<a name="line.213"></a>
+<span class="sourceLineNo">214</span>        // could have data loss.<a name="line.214"></a>
+<span class="sourceLineNo">215</span>        // A better approach is to do the roll log on each RS in the same global procedure as<a name="line.215"></a>
+<span class="sourceLineNo">216</span>        // the snapshot.<a name="line.216"></a>
+<span class="sourceLineNo">217</span>        LOG.info("Execute roll log procedure for full backup ...");<a name="line.217"></a>
+<span class="sourceLineNo">218</span><a name="line.218"></a>
+<span class="sourceLineNo">219</span>        Map&lt;String, String&gt; props = new HashMap&lt;String, String&gt;();<a name="line.219"></a>
+<span class="sourceLineNo">220</span>        props.put("backupRoot", backupInfo.getBackupRootDir());<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        admin.execProcedure(LogRollMasterProcedureManager.ROLLLOG_PROCEDURE_SIGNATURE,<a name="line.221"></a>
+<span class="sourceLineNo">222</span>          LogRollMasterProcedureManager.ROLLLOG_PROCEDURE_NAME, props);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>        failStageIf(Stage.stage_2);<a name="line.223"></a>
+<span class="sourceLineNo">224</span>        newTimestamps = backupManager.readRegionServerLastLogRollResult();<a name="line.224"></a>
+<span class="sourceLineNo">225</span>        if (firstBackup) {<a name="line.225"></a>
+<span class="sourceLineNo">226</span>          // Updates registered log files<a name="line.226"></a>
+<span class="sourceLineNo">227</span>          // We record ALL old WAL files as registered, because<a name="line.227"></a>
+<span class="sourceLineNo">228</span>          // this is a first full backup in the system and these<a name="line.228"></a>
+<span class="sourceLineNo">229</span>          // files are not needed for next incremental backup<a name="line.229"></a>
+<span class="sourceLineNo">230</span>          List&lt;String&gt; logFiles = BackupUtils.getWALFilesOlderThan(conf, newTimestamps);<a name="line.230"></a>
+<span class="sourceLineNo">231</span>          backupManager.recordWALFiles(logFiles);<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>        // SNAPSHOT_TABLES:<a name="line.234"></a>
+<span class="sourceLineNo">235</span>        backupInfo.setPhase(BackupPhase.SNAPSHOT);<a name="line.235"></a>
+<span class="sourceLineNo">236</span>        for (TableName tableName : tableList) {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>          String snapshotName =<a name="line.237"></a>
+<span class="sourceLineNo">238</span>              "snapshot_" + Long.toString(EnvironmentEdgeManager.currentTime()) + "_"<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                  + tableName.getNamespaceAsString() + "_" + tableName.getQualifierAsString();<a name="line.239"></a>
+<span class="sourceLineNo">240</span><a name="line.240"></a>
+<span class="sourceLineNo">241</span>          snapshotTable(admin, tableName, snapshotName);<a name="line.241"></a>
+<span class="sourceLineNo">242</span>          backupInfo.setSnapshotName(tableName, snapshotName);<a name="line.242"></a>
+<span class="sourceLineNo">243</span>        }<a name="line.243"></a>
+<span class="sourceLineNo">244</span>        failStageIf(Stage.stage_3);<a name="line.244"></a>
+<span class="sourceLineNo">245</span>        // SNAPSHOT_COPY:<a name="line.245"></a>
+<span class="sourceLineNo">246</span>        // do snapshot copy<a name="line.246"></a>
+<span class="sourceLineNo">247</span>        LOG.debug("snapshot copy for " + backupId);<a name="line.247"></a>
+<span class="sourceLineNo">248</span>        snapshotCopy(backupInfo);<a name="line.248"></a>
+<span class="sourceLineNo">249</span>        // Updates incremental backup table set<a name="line.249"></a>
+<span class="sourceLineNo">250</span>        backupManager.addIncrementalBackupTableSet(backupInfo.getTables());<a name="line.250"></a>
+<span class="sourceLineNo">251</span><a name="line.251"></a>
+<span class="sourceLineNo">252</span>        // BACKUP_COMPLETE:<a name="line.252"></a>
+<span class="sourceLineNo">253</span>        // set overall backup status: complete. Here we make sure to complete the backup.<a name="line.253"></a>
+<span class="sourceLineNo">254</span>        // After this checkpoint, even if entering cancel process, will let the backup finished<a name="line.254"></a>
+<span class="sourceLineNo">255</span>        backupInfo.setState(BackupState.COMPLETE);<a name="line.255"></a>
+<span class="sourceLineNo">256</span>        // The table list in backupInfo is good for both full backup and incremental backup.<a name="line.256"></a>
+<span class="sourceLineNo">257</span>        // For incremental backup, it contains the incremental backup table set.<a name="line.257"></a>
+<span class="sourceLineNo">258</span>        backupManager.writeRegionServerLogTimestamp(backupInfo.getTables(), newTimestamps);<a name="line.258"></a>
+<span class="sourceLineNo">259</span><a name="line.259"></a>
+<span class="sourceLineNo">260</span>        HashMap&lt;TableName, HashMap&lt;String, Long&gt;&gt; newTableSetTimestampMap =<a name="line.260"></a>
+<span class="sourceLineNo">261</span>            backupManager.readLogTimestampMap();<a name="line.261"></a>
+<span class="sourceLineNo">262</span><a name="line.262"></a>
+<span class="sourceLineNo">263</span>        Long newStartCode =<a name="line.263"></a>
+<span class="sourceLineNo">264</span>            BackupUtils.getMinValue(BackupUtils<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                .getRSLogTimestampMins(newTableSetTimestampMap));<a name="line.265"></a>
+<span class="sourceLineNo">266</span>        backupManager.writeBackupStartCode(newStartCode);<a name="line.266"></a>
+<span class="sourceLineNo">267</span>        failStageIf(Stage.stage_4);<a name="line.267"></a>
+<span class="sourceLineNo">268</span>        // backup complete<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        completeBackup(conn, backupInfo, backupManager, BackupType.FULL, conf);<a name="line.269"></a>
+<span class="sourceLineNo">270</span><a name="line.270"></a>
+<span class="sourceLineNo">271</span>      } catch (Exception e) {<a name="line.271"></a>
+<span class="sourceLineNo">272</span><a name="line.272"></a>
+<span class="sourceLineNo">273</span>        if(autoRestoreOnFailure) {<a name="line.273"></a>
+<span class="sourceLineNo">274</span>          failBackup(conn, backupInfo, backupManager, e, "Unexpected BackupException : ",<a name="line.274"></a>
+<span class="sourceLineNo">275</span>            BackupType.FULL, conf);<a name="line.275"></a>
+<span class="sourceLineNo">276</span>        }<a name="line.276"></a>
+<span class="sourceLineNo">277</span>        throw new IOException(e);<a name="line.277"></a>
+<span class="sourceLineNo">278</span>      }<a name="line.278"></a>
+<span class="sourceLineNo">279</span>    }<a name="line.279"></a>
+<span class="sourceLineNo">280</span><a name="line.280"></a>
+<span class="sourceLineNo">281</span>  }<a name="line.281"></a>
+<span class="sourceLineNo">282</span><a name="line.282"></a>
 <span class="sourceLineNo">283</span><a name="line.283"></a>
-<span class="sourceLineNo">284</span><a name="line.284"></a>
-<span class="sourceLineNo">285</span>  /**<a name="line.285"></a>
-<span class="sourceLineNo">286</span>   * @throws java.lang.Exception<a name="line.286"></a>
-<span class="sourceLineNo">287</span>   */<a name="line.287"></a>
-<span class="sourceLineNo">288</span>  @Before<a name="line.288"></a>
-<span class="sourceLineNo">289</span>  public void setUp() throws Exception {<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    if (setupIsDone) {<a name="line.290"></a>
-<span class="sourceLineNo">291</span>      return;<a name="line.291"></a>
-<span class="sourceLineNo">292</span>    }<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    if (secure) {<a name="line.293"></a>
-<span class="sourceLineNo">294</span>      // set the always on security provider<a name="line.294"></a>
-<span class="sourceLineNo">295</span>      UserProvider.setUserProviderForTesting(TEST_UTIL.getConfiguration(),<a name="line.295"></a>
-<span class="sourceLineNo">296</span>          HadoopSecurityEnabledUserProviderForTesting.class);<a name="line.296"></a>
-<span class="sourceLineNo">297</span>      // setup configuration<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      SecureTestUtil.enableSecurity(TEST_UTIL.getConfiguration());<a name="line.298"></a>
-<span class="sourceLineNo">299</span>    }<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    String coproc = conf1.get(CoprocessorHost.REGION_COPROCESSOR_CONF_KEY);<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    conf1.set(CoprocessorHost.REGION_COPROCESSOR_CONF_KEY, (coproc == null ? "" : coproc + ",") +<a name="line.301"></a>
-<span class="sourceLineNo">302</span>        BackupObserver.class.getName());<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    conf1.setBoolean(BackupRestoreConstants.BACKUP_ENABLE_KEY, true);<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    BackupManager.decorateMasterConfiguration(conf1);<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    BackupManager.decorateRegionServerConfiguration(conf1);<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    conf1.set(HConstants.ZOOKEEPER_ZNODE_PARENT, "/1");<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    // Set MultiWAL (with 2 default WAL files per RS)<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    conf1.set(WALFactory.WAL_PROVIDER, provider);<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    TEST_UTIL.startMiniCluster();<a name="line.309"></a>
-<span class="sourceLineNo">310</span><a name="line.310"></a>
-<span class="sourceLineNo">311</span>    if (useSecondCluster) {<a name="line.311"></a>
-<span class="sourceLineNo">312</span>      conf2 = HBaseConfiguration.create(conf1);<a name="line.312"></a>
-<span class="sourceLineNo">313</span>      conf2.set(HConstants.ZOOKEEPER_ZNODE_PARENT, "/2");<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      TEST_UTIL2 = new HBaseTestingUtility(conf2);<a name="line.314"></a>
-<span class="sourceLineNo">315</span>      TEST_UTIL2.setZkCluster(TEST_UTIL.getZkCluster());<a name="line.315"></a>
-<span class="sourceLineNo">316</span>      TEST_UTIL2.startMiniCluster();<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    }<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    conf1 = TEST_UTIL.getConfiguration();<a name="line.318"></a>
-<span class="sourceLineNo">319</span><a name="line.319"></a>
-<span class="sourceLineNo">320</span>    TEST_UTIL.startMiniMapReduceCluster();<a name="line.320"></a>
-<span class="sourceLineNo">321</span>    BACKUP_ROOT_DIR =<a name="line.321"></a>
-<span class="sourceLineNo">322</span>        new Path ( new Path(TEST_UTIL.getConfiguration().get("fs.defaultFS")),<a name="line.322"></a>
-<span class="sourceLineNo">323</span>          BACKUP_ROOT_DIR).toString();<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    LOG.info("ROOTDIR " + BACKUP_ROOT_DIR);<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    if (useSecondCluster) {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>      BACKUP_REMOTE_ROOT_DIR =<a name="line.326"></a>
-<span class="sourceLineNo">327</span>          new Path ( new Path(TEST_UTIL2.getConfiguration().get("fs.defaultFS"))<a name="line.327"></a>
-<span class="sourceLineNo">328</span>          + BACKUP_REMOTE_ROOT_DIR).toString();<a name="line.328"></a>
-<span class="sourceLineNo">329</span>      LOG.info("REMOTE ROOTDIR " + BACKUP_REMOTE_ROOT_DIR);<a name="line.329"></a>
-<span class="sourceLineNo">330</span>    }<a name="line.330"></a>
-<span class="sourceLineNo">331</span>    createTables();<a name="line.331"></a>
-<span class="sourceLineNo">332</span>    populateFromMasterConfig(TEST_UTIL.getHBaseCluster().getMaster().getConfiguration(), conf1);<a name="line.332"></a>
-<span class="sourceLineNo">333</span>    setupIsDone = true;<a name="line.333"></a>
-<span class="sourceLineNo">334</span>  }<a name="line.334"></a>
-<span class="sourceLineNo">335</span><a name="line.335"></a>
-<span class="sourceLineNo">336</span>  private static void populateFromMasterConfig(Configuration masterConf, Configuration conf) {<a name="line.336"></a>
-<span class="sourceLineNo">337</span>    Iterator&lt;Entry&lt;String, String&gt;&gt; it = masterConf.iterator();<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    while (it.hasNext()) {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>      Entry&lt;String, String&gt; e = it.next();<a name="line.339"></a>
-<span class="sourceLineNo">340</span>      conf.set(e.getKey(), e.getValue());<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    }<a name="line.341"></a>
-<span class="sourceLineNo">342</span>  }<a name="line.342"></a>
-<span class="sourceLineNo">343</span><a name="line.343"></a>
-<span class="sourceLineNo">344</span>  /**<a name="line.344"></a>
-<span class="sourceLineNo">345</span>   * @throws java.lang.Exception<a name="line.345"></a>
-<span class="sourceLineNo">346</span>   */<a name="line.346"></a>
-<span class="sourceLineNo">347</span>  @AfterClass<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  public static void tearDown() throws Exception {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    try{<a name="line.349"></a>
-<span class="sourceLineNo">350</span>      SnapshotTestingUtils.deleteAllSnapshots(TEST_UTIL.getHBaseAdmin());<a name="line.350"></a>
-<span class="sourceLineNo">351</span>    } catch (Exception e) {<a name="line.351"></a>
+<span class="sourceLineNo">284</span>  /**<a name="line.284"></a>
+<span class="sourceLineNo">285</span>   * @throws java.lang.Exception<a name="line.285"></a>
+<span class="sourceLineNo">286</span>   */<a name="line.286"></a>
+<span class="sourceLineNo">287</span>  @Before<a name="line.287"></a>
+<span class="sourceLineNo">288</span>  public void setUp() throws Exception {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>    if (setupIsDone) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      return;<a name="line.290"></a>
+<span class="sourceLineNo">291</span>    }<a name="line.291"></a>
+<span class="sourceLineNo">292</span>    if (secure) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>      // set the always on security provider<a name="line.293"></a>
+<span class="sourceLineNo">294</span>      UserProvider.setUserProviderForTesting(TEST_UTIL.getConfiguration(),<a name="line.294"></a>
+<span class="sourceLineNo">295</span>          HadoopSecurityEnabledUserProviderForTesting.class);<a name="line.295"></a>
+<span class="sourceLineNo">296</span>      // setup configuration<a name="line.296"></a>
+<span class="sourceLineNo">297</span>      SecureTestUtil.enableSecurity(TEST_UTIL.getConfiguration());<a name="line.297"></a>
+<span class="sourceLineNo">298</span>    }<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    conf1.setBoolean(BackupRestoreConstants.BACKUP_ENABLE_KEY, true);<a name="line.299"></a>
+<span class="sourceLineNo">300</span>    BackupManager.decorateMasterConfiguration(conf1);<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    BackupManager.decorateRegionServerConfiguration(conf1);<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    conf1.set(HConstants.ZOOKEEPER_ZNODE_PARENT, "/1");<a name="line.302"></a>
+<span class="sourceLineNo">303</span>    // Set MultiWAL (with 2 default WAL files per RS)<a name="line.303"></a>
+<span class="sourceLineNo">304</span>    conf1.set(WALFactory.WAL_PROVIDER, provider);<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    TEST_UTIL.startMiniCluster();<a name="line.305"></a>
+<span class="sourceLineNo">306</span><a name="line.306"></a>
+<span class="sourceLineNo">307</span>    if (useSecondCluster) {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>      conf2 = HBaseConfiguration.create(conf1);<a name="line.308"></a>
+<span class="sourceLineNo">309</span>      conf2.set(HConstants.ZOOKEEPER_ZNODE_PARENT, "/2");<a name="line.309"></a>
+<span class="sourceLineNo">310</span>      TEST_UTIL2 = new HBaseTestingUtility(conf2);<a name="line.310"></a>
+<span class="sourceLineNo">311</span>      TEST_UTIL2.setZkCluster(TEST_UTIL.getZkCluster());<a name="line.311"></a>
+<span class="sourceLineNo">312</span>      TEST_UTIL2.startMiniCluster();<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    }<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    conf1 = TEST_UTIL.getConfiguration();<a name="line.314"></a>
+<span class="sourceLineNo">315</span><a name="line.315"></a>
+<span class="sourceLineNo">316</span>    TEST_UTIL.startMiniMapReduceCluster();<a name="line.316"></a>
+<span class="sourceLineNo">317</span>    BACKUP_ROOT_DIR =<a name="line.317"></a>
+<span class="sourceLineNo">318</span>        new Path ( new Path(TEST_UTIL.getConfiguration().get("fs.defaultFS")),<a name="line.318"></a>
+<span class="sourceLineNo">319</span>          BACKUP_ROOT_DIR).toString();<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    LOG.info("ROOTDIR " + BACKUP_ROOT_DIR);<a name="line.320"></a>
+<span class="sourceLineNo">321</span>    if (useSecondCluster) {<a name="line.321"></a>
+<span class="sourceLineNo">322</span>      BACKUP_REMOTE_ROOT_DIR =<a name="line.322"></a>
+<span class="sourceLineNo">323</span>          new Path ( new Path(TEST_UTIL2.getConfiguration().get("fs.defaultFS"))<a name="line.323"></a>
+<span class="sourceLineNo">324</span>          + BACKUP_REMOTE_ROOT_DIR).toString();<a name="line.324"></a>
+<span class="sourceLineNo">325</span>      LOG.info("REMOTE ROOTDIR " + BACKUP_REMOTE_ROOT_DIR);<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    }<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    createTables();<a name="line.327"></a>
+<span class="sourceLineNo">328</span>    populateFromMasterConfig(TEST_UTIL.getHBaseCluster().getMaster().getConfiguration(), conf1);<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    setupIsDone = true;<a name="line.329"></a>
+<span class="sourceLineNo">330</span>  }<a name="line.330"></a>
+<span class="sourceLineNo">331</span><a name="line.331"></a>
+<span class="sourceLineNo">332</span>  private static void populateFromMasterConfig(Configuration masterConf, Configuration conf) {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>    Iterator&lt;Entry&lt;String, String&gt;&gt; it = masterConf.iterator();<a name="line.333"></a>
+<span class="sourceLineNo">334</span>    while (it.hasNext()) {<a name="line.334"></a>
+<span class="sourceLineNo">335</span>      Entry&lt;String, String&gt; e = it.next();<a name="line.335"></a>
+<span class="sourceLineNo">336</span>      conf.set(e.getKey(), e.getValue());<a name="line.336"></a>
+<span class="sourceLineNo">337</span>    }<a name="line.337"></a>
+<span class="sourceLineNo">338</span>  }<a name="line.338"></a>
+<span class="sourceLineNo">339</span><a name="line.339"></a>
+<span class="sourceLineNo">340</span>  /**<a name="line.340"></a>
+<span class="sourceLineNo">341</span>   * @throws java.lang.Exception<a name="line.341"></a>
+<span class="sourceLineNo">342</span>   */<a name="line.342"></a>
+<span class="sourceLineNo">343</span>  @AfterClass<a name="line.343"></a>
+<span class="sourceLineNo">344</span>  public static void tearDown() throws Exception {<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    try{<a name="line.345"></a>
+<span class="sourceLineNo">346</span>      SnapshotTestingUtils.deleteAllSnapshots(TEST_UTIL.getHBaseAdmin());<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    } catch (Exception e) {<a name="line.347"></a>
+<span class="sourceLineNo">348</span>    }<a name="line.348"></a>
+<span class="sourceLineNo">349</span>    SnapshotTestingUtils.deleteArchiveDirectory(TEST_UTIL);<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    if (useSecondCluster) {<a name="line.350"></a>
+<span class="sourceLineNo">351</span>      TEST_UTIL2.shutdownMiniCluster();<a name="line.351"></a>
 <span class="sourceLineNo">352</span>    }<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    SnapshotTestingUtils.deleteArchiveDirectory(TEST_UTIL);<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    if (useSecondCluster) {<a name="line.354"></a>
-<span class="sourceLineNo">355</span>      TEST_UTIL2.shutdownMiniCluster();<a name="line.355"></a>
-<span class="sourceLineNo">356</span>    }<a name="line.356"></a>
-<span class="sourceLineNo">357</span>    TEST_UTIL.shutdownMiniCluster();<a name="line.357"></a>
-<span class="sourceLineNo">358</span>    TEST_UTIL.shutdownMiniMapReduceCluster();<a name="line.358"></a>
-<span class="sourceLineNo">359</span>  }<a name="line.359"></a>
-<span class="sourceLineNo">360</span><a name="line.360"></a>
-<span class="sourceLineNo">361</span>  HTable insertIntoTable(Connection conn, TableName table, byte[] family, int id, int numRows)<a name="line.361"></a>
-<span class="sourceLineNo">362</span>      throws IOException {<a name="line.362"></a>
-<span class="sourceLineNo">363</span>    HTable t = (HTable) conn.getTable(table);<a name="line.363"></a>
-<span class="sourceLineNo">364</span>    Put p1;<a name="line.364"></a>
-<span class="sourceLineNo">365</span>    for (int i = 0; i &lt; numRows; i++) {<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      p1 = new Put(Bytes.toBytes("row-" + table + "-" + id + "-" + i));<a name="line.366"></a>
-<span class="sourceLineNo">367</span>      p1.addColumn(family, qualName, Bytes.toBytes("val" + i));<a name="line.367"></a>
-<span class="sourceLineNo">368</span>      t.put(p1);<a name="line.368"></a>
-<span class="sourceLineNo">369</span>    }<a name="line.369"></a>
-<span class="sourceLineNo">370</span>    return t;<a name="line.370"></a>
-<span class="sourceLineNo">371</span>  }<a name="line.371"></a>
-<span class="sourceLineNo">372</span><a name="line.372"></a>
-<span class="sourceLineNo">373</span><a name="line.373"></a>
-<span class="sourceLineNo">374</span>  protected BackupRequest createBackupRequest(BackupType type,<a name="line.374"></a>
-<span class="sourceLineNo">375</span>      List&lt;TableName&gt; tables, String path) {<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    BackupRequest.Builder builder = new BackupRequest.Builder();<a name="line.376"></a>
-<span class="sourceLineNo">377</span>    BackupRequest request = builder.withBackupType(type)<a name="line.377"></a>
-<span class="sourceLineNo">378</span>                                    .withTableList(tables)<a name="line.378"></a>
-<span class="sourceLineNo">379</span>                                    .withTargetRootDir(path).build();<a name="line.379"></a>
-<span class="sourceLineNo">380</span>    return request;<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>  protected String backupTables(BackupType type, List&lt;TableName&gt; tables, String path)<a name="line.383"></a>
-<span class="sourceLineNo">384</span>      throws IOException {<a name="line.384"></a>
-<span class="sourceLineNo">385</span>    Connection conn = null;<a name="line.385"></a>
-<span class="sourceLineNo">386</span>    BackupAdmin badmin = null;<a name="line.386"></a>
-<span class="sourceLineNo">387</span>    String backupId;<a name="line.387"></a>
-<span class="sourceLineNo">388</span>    try {<a name="line.388"></a>
-<span class="sourceLineNo">389</span>      conn = ConnectionFactory.createConnection(conf1);<a name="line.389"></a>
-<span class="sourceLineNo">390</span>      badmin = new BackupAdminImpl(conn);<a name="line.390"></a>
-<span class="sourceLineNo">391</span>      BackupRequest request = createBackupRequest(type, tables, path);<a name="line.391"></a>
-<span class="sourceLineNo">392</span>      backupId = badmin.backupTables(request);<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    } finally {<a name="line.393"></a>
-<span class="sourceLineNo">394</span>      if (badmin != null) {<a name="line.394"></a>
-<span class="sourceLineNo">395</span>        badmin.close();<a name="line.395"></a>
-<span class="sourceLineNo">396</span>      }<a name="line.396"></a>
-<span class="sourceLineNo">397</span>      if (conn != null) {<a name="line.397"></a>
-<span class="sourceLineNo">398</span>        conn.close();<a name="line.398"></a>
-<span class="sourceLineNo">399</span>      }<a name="line.399"></a>
-<span class="sourceLineNo">400</span>    }<a name="line.400"></a>
-<span class="sourceLineNo">401</span>    return backupId;<a name="line.401"></a>
+<span class="sourceLineNo">353</span>    TEST_UTIL.shutdownMiniCluster();<a name="line.353"></a>
+<span class="sourceLineNo">354</span>    TEST_UTIL.shutdownMiniMapReduceCluster();<a name="line.354"></a>
+<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>  HTable insertIntoTable(Connection conn, TableName table, byte[] family, int id, int numRows)<a name="line.357"></a>
+<span class="sourceLineNo">358</span>      throws IOException {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>    HTable t = (HTable) conn.getTable(table);<a name="line.359"></a>
+<span class="sourceLineNo">360</span>    Put p1;<a name="line.360"></a>
+<span class="sourceLineNo">361</span>    for (int i = 0; i &lt; numRows; i++) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>      p1 = new Put(Bytes.toBytes("row-" + table + "-" + id + "-" + i));<a name="line.362"></a>
+<span class="sourceLineNo">363</span>      p1.addColumn(family, qualName, Bytes.toBytes("val" + i));<a name="line.363"></a>
+<span class="sourceLineNo">364</span>      t.put(p1);<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    }<a name="line.365"></a>
+<span class="sourceLineNo">366</span>    return t;<a name="line.366"></a>
+<span class="sourceLineNo">367</span>  }<a name="line.367"></a>
+<span class="sourceLineNo">368</span><a name="line.368"></a>
+<span class="sourceLineNo">369</span><a name="line.369"></a>
+<span class="sourceLineNo">370</span>  protected BackupRequest createBackupRequest(BackupType type,<a name="line.370"></a>
+<span class="sourceLineNo">371</span>      List&lt;TableName&gt; tables, String path) {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>    BackupRequest.Builder builder = new BackupRequest.Builder();<a name="line.372"></a>
+<span class="sourceLineNo">373</span>    BackupRequest request = builder.withBackupType(type)<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                                    .withTableList(tables)<a name="line.374"></a>
+<span class="sourceLineNo">375</span>                                    .withTargetRootDir(path).build();<a name="line.375"></a>
+<span class="sourceLineNo">376</span>    return request;<a name="line.376"></a>
+<span class="sourceLineNo">377</span>  }<a name="line.377"></a>
+<span class="sourceLineNo">378</span><a name="line.378"></a>
+<span class="sourceLineNo">379</span>  protected String backupTables(BackupType type, List&lt;TableName&gt; tables, String path)<a name="line.379"></a>
+<span class="sourceLineNo">380</span>      throws IOException {<a name="line.380"></a>
+<span class="sourceLineNo">381</span>    Connection conn = null;<a name="line.381"></a>
+<span class="sourceLineNo">382</span>    BackupAdmin badmin = null;<a name="line.382"></a>
+<span class="sourceLineNo">383</span>    String backupId;<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    try {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>      conn = ConnectionFactory.createConnection(conf1);<a name="line.385"></a>
+<span class="sourceLineNo">386</span>      badmin = new BackupAdminImpl(conn);<a name="line.386"></a>
+<span class="sourceLineNo">387</span>      BackupRequest request = createBackupRequest(type, tables, path);<a name="line.387"></a>
+<span class="sourceLineNo">388</span>      backupId = badmin.backupTables(request);<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    } finally {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>      if (badmin != null) {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        badmin.close();<a name="line.391"></a>
+<span class="sourceLineNo">392</span>      }<a name="line.392"></a>
+<span class="sourceLineNo">393</span>      if (conn != null) {<a name="line.393"></a>
+<span class="sourceLineNo">394</span>        conn.close();<a name="line.394"></a>
+<span class="sourceLineNo">395</span>      }<a name="line.395"></a>
+<span class="sourceLineNo">396</span>    }<a name="line.396"></a>
+<span class="sourceLineNo">397</span>    return backupId;<a name="line.397"></a>
+<span class="sourceLineNo">398</span>  }<a name="line.398"></a>
+<span class="sourceLineNo">399</span><a name="line.399"></a>
+<span class="sourceLineNo">400</span>  protected String fullTableBackup(List&lt;TableName&gt; tables) throws IOException {<a name="line.400"></a>
+<span class="sourceLineNo">401</span>    return backupTables(BackupType.FULL, tables, BACKUP_ROOT_DIR);<a name="line.401"></a>
 <span class="sourceLineNo">402</span>  }<a name="line.402"></a>
 <span class="sourceLineNo">403</span><a name="line.403"></a>
-<span class="sourceLineNo">404</span>  protected String fullTableBackup(List&lt;TableName&gt; tables) throws IOException {<a name="line.404"></a>
-<span class="sourceLineNo">405</span>    return backupTables(BackupType.FULL, tables, BACKUP_ROOT_DIR);<a name="line.405"></a>
+<span class="sourceLineNo">404</span>  protected String incrementalTableBackup(List&lt;TableName&gt; tables) throws IOException {<a name="line.404"></a>
+<span class="sourceLineNo">405</span>    return backupTables(BackupType.INCREMENTAL, tables, BACKUP_ROOT_DIR);<a name="line.405"></a>
 <span class="sourceLineNo">406</span>  }<a name="line.406"></a>
 <span class="sourceLineNo">407</span><a name="line.407"></a>
-<span class="sourceLineNo">408</span>  protected String incrementalTableBackup(List&lt;TableName&gt; tables) throws IOException {<a name="line.408"></a>
-<span class="sourceLineNo">409</span>    return backupTables(BackupType.INCREMENTAL, tables, BACKUP_ROOT_DIR);<a name="line.409"></a>
-<span class="sourceLineNo">410</span>  }<a name="line.410"></a>
-<span class="sourceLineNo">411</span><a name="line.411"></a>
-<span class="sourceLineNo">412</span>  protected static void loadTable(Table table) throws Exception {<a name="line.412"></a>
-<span class="sourceLineNo">413</span><a name="line.413"></a>
-<span class="sourceLineNo">414</span>    Put p; // 100 + 1 row to t1_syncup<a name="line.414"></a>
-<span class="sourceLineNo">415</span>    for (int i = 0; i &lt; NB_ROWS_IN_BATCH; i++) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>      p = new Put(Bytes.toBytes("row" + i));<a name="line.416"></a>
-<span class="sourceLineNo">417</span>      p.setDurability(Durability.SKIP_WAL);<a name="line.417"></a>
-<span class="sourceLineNo">418</span>      p.addColumn(famName, qualName, Bytes.toBytes("val" + i));<a name="line.418"></a>
-<span class="sourceLineNo">419</span>      table.put(p);<a name="line.419"></a>
-<span class="sourceLineNo">420</span>    }<a name="line.420"></a>
-<span class="sourceLineNo">421</span>  }<a name="line.421"></a>
-<span class="sourceLineNo">422</span><a name="line.422"></a>
-<span class="sourceLineNo">423</span>  protected static void createTables() throws Exception {<a name="line.423"></a>
+<span class="sourceLineNo">408</span>  protected static void loadTable(Table table) throws Exception {<a name="line.408"></a>
+<span class="sourceLineNo">409</span><a name="line.409"></a>
+<span class="sourceLineNo">410</span>    Put p; // 100 + 1 row to t1_syncup<a name="line.410"></a>
+<span class="sourceLineNo">411</span>    for (int i = 0; i &lt; NB_ROWS_IN_BATCH; i++) {<a name="line.411"></a>
+<span class="sourceLineNo">412</span>      p = new Put(Bytes.toBytes("row" + i));<a name="line.412"></a>
+<span class="sourceLineNo">413</span>      p.setDurability(Durability.SKIP_WAL);<a name="line.413"></a>
+<span class="sourceLineNo">414</span>      p.addColumn(famName, qualName, Bytes.toBytes("val" + i));<a name="line.414"></a>
+<span class="sourceLineNo">415</span>      table.put(p);<a name="line.415"></a>
+<span class="sourceLineNo">416</span>    }<a name="line.416"></a>
+<span class="sourceLineNo">417</span>  }<a name="line.417"></a>
+<span class="sourceLineNo">418</span><a name="line.418"></a>
+<span class="sourceLineNo">419</span>  protected static void createTables() throws Exception {<a name="line.419"></a>
+<span class="sourceLineNo">420</span><a name="line.420"></a>
+<span class="sourceLineNo">421</span>    long tid = System.currentTimeMillis();<a name="line.421"></a>
+<span class="sourceLineNo">422</span>    table1 = TableName.valueOf("ns1:test-" + tid);<a name="line.422"></a>
+<span class="sourceLineNo">423</span>    HBaseAdmin ha = TEST_UTIL.getHBaseAdmin();<a name="line.423"></a>
 <span class="sourceLineNo">424</span><a name="line.424"></a>
-<span class="sourceLineNo">425</span>    long tid = System.currentTimeMillis();<a name="line.425"></a>
-<span class="sourceLineNo">426</span>    table1 = TableName.valueOf("ns1:test-" + tid);<a name="line.426"></a>
-<span class="sourceLineNo">427</span>    HBaseAdmin ha = TEST_UTIL.getHBaseAdmin();<a name="line.427"></a>
-<span class="sourceLineNo">428</span><a name="line.428"></a>
-<span class="sourceLineNo">429</span>    // Create namespaces<a name="line.429"></a>
-<span class="sourceLineNo">430</span>    NamespaceDescriptor desc1 = NamespaceDescriptor.create("ns1").build();<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    NamespaceDescriptor desc2 = NamespaceDescriptor.create("ns2").build();<a name="line.431"></a>
-<span class="sourceLineNo">432</span>    NamespaceDescriptor desc3 = NamespaceDescriptor.create("ns3").build();<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    NamespaceDescriptor desc4 = NamespaceDescriptor.create("ns4").build();<a name="line.433"></a>
-<span class="sourceLineNo">434</span><a name="line.434"></a>
-<span class="sourceLineNo">435</span>    ha.createNamespace(desc1);<a name="line.435"></a>
-<span class="sourceLineNo">436</span>    ha.createNamespace(desc2);<a name="line.436"></a>
-<span class="sourceLineNo">437</span>    ha.createNamespace(desc3);<a name="line.437"></a>
-<span class="sourceLineNo">438</span>    ha.createNamespace(desc4);<a name="line.438"></a>
-<span class="sourceLineNo">439</span><a name="line.439"></a>
-<span class="sourceLineNo">440</span>    HTableDescriptor desc = new HTableDescriptor(table1);<a name="line.440"></a>
-<span class="sourceLineNo">441</span>    HColumnDescriptor fam = new HColumnDescriptor(famName);<a name="line.441"></a>
-<span class="sourceLineNo">442</span>    desc.addFamily(fam);<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    ha.createTable(desc);<a name="line.443"></a>
-<span class="sourceLineNo">444</span>    table1Desc = desc;<a name="line.444"></a>
-<span class="sourceLineNo">445</span>    Connection conn = ConnectionFactory.createConnection(conf1);<a name="line.445"></a>
-<span class="sourceLineNo">446</span>    Table table = conn.getTable(table1);<a name="line.446"></a>
-<span class="sourceLineNo">447</span>    loadTable(table);<a name="line.447"></a>
-<span class="sourceLineNo">448</span>    table.close();<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    table2 = TableName.valueOf("ns2:test-" + tid + 1);<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    desc = new HTableDescriptor(table2);<a name="line.450"></a>
-<span class="sourceLineNo">451</span>    desc.addFamily(fam);<a name="line.451"></a>
-<span class="sourceLineNo">452</span>    ha.createTable(desc);<a name="line.452"></a>
-<span class="sourceLineNo">453</span>    table = conn.getTable(table2);<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    loadTable(table);<a name="line.454"></a>
-<span class="sourceLineNo">455</span>    table.close();<a name="line.455"></a>
-<span class="sourceLineNo">456</span>    table3 = TableName.valueOf("ns3:test-" + tid + 2);<a name="line.456"></a>
-<span class="sourceLineNo">457</span>    table = TEST_UTIL.createTable(table3, famName);<a name="line.457"></a>
-<span class="sourceLineNo">458</span>    table.close();<a name="line.458"></a>
-<span class="sourceLineNo">459</span>    table4 = TableName.valueOf("ns4:test-" + tid + 3);<a name="line.459"></a>
-<span class="sourceLineNo">460</span>    table = TEST_UTIL.createTable(table4, famName);<a name="line.460"></a>
-<span class="sourceLineNo">461</span>    table.close();<a name="line.461"></a>
-<span class="sourceLineNo">462</span>    ha.close();<a name="line.462"></a>
-<span class="sourceLineNo">463</span>    conn.close();<a name="line.463"></a>
-<span class="sourceLineNo">464</span>  }<a name="line.464"></a>
-<span class="sourceLineNo">465</span><a name="line.465"></a>
-<span class="sourceLineNo">466</span>  protected boolean checkSucceeded(String backupId) throws IOException {<a name="line.466"></a>
-<span class="sourceLineNo">467</span>    BackupInfo status = getBackupInfo(backupId);<a name="line.467"></a>
-<span class="sourceLineNo">468</span>    if (status == null) return false;<a name="line.468"></a>
-<span class="sourceLineNo">469</span>    return status.getState() == BackupState.COMPLETE;<a name="line.469"></a>
-<span class="sourceLineNo">470</span>  }<a name="line.470"></a>
-<span class="sourceLineNo">471</span><a name="line.471"></a>
-<span class="sourceLineNo">472</span>  protected boolean checkFailed(String backupId) throws IOException {<a name="line.472"></a>
-<span class="sourceLineNo">473</span>    BackupInfo status = getBackupInfo(backupId);<a name="line.473"></a>
-<span class="sourceLineNo">474</span>    if (status == null) return false;<a name="line.474"></a>
-<span class="sourceLineNo">475</span>    return status.getState() == BackupState.FAILED;<a name="line.475"></a>
-<span class="sourceLineNo">476</span>  }<a name="line.476"></a>
-<span class="sourceLineNo">477</span><a name="line.477"></a>
-<span class="sourceLineNo">478</span>  private BackupInfo getBackupInfo(String backupId) throws IOException {<a name="line.478"></a>
-<span class="sourceLineNo">479</span>    try (BackupSystemTable table = new BackupSystemTable(TEST_UTIL.getConnection())) {<a name="line.479"></a>
-<span class="sourceLineNo">480</span>      BackupInfo status = table.readBackupInfo(backupId);<a name="line.480"></a>
-<span class="sourceLineNo">481</span>      return status;<a name="line.481"></a>
-<span class="sourceLineNo">482</span>    }<a name="line.482"></a>
+<span class="sourceLineNo">425</span>    // Create namespaces<a name="line.425"></a>
+<span class="sourceLineNo">426</span>    NamespaceDescriptor desc1 = NamespaceDescriptor.create("ns1").build();<a name="line.426"></a>
+<span class="sourceLineNo">427</span>    NamespaceDescriptor desc2 = NamespaceDescriptor.create("ns2").build();<a name="line.427"></a>
+<span class="sourceLineNo">428</span>    NamespaceDescriptor desc3 = NamespaceDescriptor.create("ns3").build();<a name="line.428"></a>
+<span class="sourceLineNo">429</span>    NamespaceDescriptor desc4 = NamespaceDescriptor.create("ns4").build();<a name="line.429"></a>
+<span class="sourceLineNo">430</span><a name="line.430"></a>
+<span class="sourceLineNo">431</span>    ha.createNamespace(desc1);<a name="line.431"></a>
+<span class="sourceLineNo">432</span>    ha.createNamespace(desc2);<a name="line.432"></a>
+<span class="sourceLineNo">433</span>    ha.createNamespace(desc3);<a name="line.433"></a>
+<span class="sourceLineNo">434</span>    ha.createNamespace(desc4);<a name="line.434"></a>
+<span class="sourceLineNo">435</span><a name="line.435"></a>
+<span class="sourceLineNo">436</span>    HTableDescriptor desc = new HTableDescriptor(table1);<a name="line.436"></a>
+<span class="sourceLineNo">437</span>    HColumnDescriptor fam = new HColumnDescriptor(famName);<a name="line.437"></a>
+<span class="sourceLineNo">438</span>    desc.addFamily(fam);<a name="line.438"></a>
+<span class="sourceLineNo">439</span>    ha.createTable(desc);<a name="line.439"></a>
+<span class="sourceLineNo">440</span>    table1Desc = desc;<a name="line.440"></a>
+<span class="sourceLineNo">441</span>    Connection conn = ConnectionFactory.createConnection(conf1);<a name="line.441"></a>
+<span class="sourceLineNo">442</span>    Table table = conn.getTable(table1);<a name="line.442"></a>
+<span class="sourceLineNo">443</span>    loadTable(table);<a name="line.443"></a>
+<span class="sourceLineNo">444</span>    table.close();<a name="line.444"></a>
+<span class="sourceLineNo">445</span>    table2 = TableName.valueOf("ns2:test-" + tid + 1);<a name="line.445"></a>
+<span class="sourceLineNo">446</span>    desc = new HTableDescriptor(table2);<a name="line.446"></a>
+<span class="sourceLineNo">447</span>    desc.addFamily(fam);<a name="line.447"></a>
+<span class="sourceLineNo">448</span>    ha.createTable(desc);<a name="line.448"></a>
+<span class="sourceLineNo">449</span>    table = conn.getTable(table2);<a name="line.449"></a>
+<span class="sourceLineNo">450</span>    loadTable(table);<a name="line.450"></a>
+<span class="sourceLineNo">451</span>    table.close();<a name="line.451"></a>
+<span class="sourceLineNo">452</span>    table3 = TableName.valueOf("ns3:test-" + tid + 2);<a name="line.452"></a>
+<span class="sourceLineNo">453</span>    table = TEST_UTIL.createTable(table3, famName);<a name="line.453"></a>
+<span class="sourceLineNo">454</span>    table.close();<a name="line.454"></a>
+<span class="sourceLineNo">455</span>    table4 = TableName.valueOf("ns4:test-" + tid + 3);<a name="line.455"></a>
+<span class="sourceLineNo">456</span>    table = TEST_UTIL.createTable(table4, famName);<a name="line.456"></a>
+<span class="sourceLineNo">457</span>    table.close();<a name="line.457"></a>
+<span class="sourceLineNo">458</span>    ha.close();<a name="line.458"></a>
+<span class="sourceLineNo">459</span>    conn.close();<a name="line.459"></a>
+<span class="sourceLineNo">460</span>  }<a name="line.460"></a>
+<span class="sourceLineNo">461</span><a name="line.461"></a>
+<span class="sourceLineNo">462</span>  protected boolean checkSucceeded(String backupId) throws IOException {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>    BackupInfo status = getBackupInfo(backupId);<a name="line.463"></a>
+<span class="sourceLineNo">464</span>    if (status == null) return false;<a name="line.464"></a>
+<span class="sourceLineNo">465</span>    return status.getState() == BackupState.COMPLETE;<a name="line.465"></a>
+<span class="sourceLineNo">466</span>  }<a name="line.466"></a>
+<span class="sourceLineNo">467</span><a name="line.467"></a>
+<span class="sourceLineNo">468</span>  protected boolean checkFailed(String backupId) throws IOException {<a name="line.468"></a>
+<span class="sourceLineNo">469</span>    BackupInfo status = getBackupInfo(backupId);<a name="line.469"></a>
+<span class="sourceLineNo">470</span>    if (status == null) return false;<a name="line.470"></a>
+<span class="sourceLineNo">471</span>    return status.getState() == BackupState.FAILED;<a name="line.471"></a>
+<span class="sourceLineNo">472</span>  }<a name="line.472"></a>
+<span class="sourceLineNo">473</span><a name="line.473"></a>
+<span class="sourceLineNo">474</span>  private BackupInfo getBackupInfo(String backupId) throws IOException {<a name="line.474"></a>
+<span class="sourceLineNo">475</span>    try (BackupSystemTable table = new BackupSystemTable(TEST_UTIL.getConnection())) {<a name="line.475"></a>
+<span class="sourceLineNo">476</span>      BackupInfo status = table.readBackupInfo(backupId);<a name="line.476"></a>
+<span class="sourceLineNo">477</span>      return status;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>    }<a name="line.478"></a>
+<span class="sourceLineNo">479</span>  }<a name="line.479"></a>
+<span class="sourceLineNo">480</span><a name="line.480"></a>
+<span class="sourceLineNo">481</span>  protected BackupAdmin getBackupAdmin() throws IOException {<a name="line.481"></a>
+<span class="sourceLineNo">482</span>    return new BackupAdminImpl(TEST_UTIL.getConnection());<a name="line.482"></a>
 <span class="sourceLineNo">483</span>  }<a name="line.483"></a>
 <span class="sourceLineNo">484</span><a name="line.484"></a>
-<span class="sourceLineNo">485</span>  protected BackupAdmin getBackupAdmin() throws IOException {<a name="line.485"></a>
-<span class="sourceLineNo">486</span>    return new BackupAdminImpl(TEST_UTIL.getConnection());<a name="line.486"></a>
-<span class="sourceLineNo">487</span>  }<a name="line.487"></a>
-<span class="sourceLineNo">488</span><a name="line.488"></a>
-<span class="sourceLineNo">489</span>  /**<a name="line.489"></a>
-<span class="sourceLineNo">490</span>   * Helper method<a name="line.490"></a>
-<span class="sourceLineNo">491</span>   */<a name="line.491"></a>
-<span class="sourceLineNo">492</span>  protected List&lt;TableName&gt; toList(String... args) {<a name="line.492"></a>
-<span class="sourceLineNo">493</span>    List&lt;TableName&gt; ret = new ArrayList&lt;&gt;();<a name="line.493"></a>
-<span class="sourceLineNo">494</span>    for (int i = 0; i &lt; args.length; i++) {<a name="line.494"></a>
-<span class="sourceLineNo">495</span>      ret.add(TableName.valueOf(args[i]));<a name="line.495"></a>
-<span class="sourceLineNo">496</span>    }<a name="line.496"></a>
-<span class="sourceLineNo">497</span>    return ret;<a name="line.497"></a>
-<span class="sourceLineNo">498</span>  }<a name="line.498"></a>
-<span class="sourceLineNo">499</span><a name="line.499"></a>
-<span class="sourceLineNo">500</span>  protected void dumpBackupDir() throws IOException {<a name="line.500"></a>
-<span class="sourceLineNo">501</span>    // Dump Backup Dir<a name="line.501"></a>
-<span class="sourceLineNo">502</span>    FileSystem fs = FileSystem.get(conf1);<a name="line.502"></a>
-<span class="sourceLineNo">503</span>    RemoteIterator&lt;LocatedFileStatus&gt; it = fs.listFiles(new Path(BACKUP_ROOT_DIR), true);<a name="line.503"></a>
-<span class="sourceLineNo">504</span>    while (it.hasNext()) {<a name="line.504"></a>
-<span class="sourceLineNo">505</span>      LOG.debug(Objects.toString(it.next().getPath()));<a name="line.505"></a>
-<span class="sourceLineNo">506</span>    }<a name="line.506"></a>
-<span class="sourceLineNo">507</span><a name="line.507"></a>
-<span class="sourceLineNo">508</span>  }<a name="line.508"></a>
-<span class="sourceLineNo">509</span>}<a name="line.509"></a>
+<span class="sourceLineNo">485</span>  /**<a name="line.485"></a>
+<span class="sourceLineNo">486</span>   * Helper method<a name="line.486"></a>
+<span class="sourceLineNo">487</span>   */<a name="line.487"></a>
+<span class="sourceLineNo">488</span>  protected List&lt;TableName&gt; toList(String... args) {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>    List&lt;TableName&gt; ret = new ArrayList&lt;&gt;();<a name="line.489"></a>
+<span class="sourceLineNo">490</span>    for (int i = 0; i &lt; args.length; i++) {<a name="line.490"></a>
+<span class="sourceLineNo">491</span>      ret.add(TableName.valueOf(args[i]));<a name="line.491"></a>
+<span class="sourceLineNo">492</span>    }<a name="line.492"></a>
+<span class="sourceLineNo">493</span>    return ret;<a name="line.493"></a>
+<span class="sourceLineNo">494</span>  }<a name="line.494"></a>
+<span class="sourceLineNo">495</span><a name="line.495"></a>
+<span class="sourceLineNo">496</span>  protected void dumpBackupDir() throws IOException {<a name="line.496"></a>
+<span class="sourceLineNo">497</span>    // Dump Backup Dir<a name="line.497"></a>
+<span class="sourceLineNo">498</span>    FileSystem fs = FileSystem.get(conf1);<a name="line.498"></a>
+<span class="sourceLineNo">499</span>    RemoteIterator&lt;LocatedFileStatus&gt; it = fs.listFiles(new Path(BACKUP_ROOT_DIR), true);<a name="line.499"></a>
+<span class="sourceLineNo">500</span>    while (it.hasNext()) {<a name="line.500"></a>
+<span class="sourceLineNo">501</span>      LOG.debug(Objects.toString(it.next().getPath()));<a name="line.501"></a>
+<span class="sourceLineNo">502</span>    }<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">

<TRUNCATED>

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

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/org/apache/hadoop/hbase/zookeeper/TestZKMulti.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/zookeeper/TestZKMulti.html b/testdevapidocs/org/apache/hadoop/hbase/zookeeper/TestZKMulti.html
index 0691523..b5a9b4b 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/zookeeper/TestZKMulti.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/zookeeper/TestZKMulti.html
@@ -49,7 +49,7 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/zookeeper/TestZKMetrics.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/zookeeper/TestZKMainServer.NoExitSecurityManager.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/zookeeper/TestZKNodeTracker.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -522,7 +522,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/zookeeper/TestZKMetrics.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/zookeeper/TestZKMainServer.NoExitSecurityManager.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/zookeeper/TestZKNodeTracker.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/org/apache/hadoop/hbase/zookeeper/package-frame.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/zookeeper/package-frame.html b/testdevapidocs/org/apache/hadoop/hbase/zookeeper/package-frame.html
index 9ec1164..46c4cfa 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/zookeeper/package-frame.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/zookeeper/package-frame.html
@@ -25,7 +25,6 @@
 <li><a href="TestZKLeaderManager.MockLeader.html" title="class in org.apache.hadoop.hbase.zookeeper" target="classFrame">TestZKLeaderManager.MockLeader</a></li>
 <li><a href="TestZKMainServer.html" title="class in org.apache.hadoop.hbase.zookeeper" target="classFrame">TestZKMainServer</a></li>
 <li><a href="TestZKMainServer.NoExitSecurityManager.html" title="class in org.apache.hadoop.hbase.zookeeper" target="classFrame">TestZKMainServer.NoExitSecurityManager</a></li>
-<li><a href="TestZKMetrics.html" title="class in org.apache.hadoop.hbase.zookeeper" target="classFrame">TestZKMetrics</a></li>
 <li><a href="TestZKMulti.html" title="class in org.apache.hadoop.hbase.zookeeper" target="classFrame">TestZKMulti</a></li>
 <li><a href="TestZKNodeTracker.html" title="class in org.apache.hadoop.hbase.zookeeper" target="classFrame">TestZKNodeTracker</a></li>
 <li><a href="TestZKNodeTracker.StubAbortable.html" title="class in org.apache.hadoop.hbase.zookeeper" target="classFrame">TestZKNodeTracker.StubAbortable</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/org/apache/hadoop/hbase/zookeeper/package-summary.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/zookeeper/package-summary.html b/testdevapidocs/org/apache/hadoop/hbase/zookeeper/package-summary.html
index 75c755d..ede0bbc 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/zookeeper/package-summary.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/zookeeper/package-summary.html
@@ -133,48 +133,44 @@
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/TestZKMetrics.html" title="class in org.apache.hadoop.hbase.zookeeper">TestZKMetrics</a></td>
-<td class="colLast">&nbsp;</td>
-</tr>
-<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/TestZKMulti.html" title="class in org.apache.hadoop.hbase.zookeeper">TestZKMulti</a></td>
 <td class="colLast">
 <div class="block">Test ZooKeeper multi-update functionality</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/TestZKNodeTracker.html" title="class in org.apache.hadoop.hbase.zookeeper">TestZKNodeTracker</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/TestZKNodeTracker.StubAbortable.html" title="class in org.apache.hadoop.hbase.zookeeper">TestZKNodeTracker.StubAbortable</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/TestZKNodeTracker.TestingZKListener.html" title="class in org.apache.hadoop.hbase.zookeeper">TestZKNodeTracker.TestingZKListener</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/TestZKNodeTracker.TestTracker.html" title="class in org.apache.hadoop.hbase.zookeeper">TestZKNodeTracker.TestTracker</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/TestZKNodeTracker.WaitToGetDataThread.html" title="class in org.apache.hadoop.hbase.zookeeper">TestZKNodeTracker.WaitToGetDataThread</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/TestZKUtil.html" title="class in org.apache.hadoop.hbase.zookeeper">TestZKUtil</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/TestZKWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">TestZKWatcher</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/TestZooKeeperACL.html" title="class in org.apache.hadoop.hbase.zookeeper">TestZooKeeperACL</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/TestZooKeeperACL.DummySecurityConfiguration.html" title="class in org.apache.hadoop.hbase.zookeeper">TestZooKeeperACL.DummySecurityConfiguration</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/org/apache/hadoop/hbase/zookeeper/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/zookeeper/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/zookeeper/package-tree.html
index ebe898e..592e626 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/zookeeper/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/zookeeper/package-tree.html
@@ -101,7 +101,6 @@
 <li type="circle">org.apache.hadoop.hbase.zookeeper.<a href="../../../../../org/apache/hadoop/hbase/zookeeper/TestZKLeaderManager.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">TestZKLeaderManager</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.zookeeper.<a href="../../../../../org/apache/hadoop/hbase/zookeeper/TestZKLeaderManager.MockAbortable.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">TestZKLeaderManager.MockAbortable</span></a> (implements org.apache.hadoop.hbase.Abortable)</li>
 <li type="circle">org.apache.hadoop.hbase.zookeeper.<a href="../../../../../org/apache/hadoop/hbase/zookeeper/TestZKMainServer.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">TestZKMainServer</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.zookeeper.<a href="../../../../../org/apache/hadoop/hbase/zookeeper/TestZKMetrics.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">TestZKMetrics</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.zookeeper.<a href="../../../../../org/apache/hadoop/hbase/zookeeper/TestZKMulti.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">TestZKMulti</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.zookeeper.<a href="../../../../../org/apache/hadoop/hbase/zookeeper/TestZKNodeTracker.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">TestZKNodeTracker</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.zookeeper.<a href="../../../../../org/apache/hadoop/hbase/zookeeper/TestZKNodeTracker.StubAbortable.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">TestZKNodeTracker.StubAbortable</span></a> (implements org.apache.hadoop.hbase.Abortable)</li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/overview-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/overview-tree.html b/testdevapidocs/overview-tree.html
index 6cce967..a7d215a 100644
--- a/testdevapidocs/overview-tree.html
+++ b/testdevapidocs/overview-tree.html
@@ -3584,7 +3584,6 @@
 <li type="circle">org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/TestZKLeaderManager.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">TestZKLeaderManager</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/TestZKLeaderManager.MockAbortable.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">TestZKLeaderManager.MockAbortable</span></a> (implements org.apache.hadoop.hbase.Abortable)</li>
 <li type="circle">org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/TestZKMainServer.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">TestZKMainServer</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/TestZKMetrics.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">TestZKMetrics</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/TestZKMulti.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">TestZKMulti</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/TestZKNodeTracker.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">TestZKNodeTracker</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/TestZKNodeTracker.StubAbortable.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">TestZKNodeTracker.StubAbortable</span></a> (implements org.apache.hadoop.hbase.Abortable)</li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.PortAllocator.AvailablePortChecker.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.PortAllocator.AvailablePortChecker.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.PortAllocator.AvailablePortChecker.html
index a34364c..ef16c0e 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.PortAllocator.AvailablePortChecker.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.PortAllocator.AvailablePortChecker.html
@@ -1041,7 +1041,7 @@
 <span class="sourceLineNo">1033</span>    t.close();<a name="line.1033"></a>
 <span class="sourceLineNo">1034</span><a name="line.1034"></a>
 <span class="sourceLineNo">1035</span>    getAdmin(); // create immediately the hbaseAdmin<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>    LOG.info("Minicluster is up");<a name="line.1036"></a>
+<span class="sourceLineNo">1036</span>    LOG.info("Minicluster is up; activeMaster=" + this.getHBaseCluster().getMaster());<a name="line.1036"></a>
 <span class="sourceLineNo">1037</span><a name="line.1037"></a>
 <span class="sourceLineNo">1038</span>    return (MiniHBaseCluster)this.hbaseCluster;<a name="line.1038"></a>
 <span class="sourceLineNo">1039</span>  }<a name="line.1039"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.PortAllocator.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.PortAllocator.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.PortAllocator.html
index a34364c..ef16c0e 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.PortAllocator.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.PortAllocator.html
@@ -1041,7 +1041,7 @@
 <span class="sourceLineNo">1033</span>    t.close();<a name="line.1033"></a>
 <span class="sourceLineNo">1034</span><a name="line.1034"></a>
 <span class="sourceLineNo">1035</span>    getAdmin(); // create immediately the hbaseAdmin<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>    LOG.info("Minicluster is up");<a name="line.1036"></a>
+<span class="sourceLineNo">1036</span>    LOG.info("Minicluster is up; activeMaster=" + this.getHBaseCluster().getMaster());<a name="line.1036"></a>
 <span class="sourceLineNo">1037</span><a name="line.1037"></a>
 <span class="sourceLineNo">1038</span>    return (MiniHBaseCluster)this.hbaseCluster;<a name="line.1038"></a>
 <span class="sourceLineNo">1039</span>  }<a name="line.1039"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.SeenRowTracker.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.SeenRowTracker.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.SeenRowTracker.html
index a34364c..ef16c0e 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.SeenRowTracker.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.SeenRowTracker.html
@@ -1041,7 +1041,7 @@
 <span class="sourceLineNo">1033</span>    t.close();<a name="line.1033"></a>
 <span class="sourceLineNo">1034</span><a name="line.1034"></a>
 <span class="sourceLineNo">1035</span>    getAdmin(); // create immediately the hbaseAdmin<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>    LOG.info("Minicluster is up");<a name="line.1036"></a>
+<span class="sourceLineNo">1036</span>    LOG.info("Minicluster is up; activeMaster=" + this.getHBaseCluster().getMaster());<a name="line.1036"></a>
 <span class="sourceLineNo">1037</span><a name="line.1037"></a>
 <span class="sourceLineNo">1038</span>    return (MiniHBaseCluster)this.hbaseCluster;<a name="line.1038"></a>
 <span class="sourceLineNo">1039</span>  }<a name="line.1039"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.html
index a34364c..ef16c0e 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.html
@@ -1041,7 +1041,7 @@
 <span class="sourceLineNo">1033</span>    t.close();<a name="line.1033"></a>
 <span class="sourceLineNo">1034</span><a name="line.1034"></a>
 <span class="sourceLineNo">1035</span>    getAdmin(); // create immediately the hbaseAdmin<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>    LOG.info("Minicluster is up");<a name="line.1036"></a>
+<span class="sourceLineNo">1036</span>    LOG.info("Minicluster is up; activeMaster=" + this.getHBaseCluster().getMaster());<a name="line.1036"></a>
 <span class="sourceLineNo">1037</span><a name="line.1037"></a>
 <span class="sourceLineNo">1038</span>    return (MiniHBaseCluster)this.hbaseCluster;<a name="line.1038"></a>
 <span class="sourceLineNo">1039</span>  }<a name="line.1039"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/src-html/org/apache/hadoop/hbase/TestJMXConnectorServer.MyAccessController.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/TestJMXConnectorServer.MyAccessController.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/TestJMXConnectorServer.MyAccessController.html
index 08b764c..75c6f6a 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/TestJMXConnectorServer.MyAccessController.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/TestJMXConnectorServer.MyAccessController.html
@@ -6,7 +6,7 @@
 </head>
 <body>
 <div class="sourceContainer">
-<pre><span class="sourceLineNo">001</span>/**<a name="line.1"></a>
+<pre><span class="sourceLineNo">001</span>/*<a name="line.1"></a>
 <span class="sourceLineNo">002</span> *<a name="line.2"></a>
 <span class="sourceLineNo">003</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.3"></a>
 <span class="sourceLineNo">004</span> * or more contributor license agreements.  See the NOTICE file<a name="line.4"></a>
@@ -39,186 +39,194 @@
 <span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.coprocessor.ObserverContext;<a name="line.31"></a>
 <span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.coprocessor.RegionServerCoprocessorEnvironment;<a name="line.32"></a>
 <span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.security.AccessDeniedException;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.security.access.AccessController;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.testclassification.MediumTests;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.testclassification.MiscTests;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.junit.After;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.junit.Assert;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.junit.Before;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.junit.Test;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.junit.experimental.categories.Category;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.slf4j.Logger;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.slf4j.LoggerFactory;<a name="line.43"></a>
-<span class="sourceLineNo">044</span><a name="line.44"></a>
-<span class="sourceLineNo">045</span>/**<a name="line.45"></a>
-<span class="sourceLineNo">046</span> * Test case for JMX Connector Server.<a name="line.46"></a>
-<span class="sourceLineNo">047</span> */<a name="line.47"></a>
-<span class="sourceLineNo">048</span>@Category({ MiscTests.class, MediumTests.class })<a name="line.48"></a>
-<span class="sourceLineNo">049</span>public class TestJMXConnectorServer {<a name="line.49"></a>
-<span class="sourceLineNo">050</span>  private static final Logger LOG = LoggerFactory.getLogger(TestJMXConnectorServer.class);<a name="line.50"></a>
-<span class="sourceLineNo">051</span>  private static HBaseTestingUtility UTIL = new HBaseTestingUtility();<a name="line.51"></a>
-<span class="sourceLineNo">052</span><a name="line.52"></a>
-<span class="sourceLineNo">053</span>  private static Configuration conf = null;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>  private static Admin admin;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>  // RMI registry port<a name="line.55"></a>
-<span class="sourceLineNo">056</span>  private static int rmiRegistryPort = 61120;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>  // Switch for customized Accesscontroller to throw ACD exception while executing test case<a name="line.57"></a>
-<span class="sourceLineNo">058</span>  static boolean hasAccess;<a name="line.58"></a>
-<span class="sourceLineNo">059</span><a name="line.59"></a>
-<span class="sourceLineNo">060</span>  @Before<a name="line.60"></a>
-<span class="sourceLineNo">061</span>  public void setUp() throws Exception {<a name="line.61"></a>
-<span class="sourceLineNo">062</span>    UTIL = new HBaseTestingUtility();<a name="line.62"></a>
-<span class="sourceLineNo">063</span>    conf = UTIL.getConfiguration();<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>  @After<a name="line.66"></a>
-<span class="sourceLineNo">067</span>  public void tearDown() throws Exception {<a name="line.67"></a>
-<span class="sourceLineNo">068</span>    // Set to true while stopping cluster<a name="line.68"></a>
-<span class="sourceLineNo">069</span>    hasAccess = true;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>    admin.close();<a name="line.70"></a>
-<span class="sourceLineNo">071</span>    UTIL.shutdownMiniCluster();<a name="line.71"></a>
-<span class="sourceLineNo">072</span>  }<a name="line.72"></a>
-<span class="sourceLineNo">073</span><a name="line.73"></a>
-<span class="sourceLineNo">074</span>  /**<a name="line.74"></a>
-<span class="sourceLineNo">075</span>   * This tests to validate the HMaster's ConnectorServer after unauthorised stopMaster call.<a name="line.75"></a>
-<span class="sourceLineNo">076</span>   */<a name="line.76"></a>
-<span class="sourceLineNo">077</span>  @Test(timeout = 180000)<a name="line.77"></a>
-<span class="sourceLineNo">078</span>  public void testHMConnectorServerWhenStopMaster() throws Exception {<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    conf.set(CoprocessorHost.MASTER_COPROCESSOR_CONF_KEY,<a name="line.79"></a>
-<span class="sourceLineNo">080</span>      JMXListener.class.getName() + "," + MyAccessController.class.getName());<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    conf.setInt("master.rmi.registry.port", rmiRegistryPort);<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    UTIL.startMiniCluster();<a name="line.82"></a>
-<span class="sourceLineNo">083</span>    admin = UTIL.getConnection().getAdmin();<a name="line.83"></a>
-<span class="sourceLineNo">084</span><a name="line.84"></a>
-<span class="sourceLineNo">085</span>    // try to stop master<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    boolean accessDenied = false;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>    try {<a name="line.87"></a>
-<span class="sourceLineNo">088</span>      hasAccess = false;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>      LOG.info("Stopping HMaster...");<a name="line.89"></a>
-<span class="sourceLineNo">090</span>      admin.stopMaster();<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    } catch (AccessDeniedException e) {<a name="line.91"></a>
-<span class="sourceLineNo">092</span>      LOG.info("Exception occurred while stopping HMaster. ", e);<a name="line.92"></a>
-<span class="sourceLineNo">093</span>      accessDenied = true;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>    }<a name="line.94"></a>
-<span class="sourceLineNo">095</span>    Assert.assertTrue(accessDenied);<a name="line.95"></a>
-<span class="sourceLineNo">096</span><a name="line.96"></a>
-<span class="sourceLineNo">097</span>    // Check whether HMaster JMX Connector server can be connected<a name="line.97"></a>
-<span class="sourceLineNo">098</span>    JMXConnector connector = null;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    try {<a name="line.99"></a>
-<span class="sourceLineNo">100</span>      connector = JMXConnectorFactory<a name="line.100"></a>
-<span class="sourceLineNo">101</span>          .connect(JMXListener.buildJMXServiceURL(rmiRegistryPort, rmiRegistryPort));<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    } catch (IOException e) {<a name="line.102"></a>
-<span class="sourceLineNo">103</span>      if (e.getCause() instanceof ServiceUnavailableException) {<a name="line.103"></a>
-<span class="sourceLineNo">104</span>        Assert.fail("Can't connect to HMaster ConnectorServer.");<a name="line.104"></a>
-<span class="sourceLineNo">105</span>      }<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    }<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    Assert.assertNotNull("JMXConnector should not be null.", connector);<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    connector.close();<a name="line.108"></a>
-<span class="sourceLineNo">109</span>  }<a name="line.109"></a>
-<span class="sourceLineNo">110</span><a name="line.110"></a>
-<span class="sourceLineNo">111</span>  /**<a name="line.111"></a>
-<span class="sourceLineNo">112</span>   * This tests to validate the RegionServer's ConnectorServer after unauthorised stopRegionServer<a name="line.112"></a>
-<span class="sourceLineNo">113</span>   * call.<a name="line.113"></a>
-<span class="sourceLineNo">114</span>   */<a name="line.114"></a>
-<span class="sourceLineNo">115</span>  @Test(timeout = 180000)<a name="line.115"></a>
-<span class="sourceLineNo">116</span>  public void testRSConnectorServerWhenStopRegionServer() throws Exception {<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    conf.set(CoprocessorHost.REGIONSERVER_COPROCESSOR_CONF_KEY,<a name="line.117"></a>
-<span class="sourceLineNo">118</span>      JMXListener.class.getName() + "," + MyAccessController.class.getName());<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    conf.setInt("regionserver.rmi.registry.port", rmiRegistryPort);<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    UTIL.startMiniCluster();<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    admin = UTIL.getConnection().getAdmin();<a name="line.121"></a>
-<span class="sourceLineNo">122</span><a name="line.122"></a>
-<span class="sourceLineNo">123</span>    hasAccess = false;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    ServerName serverName = UTIL.getHBaseCluster().getRegionServer(0).getServerName();<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    LOG.info("Stopping Region Server...");<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    admin.stopRegionServer(serverName.getHostname() + ":" + serverName.getPort());<a name="line.126"></a>
-<span class="sourceLineNo">127</span><a name="line.127"></a>
-<span class="sourceLineNo">128</span>    // Check whether Region Sever JMX Connector server can be connected<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    JMXConnector connector = null;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    try {<a name="line.130"></a>
-<span class="sourceLineNo">131</span>      connector = JMXConnectorFactory<a name="line.131"></a>
-<span class="sourceLineNo">132</span>          .connect(JMXListener.buildJMXServiceURL(rmiRegistryPort, rmiRegistryPort));<a name="line.132"></a>
-<span class="sourceLineNo">133</span>    } catch (IOException e) {<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      if (e.getCause() instanceof ServiceUnavailableException) {<a name="line.134"></a>
-<span class="sourceLineNo">135</span>        Assert.fail("Can't connect to Region Server ConnectorServer.");<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>    Assert.assertNotNull("JMXConnector should not be null.", connector);<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    connector.close();<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>  /**<a name="line.142"></a>
-<span class="sourceLineNo">143</span>   * This tests to validate the HMaster's ConnectorServer after unauthorised shutdown call.<a name="line.143"></a>
-<span class="sourceLineNo">144</span>   */<a name="line.144"></a>
-<span class="sourceLineNo">145</span>  @Test(timeout = 180000)<a name="line.145"></a>
-<span class="sourceLineNo">146</span>  public void testHMConnectorServerWhenShutdownCluster() throws Exception {<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    conf.set(CoprocessorHost.MASTER_COPROCESSOR_CONF_KEY,<a name="line.147"></a>
-<span class="sourceLineNo">148</span>      JMXListener.class.getName() + "," + MyAccessController.class.getName());<a name="line.148"></a>
-<span class="sourceLineNo">149</span>    conf.setInt("master.rmi.registry.port", rmiRegistryPort);<a name="line.149"></a>
-<span class="sourceLineNo">150</span><a name="line.150"></a>
-<span class="sourceLineNo">151</span>    UTIL.startMiniCluster();<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    admin = UTIL.getConnection().getAdmin();<a name="line.152"></a>
-<span class="sourceLineNo">153</span><a name="line.153"></a>
-<span class="sourceLineNo">154</span>    boolean accessDenied = false;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>    try {<a name="line.155"></a>
-<span class="sourceLineNo">156</span>      hasAccess = false;<a name="line.156"></a>
-<span class="sourceLineNo">157</span>      LOG.info("Stopping HMaster...");<a name="line.157"></a>
-<span class="sourceLineNo">158</span>      admin.shutdown();<a name="line.158"></a>
-<span class="sourceLineNo">159</span>    } catch (AccessDeniedException e) {<a name="line.159"></a>
-<span class="sourceLineNo">160</span>      LOG.error("Exception occurred while stopping HMaster. ", e);<a name="line.160"></a>
-<span class="sourceLineNo">161</span>      accessDenied = true;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>    }<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    Assert.assertTrue(accessDenied);<a name="line.163"></a>
-<span class="sourceLineNo">164</span><a name="line.164"></a>
-<span class="sourceLineNo">165</span>    // Check whether HMaster JMX Connector server can be connected<a name="line.165"></a>
-<span class="sourceLineNo">166</span>    JMXConnector connector = null;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>    try {<a name="line.167"></a>
-<span class="sourceLineNo">168</span>      connector = JMXConnectorFactory<a name="line.168"></a>
-<span class="sourceLineNo">169</span>          .connect(JMXListener.buildJMXServiceURL(rmiRegistryPort, rmiRegistryPort));<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    } catch (IOException e) {<a name="line.170"></a>
-<span class="sourceLineNo">171</span>      if (e.getCause() instanceof ServiceUnavailableException) {<a name="line.171"></a>
-<span class="sourceLineNo">172</span>        Assert.fail("Can't connect to HMaster ConnectorServer.");<a name="line.172"></a>
-<span class="sourceLineNo">173</span>      }<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    }<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    Assert.assertNotNull("JMXConnector should not be null.", connector);<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    connector.close();<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>
-<span class="sourceLineNo">179</span>  /*<a name="line.179"></a>
-<span class="sourceLineNo">180</span>   * Customized class for test case execution which will throw ACD exception while executing<a name="line.180"></a>
-<span class="sourceLineNo">181</span>   * stopMaster/preStopRegionServer/preShutdown explicitly.<a name="line.181"></a>
-<span class="sourceLineNo">182</span>   */<a name="line.182"></a>
-<span class="sourceLineNo">183</span>  public static class MyAccessController extends AccessController {<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    @Override<a name="line.184"></a>
-<span class="sourceLineNo">185</span>    public void preStopMaster(ObserverContext&lt;MasterCoprocessorEnvironment&gt; c) throws IOException {<a name="line.185"></a>
-<span class="sourceLineNo">186</span>      if (!hasAccess) {<a name="line.186"></a>
-<span class="sourceLineNo">187</span>        throw new AccessDeniedException("Insufficient permissions to stop master");<a name="line.187"></a>
-<span class="sourceLineNo">188</span>      }<a name="line.188"></a>
-<span class="sourceLineNo">189</span>    }<a name="line.189"></a>
-<span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>    @Override<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    public void preStopRegionServer(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx)<a name="line.192"></a>
-<span class="sourceLineNo">193</span>        throws IOException {<a name="line.193"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.security.access.AccessControlLists;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.security.access.AccessController;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.testclassification.MediumTests;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.testclassification.MiscTests;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.util.Threads;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.junit.After;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.junit.Assert;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.junit.Before;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.junit.Test;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.junit.experimental.categories.Category;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.slf4j.Logger;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.slf4j.LoggerFactory;<a name="line.45"></a>
+<span class="sourceLineNo">046</span><a name="line.46"></a>
+<span class="sourceLineNo">047</span>/**<a name="line.47"></a>
+<span class="sourceLineNo">048</span> * Test case for JMX Connector Server.<a name="line.48"></a>
+<span class="sourceLineNo">049</span> */<a name="line.49"></a>
+<span class="sourceLineNo">050</span>@Category({ MiscTests.class, MediumTests.class })<a name="line.50"></a>
+<span class="sourceLineNo">051</span>public class TestJMXConnectorServer {<a name="line.51"></a>
+<span class="sourceLineNo">052</span>  private static final Logger LOG = LoggerFactory.getLogger(TestJMXConnectorServer.class);<a name="line.52"></a>
+<span class="sourceLineNo">053</span>  private static HBaseTestingUtility UTIL = new HBaseTestingUtility();<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>  private static Configuration conf = null;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>  private static Admin admin;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>  // RMI registry port<a name="line.57"></a>
+<span class="sourceLineNo">058</span>  private static int rmiRegistryPort = 61120;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>  // Switch for customized Accesscontroller to throw ACD exception while executing test case<a name="line.59"></a>
+<span class="sourceLineNo">060</span>  static boolean hasAccess;<a name="line.60"></a>
+<span class="sourceLineNo">061</span><a name="line.61"></a>
+<span class="sourceLineNo">062</span>  @Before<a name="line.62"></a>
+<span class="sourceLineNo">063</span>  public void setUp() throws Exception {<a name="line.63"></a>
+<span class="sourceLineNo">064</span>    UTIL = new HBaseTestingUtility();<a name="line.64"></a>
+<span class="sourceLineNo">065</span>    conf = UTIL.getConfiguration();<a name="line.65"></a>
+<span class="sourceLineNo">066</span>  }<a name="line.66"></a>
+<span class="sourceLineNo">067</span><a name="line.67"></a>
+<span class="sourceLineNo">068</span>  @After<a name="line.68"></a>
+<span class="sourceLineNo">069</span>  public void tearDown() throws Exception {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>    // Set to true while stopping cluster<a name="line.70"></a>
+<span class="sourceLineNo">071</span>    hasAccess = true;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>    admin.close();<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    UTIL.shutdownMiniCluster();<a name="line.73"></a>
+<span class="sourceLineNo">074</span>  }<a name="line.74"></a>
+<span class="sourceLineNo">075</span><a name="line.75"></a>
+<span class="sourceLineNo">076</span>  /**<a name="line.76"></a>
+<span class="sourceLineNo">077</span>   * This tests to validate the HMaster's ConnectorServer after unauthorised stopMaster call.<a name="line.77"></a>
+<span class="sourceLineNo">078</span>   */<a name="line.78"></a>
+<span class="sourceLineNo">079</span>  @Test(timeout = 180000)<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  public void testHMConnectorServerWhenStopMaster() throws Exception {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    conf.set(CoprocessorHost.MASTER_COPROCESSOR_CONF_KEY,<a name="line.81"></a>
+<span class="sourceLineNo">082</span>      JMXListener.class.getName() + "," + MyAccessController.class.getName());<a name="line.82"></a>
+<span class="sourceLineNo">083</span>    conf.setInt("master.rmi.registry.port", rmiRegistryPort);<a name="line.83"></a>
+<span class="sourceLineNo">084</span>    UTIL.startMiniCluster();<a name="line.84"></a>
+<span class="sourceLineNo">085</span>    admin = UTIL.getConnection().getAdmin();<a name="line.85"></a>
+<span class="sourceLineNo">086</span><a name="line.86"></a>
+<span class="sourceLineNo">087</span>    // try to stop master<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    boolean accessDenied = false;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    try {<a name="line.89"></a>
+<span class="sourceLineNo">090</span>      hasAccess = false;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>      LOG.info("Stopping HMaster...");<a name="line.91"></a>
+<span class="sourceLineNo">092</span>      admin.stopMaster();<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    } catch (AccessDeniedException e) {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>      LOG.info("Exception occurred while stopping HMaster. ", e);<a name="line.94"></a>
+<span class="sourceLineNo">095</span>      accessDenied = true;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    }<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    Assert.assertTrue(accessDenied);<a name="line.97"></a>
+<span class="sourceLineNo">098</span><a name="line.98"></a>
+<span class="sourceLineNo">099</span>    // Check whether HMaster JMX Connector server can be connected<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    JMXConnector connector = null;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    try {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>      connector = JMXConnectorFactory<a name="line.102"></a>
+<span class="sourceLineNo">103</span>          .connect(JMXListener.buildJMXServiceURL(rmiRegistryPort, rmiRegistryPort));<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    } catch (IOException e) {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>      if (e.getCause() instanceof ServiceUnavailableException) {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>        Assert.fail("Can't connect to HMaster ConnectorServer.");<a name="line.106"></a>
+<span class="sourceLineNo">107</span>      }<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    }<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    Assert.assertNotNull("JMXConnector should not be null.", connector);<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    connector.close();<a name="line.110"></a>
+<span class="sourceLineNo">111</span>  }<a name="line.111"></a>
+<span class="sourceLineNo">112</span><a name="line.112"></a>
+<span class="sourceLineNo">113</span>  /**<a name="line.113"></a>
+<span class="sourceLineNo">114</span>   * This tests to validate the RegionServer's ConnectorServer after unauthorised stopRegionServer<a name="line.114"></a>
+<span class="sourceLineNo">115</span>   * call.<a name="line.115"></a>
+<span class="sourceLineNo">116</span>   */<a name="line.116"></a>
+<span class="sourceLineNo">117</span>  @Test(timeout = 180000)<a name="line.117"></a>
+<span class="sourceLineNo">118</span>  public void testRSConnectorServerWhenStopRegionServer() throws Exception {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    conf.set(CoprocessorHost.REGIONSERVER_COPROCESSOR_CONF_KEY,<a name="line.119"></a>
+<span class="sourceLineNo">120</span>      JMXListener.class.getName() + "," + MyAccessController.class.getName());<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    conf.setInt("regionserver.rmi.registry.port", rmiRegistryPort);<a name="line.121"></a>
+<span class="sourceLineNo">122</span>    UTIL.startMiniCluster();<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    admin = UTIL.getConnection().getAdmin();<a name="line.123"></a>
+<span class="sourceLineNo">124</span><a name="line.124"></a>
+<span class="sourceLineNo">125</span>    hasAccess = false;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    ServerName serverName = UTIL.getHBaseCluster().getRegionServer(0).getServerName();<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    LOG.info("Stopping Region Server...");<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    admin.stopRegionServer(serverName.getHostname() + ":" + serverName.getPort());<a name="line.128"></a>
+<span class="sourceLineNo">129</span><a name="line.129"></a>
+<span class="sourceLineNo">130</span>    // Check whether Region Sever JMX Connector server can be connected<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    JMXConnector connector = null;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>    try {<a name="line.132"></a>
+<span class="sourceLineNo">133</span>      connector = JMXConnectorFactory<a name="line.133"></a>
+<span class="sourceLineNo">134</span>          .connect(JMXListener.buildJMXServiceURL(rmiRegistryPort, rmiRegistryPort));<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    } catch (IOException e) {<a name="line.135"></a>
+<span class="sourceLineNo">136</span>      if (e.getCause() instanceof ServiceUnavailableException) {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>        Assert.fail("Can't connect to Region Server ConnectorServer.");<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>    Assert.assertNotNull("JMXConnector should not be null.", connector);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    connector.close();<a name="line.141"></a>
+<span class="sourceLineNo">142</span>  }<a name="line.142"></a>
+<span class="sourceLineNo">143</span><a name="line.143"></a>
+<span class="sourceLineNo">144</span>  /**<a name="line.144"></a>
+<span class="sourceLineNo">145</span>   * This tests to validate the HMaster's ConnectorServer after unauthorised shutdown call.<a name="line.145"></a>
+<span class="sourceLineNo">146</span>   */<a name="line.146"></a>
+<span class="sourceLineNo">147</span>  @Test(timeout = 180000)<a name="line.147"></a>
+<span class="sourceLineNo">148</span>  public void testHMConnectorServerWhenShutdownCluster() throws Exception {<a name="line.148"></a>
+<span class="sourceLineNo">149</span>    conf.set(CoprocessorHost.MASTER_COPROCESSOR_CONF_KEY,<a name="line.149"></a>
+<span class="sourceLineNo">150</span>      JMXListener.class.getName() + "," + MyAccessController.class.getName());<a name="line.150"></a>
+<span class="sourceLineNo">151</span>    conf.setInt("master.rmi.registry.port", rmiRegistryPort);<a name="line.151"></a>
+<span class="sourceLineNo">152</span><a name="line.152"></a>
+<span class="sourceLineNo">153</span>    UTIL.startMiniCluster();<a name="line.153"></a>
+<span class="sourceLineNo">154</span>    admin = UTIL.getConnection().getAdmin();<a name="line.154"></a>
+<span class="sourceLineNo">155</span><a name="line.155"></a>
+<span class="sourceLineNo">156</span>    boolean accessDenied = false;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>    try {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>      hasAccess = false;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>      LOG.info("Stopping HMaster...");<a name="line.159"></a>
+<span class="sourceLineNo">160</span>      admin.shutdown();<a name="line.160"></a>
+<span class="sourceLineNo">161</span>    } catch (AccessDeniedException e) {<a name="line.161"></a>
+<span class="sourceLineNo">162</span>      LOG.error("Exception occurred while stopping HMaster. ", e);<a name="line.162"></a>
+<span class="sourceLineNo">163</span>      accessDenied = true;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>    }<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    Assert.assertTrue(accessDenied);<a name="line.165"></a>
+<span class="sourceLineNo">166</span><a name="line.166"></a>
+<span class="sourceLineNo">167</span>    // Check whether HMaster JMX Connector server can be connected<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    JMXConnector connector = null;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    try {<a name="line.169"></a>
+<span class="sourceLineNo">170</span>      connector = JMXConnectorFactory<a name="line.170"></a>
+<span class="sourceLineNo">171</span>          .connect(JMXListener.buildJMXServiceURL(rmiRegistryPort, rmiRegistryPort));<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    } catch (IOException e) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>      if (e.getCause() instanceof ServiceUnavailableException) {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>        Assert.fail("Can't connect to HMaster ConnectorServer.");<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>    Assert.assertNotNull("JMXConnector should not be null.", connector);<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    connector.close();<a name="line.178"></a>
+<span class="sourceLineNo">179</span>  }<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span>  /*<a name="line.181"></a>
+<span class="sourceLineNo">182</span>   * Customized class for test case execution which will throw ACD exception while executing<a name="line.182"></a>
+<span class="sourceLineNo">183</span>   * stopMaster/preStopRegionServer/preShutdown explicitly.<a name="line.183"></a>
+<span class="sourceLineNo">184</span>   */<a name="line.184"></a>
+<span class="sourceLineNo">185</span>  public static class MyAccessController extends AccessController {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>    @Override<a name="line.186"></a>
+<span class="sourceLineNo">187</span>    public void postStartMaster(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx) throws IOException {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>      // Do nothing. In particular, stop the creation of the hbase:acl table. It makes the<a name="line.188"></a>
+<span class="sourceLineNo">189</span>      // shutdown take time.<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    }<a name="line.190"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>    @Override<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    public void preStopMaster(ObserverContext&lt;MasterCoprocessorEnvironment&gt; c) throws IOException {<a name="line.193"></a>
 <span class="sourceLineNo">194</span>      if (!hasAccess) {<a name="line.194"></a>
-<span class="sourceLineNo">195</span>        throw new AccessDeniedException("Insufficient permissions to stop region server.");<a name="line.195"></a>
+<span class="sourceLineNo">195</span>        throw new AccessDeniedException("Insufficient permissions to stop master");<a name="line.195"></a>
 <span class="sourceLineNo">196</span>      }<a name="line.196"></a>
 <span class="sourceLineNo">197</span>    }<a name="line.197"></a>
 <span class="sourceLineNo">198</span><a name="line.198"></a>
 <span class="sourceLineNo">199</span>    @Override<a name="line.199"></a>
-<span class="sourceLineNo">200</span>    public void preShutdown(ObserverContext&lt;MasterCoprocessorEnvironment&gt; c) throws IOException {<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      if (!hasAccess) {<a name="line.201"></a>
-<span class="sourceLineNo">202</span>        throw new AccessDeniedException("Insufficient permissions to shut down cluster.");<a name="line.202"></a>
-<span class="sourceLineNo">203</span>      }<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    }<a name="line.204"></a>
-<span class="sourceLineNo">205</span><a name="line.205"></a>
-<span class="sourceLineNo">206</span>    @Override<a name="line.206"></a>
-<span class="sourceLineNo">207</span>    public void preExecuteProcedures(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx)<a name="line.207"></a>
-<span class="sourceLineNo">208</span>        throws IOException {<a name="line.208"></a>
-<span class="sourceLineNo">209</span>      // FIXME: ignore the procedure permission check since in our UT framework master is neither<a name="line.209"></a>
-<span class="sourceLineNo">210</span>      // the systemuser nor the superuser so we can not call executeProcedures...<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    }<a name="line.211"></a>
-<span class="sourceLineNo">212</span>  }<a name="line.212"></a>
-<span class="sourceLineNo">213</span>}<a name="line.213"></a>
+<span class="sourceLineNo">200</span>    public void preStopRegionServer(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx)<a name="line.200"></a>
+<span class="sourceLineNo">201</span>        throws IOException {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>      if (!hasAccess) {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>        throw new AccessDeniedException("Insufficient permissions to stop region server.");<a name="line.203"></a>
+<span class="sourceLineNo">204</span>      }<a name="line.204"></a>
+<span class="sourceLineNo">205</span>    }<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span>    @Override<a name="line.207"></a>
+<span class="sourceLineNo">208</span>    public void preShutdown(ObserverContext&lt;MasterCoprocessorEnvironment&gt; c) throws IOException {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>      if (!hasAccess) {<a name="line.209"></a>
+<span class="sourceLineNo">210</span>        throw new AccessDeniedException("Insufficient permissions to shut down cluster.");<a name="line.210"></a>
+<span class="sourceLineNo">211</span>      }<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    }<a name="line.212"></a>
+<span class="sourceLineNo">213</span><a name="line.213"></a>
+<span class="sourceLineNo">214</span>    @Override<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    public void preExecuteProcedures(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx)<a name="line.215"></a>
+<span class="sourceLineNo">216</span>        throws IOException {<a name="line.216"></a>
+<span class="sourceLineNo">217</span>      // FIXME: ignore the procedure permission check since in our UT framework master is neither<a name="line.217"></a>
+<span class="sourceLineNo">218</span>      // the systemuser nor the superuser so we can not call executeProcedures...<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    }<a name="line.219"></a>
+<span class="sourceLineNo">220</span>  }<a name="line.220"></a>
+<span class="sourceLineNo">221</span>}<a name="line.221"></a>
 
 
 


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html
index 24db4ca..bf924bf 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html
@@ -6,7 +6,7 @@
 </head>
 <body>
 <div class="sourceContainer">
-<pre><span class="sourceLineNo">001</span>/**<a name="line.1"></a>
+<pre><span class="sourceLineNo">001</span>/*<a name="line.1"></a>
 <span class="sourceLineNo">002</span> *<a name="line.2"></a>
 <span class="sourceLineNo">003</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.3"></a>
 <span class="sourceLineNo">004</span> * or more contributor license agreements.  See the NOTICE file<a name="line.4"></a>
@@ -71,437 +71,439 @@
 <span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.63"></a>
 <span class="sourceLineNo">064</span>import org.junit.AfterClass;<a name="line.64"></a>
 <span class="sourceLineNo">065</span>import org.junit.BeforeClass;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.junit.Test;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.junit.experimental.categories.Category;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.slf4j.Logger;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.slf4j.LoggerFactory;<a name="line.69"></a>
-<span class="sourceLineNo">070</span><a name="line.70"></a>
-<span class="sourceLineNo">071</span>@Category(MediumTests.class)<a name="line.71"></a>
-<span class="sourceLineNo">072</span>public class TestRegionServerReadRequestMetrics {<a name="line.72"></a>
-<span class="sourceLineNo">073</span>  private static final Logger LOG =<a name="line.73"></a>
-<span class="sourceLineNo">074</span>      LoggerFactory.getLogger(TestRegionServerReadRequestMetrics.class);<a name="line.74"></a>
-<span class="sourceLineNo">075</span>  private static final HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();<a name="line.75"></a>
-<span class="sourceLineNo">076</span>  private static final TableName TABLE_NAME = TableName.valueOf("test");<a name="line.76"></a>
-<span class="sourceLineNo">077</span>  private static final byte[] CF1 = "c1".getBytes();<a name="line.77"></a>
-<span class="sourceLineNo">078</span>  private static final byte[] CF2 = "c2".getBytes();<a name="line.78"></a>
-<span class="sourceLineNo">079</span><a name="line.79"></a>
-<span class="sourceLineNo">080</span>  private static final byte[] ROW1 = "a".getBytes();<a name="line.80"></a>
-<span class="sourceLineNo">081</span>  private static final byte[] ROW2 = "b".getBytes();<a name="line.81"></a>
-<span class="sourceLineNo">082</span>  private static final byte[] ROW3 = "c".getBytes();<a name="line.82"></a>
-<span class="sourceLineNo">083</span>  private static final byte[] COL1 = "q1".getBytes();<a name="line.83"></a>
-<span class="sourceLineNo">084</span>  private static final byte[] COL2 = "q2".getBytes();<a name="line.84"></a>
-<span class="sourceLineNo">085</span>  private static final byte[] COL3 = "q3".getBytes();<a name="line.85"></a>
-<span class="sourceLineNo">086</span>  private static final byte[] VAL1 = "v1".getBytes();<a name="line.86"></a>
-<span class="sourceLineNo">087</span>  private static final byte[] VAL2 = "v2".getBytes();<a name="line.87"></a>
-<span class="sourceLineNo">088</span>  private static final byte[] VAL3 = Bytes.toBytes(0L);<a name="line.88"></a>
-<span class="sourceLineNo">089</span><a name="line.89"></a>
-<span class="sourceLineNo">090</span>  private static final int MAX_TRY = 20;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>  private static final int SLEEP_MS = 100;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>  private static final int TTL = 1;<a name="line.92"></a>
-<span class="sourceLineNo">093</span><a name="line.93"></a>
-<span class="sourceLineNo">094</span>  private static Admin admin;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>  private static Collection&lt;ServerName&gt; serverNames;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>  private static Table table;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>  private static RegionInfo regionInfo;<a name="line.97"></a>
-<span class="sourceLineNo">098</span><a name="line.98"></a>
-<span class="sourceLineNo">099</span>  private static Map&lt;Metric, Long&gt; requestsMap = new HashMap&lt;&gt;();<a name="line.99"></a>
-<span class="sourceLineNo">100</span>  private static Map&lt;Metric, Long&gt; requestsMapPrev = new HashMap&lt;&gt;();<a name="line.100"></a>
-<span class="sourceLineNo">101</span><a name="line.101"></a>
-<span class="sourceLineNo">102</span>  @BeforeClass<a name="line.102"></a>
-<span class="sourceLineNo">103</span>  public static void setUpOnce() throws Exception {<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    // Default starts one regionserver only.<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    TEST_UTIL.getConfiguration().setBoolean(LoadBalancer.TABLES_ON_MASTER, true);<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    TEST_UTIL.getConfiguration().setBoolean(LoadBalancer.SYSTEM_TABLES_ON_MASTER, true);<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    TEST_UTIL.startMiniCluster();<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    admin = TEST_UTIL.getAdmin();<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    serverNames = admin.getClusterMetrics(EnumSet.of(Option.LIVE_SERVERS))<a name="line.109"></a>
-<span class="sourceLineNo">110</span>      .getLiveServerMetrics().keySet();<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    table = createTable();<a name="line.111"></a>
-<span class="sourceLineNo">112</span>    putData();<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    List&lt;RegionInfo&gt; regions = admin.getRegions(TABLE_NAME);<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    assertEquals("Table " + TABLE_NAME + " should have 1 region", 1, regions.size());<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    regionInfo = regions.get(0);<a name="line.115"></a>
-<span class="sourceLineNo">116</span><a name="line.116"></a>
-<span class="sourceLineNo">117</span>    for (Metric metric : Metric.values()) {<a name="line.117"></a>
-<span class="sourceLineNo">118</span>      requestsMap.put(metric, 0L);<a name="line.118"></a>
-<span class="sourceLineNo">119</span>      requestsMapPrev.put(metric, 0L);<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    }<a name="line.120"></a>
-<span class="sourceLineNo">121</span>  }<a name="line.121"></a>
-<span class="sourceLineNo">122</span><a name="line.122"></a>
-<span class="sourceLineNo">123</span>  private static Table createTable() throws IOException {<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    TableDescriptorBuilder builder = TableDescriptorBuilder.newBuilder(TABLE_NAME);<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    builder.addColumnFamily(ColumnFamilyDescriptorBuilder.of(CF1));<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    builder.addColumnFamily(ColumnFamilyDescriptorBuilder.newBuilder(CF2).setTimeToLive(TTL)<a name="line.126"></a>
-<span class="sourceLineNo">127</span>        .build());<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    admin.createTable(builder.build());<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    return TEST_UTIL.getConnection().getTable(TABLE_NAME);<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>  private static void testReadRequests(long resultCount,<a name="line.132"></a>
-<span class="sourceLineNo">133</span>    long expectedReadRequests, long expectedFilteredReadRequests)<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    throws IOException, InterruptedException {<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    updateMetricsMap();<a name="line.135"></a>
-<span class="sourceLineNo">136</span>    System.out.println("requestsMapPrev = " + requestsMapPrev);<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    System.out.println("requestsMap = " + requestsMap);<a name="line.137"></a>
-<span class="sourceLineNo">138</span><a name="line.138"></a>
-<span class="sourceLineNo">139</span>    assertEquals(expectedReadRequests,<a name="line.139"></a>
-<span class="sourceLineNo">140</span>      requestsMap.get(Metric.REGION_READ) - requestsMapPrev.get(Metric.REGION_READ));<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    boolean tablesOnMaster = LoadBalancer.isTablesOnMaster(TEST_UTIL.getConfiguration());<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    if (tablesOnMaster) {<a name="line.142"></a>
-<span class="sourceLineNo">143</span>      // If NO tables on master, then the single regionserver in this test carries user-space<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      // tables and the meta table. The first time through, the read will be inflated by meta<a name="line.144"></a>
-<span class="sourceLineNo">145</span>      // lookups. We don't know which test will be first through since junit randomizes. This<a name="line.145"></a>
-<span class="sourceLineNo">146</span>      // method is used by a bunch of tests. Just do this check if master is hosting (system)<a name="line.146"></a>
-<span class="sourceLineNo">147</span>      // regions only.<a name="line.147"></a>
-<span class="sourceLineNo">148</span>      assertEquals(expectedReadRequests,<a name="line.148"></a>
-<span class="sourceLineNo">149</span>      requestsMap.get(Metric.SERVER_READ) - requestsMapPrev.get(Metric.SERVER_READ));<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    }<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    assertEquals(expectedFilteredReadRequests,<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      requestsMap.get(Metric.FILTERED_REGION_READ)<a name="line.152"></a>
-<span class="sourceLineNo">153</span>        - requestsMapPrev.get(Metric.FILTERED_REGION_READ));<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    assertEquals(expectedFilteredReadRequests,<a name="line.154"></a>
-<span class="sourceLineNo">155</span>      requestsMap.get(Metric.FILTERED_SERVER_READ)<a name="line.155"></a>
-<span class="sourceLineNo">156</span>        - requestsMapPrev.get(Metric.FILTERED_SERVER_READ));<a name="line.156"></a>
-<span class="sourceLineNo">157</span>    assertEquals(expectedReadRequests, resultCount);<a name="line.157"></a>
-<span class="sourceLineNo">158</span>  }<a name="line.158"></a>
-<span class="sourceLineNo">159</span><a name="line.159"></a>
-<span class="sourceLineNo">160</span>  private static void updateMetricsMap() throws IOException, InterruptedException {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    for (Metric metric : Metric.values()) {<a name="line.161"></a>
-<span class="sourceLineNo">162</span>      requestsMapPrev.put(metric, requestsMap.get(metric));<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>    ServerLoad serverLoad = null;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>    RegionLoad regionLoadOuter = null;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>    boolean metricsUpdated = false;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    for (int i = 0; i &lt; MAX_TRY; i++) {<a name="line.168"></a>
-<span class="sourceLineNo">169</span>      for (ServerName serverName : serverNames) {<a name="line.169"></a>
-<span class="sourceLineNo">170</span>        serverLoad = new ServerLoad(admin.getClusterMetrics(EnumSet.of(Option.LIVE_SERVERS))<a name="line.170"></a>
-<span class="sourceLineNo">171</span>          .getLiveServerMetrics().get(serverName));<a name="line.171"></a>
-<span class="sourceLineNo">172</span><a name="line.172"></a>
-<span class="sourceLineNo">173</span>        Map&lt;byte[], RegionLoad&gt; regionsLoad = serverLoad.getRegionsLoad();<a name="line.173"></a>
-<span class="sourceLineNo">174</span>        RegionLoad regionLoad = regionsLoad.get(regionInfo.getRegionName());<a name="line.174"></a>
-<span class="sourceLineNo">175</span>        if (regionLoad != null) {<a name="line.175"></a>
-<span class="sourceLineNo">176</span>          regionLoadOuter = regionLoad;<a name="line.176"></a>
-<span class="sourceLineNo">177</span>          for (Metric metric : Metric.values()) {<a name="line.177"></a>
-<span class="sourceLineNo">178</span>            if (getReadRequest(serverLoad, regionLoad, metric) &gt; requestsMapPrev.get(metric)) {<a name="line.178"></a>
-<span class="sourceLineNo">179</span>              for (Metric metricInner : Metric.values()) {<a name="line.179"></a>
-<span class="sourceLineNo">180</span>                requestsMap.put(metricInner, getReadRequest(serverLoad, regionLoad, metricInner));<a name="line.180"></a>
-<span class="sourceLineNo">181</span>              }<a name="line.181"></a>
-<span class="sourceLineNo">182</span>              metricsUpdated = true;<a name="line.182"></a>
-<span class="sourceLineNo">183</span>              break;<a name="line.183"></a>
-<span class="sourceLineNo">184</span>            }<a name="line.184"></a>
-<span class="sourceLineNo">185</span>          }<a name="line.185"></a>
-<span class="sourceLineNo">186</span>        }<a name="line.186"></a>
-<span class="sourceLineNo">187</span>      }<a name="line.187"></a>
-<span class="sourceLineNo">188</span>      if (metricsUpdated) {<a name="line.188"></a>
-<span class="sourceLineNo">189</span>        break;<a name="line.189"></a>
-<span class="sourceLineNo">190</span>      }<a name="line.190"></a>
-<span class="sourceLineNo">191</span>      Thread.sleep(SLEEP_MS);<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    }<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    if (!metricsUpdated) {<a name="line.193"></a>
-<span class="sourceLineNo">194</span>      for (Metric metric : Metric.values()) {<a name="line.194"></a>
-<span class="sourceLineNo">195</span>        requestsMap.put(metric, getReadRequest(serverLoad, regionLoadOuter, metric));<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      }<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    }<a name="line.197"></a>
-<span class="sourceLineNo">198</span>  }<a name="line.198"></a>
-<span class="sourceLineNo">199</span><a name="line.199"></a>
-<span class="sourceLineNo">200</span>  private static long getReadRequest(ServerLoad serverLoad, RegionLoad regionLoad, Metric metric) {<a name="line.200"></a>
-<span class="sourceLineNo">201</span>    switch (metric) {<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      case REGION_READ:<a name="line.202"></a>
-<span class="sourceLineNo">203</span>        return regionLoad.getReadRequestsCount();<a name="line.203"></a>
-<span class="sourceLineNo">204</span>      case SERVER_READ:<a name="line.204"></a>
-<span class="sourceLineNo">205</span>        return serverLoad.getReadRequestsCount();<a name="line.205"></a>
-<span class="sourceLineNo">206</span>      case FILTERED_REGION_READ:<a name="line.206"></a>
-<span class="sourceLineNo">207</span>        return regionLoad.getFilteredReadRequestsCount();<a name="line.207"></a>
-<span class="sourceLineNo">208</span>      case FILTERED_SERVER_READ:<a name="line.208"></a>
-<span class="sourceLineNo">209</span>        return serverLoad.getFilteredReadRequestsCount();<a name="line.209"></a>
-<span class="sourceLineNo">210</span>      default:<a name="line.210"></a>
-<span class="sourceLineNo">211</span>        throw new IllegalStateException();<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    }<a name="line.212"></a>
-<span class="sourceLineNo">213</span>  }<a name="line.213"></a>
-<span class="sourceLineNo">214</span><a name="line.214"></a>
-<span class="sourceLineNo">215</span>  private static void putData() throws IOException {<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    Put put;<a name="line.216"></a>
-<span class="sourceLineNo">217</span><a name="line.217"></a>
-<span class="sourceLineNo">218</span>    put = new Put(ROW1);<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    put.addColumn(CF1, COL1, VAL1);<a name="line.219"></a>
-<span class="sourceLineNo">220</span>    put.addColumn(CF1, COL2, VAL2);<a name="line.220"></a>
-<span class="sourceLineNo">221</span>    put.addColumn(CF1, COL3, VAL3);<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    table.put(put);<a name="line.222"></a>
-<span class="sourceLineNo">223</span>    put = new Put(ROW2);<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    put.addColumn(CF1, COL1, VAL2);  // put val2 instead of val1<a name="line.224"></a>
-<span class="sourceLineNo">225</span>    put.addColumn(CF1, COL2, VAL2);<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    table.put(put);<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    put = new Put(ROW3);<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    put.addColumn(CF1, COL1, VAL1);<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    put.addColumn(CF1, COL2, VAL2);<a name="line.229"></a>
-<span class="sourceLineNo">230</span>    table.put(put);<a name="line.230"></a>
-<span class="sourceLineNo">231</span>  }<a name="line.231"></a>
-<span class="sourceLineNo">232</span><a name="line.232"></a>
-<span class="sourceLineNo">233</span>  private static void putTTLExpiredData() throws IOException, InterruptedException {<a name="line.233"></a>
-<span class="sourceLineNo">234</span>    Put put;<a name="line.234"></a>
-<span class="sourceLineNo">235</span><a name="line.235"></a>
-<span class="sourceLineNo">236</span>    put = new Put(ROW1);<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    put.addColumn(CF2, COL1, VAL1);<a name="line.237"></a>
-<span class="sourceLineNo">238</span>    put.addColumn(CF2, COL2, VAL2);<a name="line.238"></a>
-<span class="sourceLineNo">239</span>    table.put(put);<a name="line.239"></a>
-<span class="sourceLineNo">240</span><a name="line.240"></a>
-<span class="sourceLineNo">241</span>    Thread.sleep(TTL * 1000);<a name="line.241"></a>
+<span class="sourceLineNo">066</span>import org.junit.Ignore;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.junit.Test;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.junit.experimental.categories.Category;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.slf4j.Logger;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.slf4j.LoggerFactory;<a name="line.70"></a>
+<span class="sourceLineNo">071</span><a name="line.71"></a>
+<span class="sourceLineNo">072</span>@Ignore // Depends on Master being able to host regions. Needs fixing.<a name="line.72"></a>
+<span class="sourceLineNo">073</span>@Category(MediumTests.class)<a name="line.73"></a>
+<span class="sourceLineNo">074</span>public class TestRegionServerReadRequestMetrics {<a name="line.74"></a>
+<span class="sourceLineNo">075</span>  private static final Logger LOG =<a name="line.75"></a>
+<span class="sourceLineNo">076</span>      LoggerFactory.getLogger(TestRegionServerReadRequestMetrics.class);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>  private static final HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();<a name="line.77"></a>
+<span class="sourceLineNo">078</span>  private static final TableName TABLE_NAME = TableName.valueOf("test");<a name="line.78"></a>
+<span class="sourceLineNo">079</span>  private static final byte[] CF1 = "c1".getBytes();<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  private static final byte[] CF2 = "c2".getBytes();<a name="line.80"></a>
+<span class="sourceLineNo">081</span><a name="line.81"></a>
+<span class="sourceLineNo">082</span>  private static final byte[] ROW1 = "a".getBytes();<a name="line.82"></a>
+<span class="sourceLineNo">083</span>  private static final byte[] ROW2 = "b".getBytes();<a name="line.83"></a>
+<span class="sourceLineNo">084</span>  private static final byte[] ROW3 = "c".getBytes();<a name="line.84"></a>
+<span class="sourceLineNo">085</span>  private static final byte[] COL1 = "q1".getBytes();<a name="line.85"></a>
+<span class="sourceLineNo">086</span>  private static final byte[] COL2 = "q2".getBytes();<a name="line.86"></a>
+<span class="sourceLineNo">087</span>  private static final byte[] COL3 = "q3".getBytes();<a name="line.87"></a>
+<span class="sourceLineNo">088</span>  private static final byte[] VAL1 = "v1".getBytes();<a name="line.88"></a>
+<span class="sourceLineNo">089</span>  private static final byte[] VAL2 = "v2".getBytes();<a name="line.89"></a>
+<span class="sourceLineNo">090</span>  private static final byte[] VAL3 = Bytes.toBytes(0L);<a name="line.90"></a>
+<span class="sourceLineNo">091</span><a name="line.91"></a>
+<span class="sourceLineNo">092</span>  private static final int MAX_TRY = 20;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>  private static final int SLEEP_MS = 100;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>  private static final int TTL = 1;<a name="line.94"></a>
+<span class="sourceLineNo">095</span><a name="line.95"></a>
+<span class="sourceLineNo">096</span>  private static Admin admin;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>  private static Collection&lt;ServerName&gt; serverNames;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>  private static Table table;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>  private static RegionInfo regionInfo;<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>  private static Map&lt;Metric, Long&gt; requestsMap = new HashMap&lt;&gt;();<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  private static Map&lt;Metric, Long&gt; requestsMapPrev = new HashMap&lt;&gt;();<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>  @BeforeClass<a name="line.104"></a>
+<span class="sourceLineNo">105</span>  public static void setUpOnce() throws Exception {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    // Default starts one regionserver only.<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    TEST_UTIL.getConfiguration().setBoolean(LoadBalancer.TABLES_ON_MASTER, true);<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    TEST_UTIL.getConfiguration().setBoolean(LoadBalancer.SYSTEM_TABLES_ON_MASTER, true);<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    TEST_UTIL.startMiniCluster();<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    admin = TEST_UTIL.getAdmin();<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    serverNames = admin.getClusterMetrics(EnumSet.of(Option.LIVE_SERVERS))<a name="line.111"></a>
+<span class="sourceLineNo">112</span>      .getLiveServerMetrics().keySet();<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    table = createTable();<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    putData();<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    List&lt;RegionInfo&gt; regions = admin.getRegions(TABLE_NAME);<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    assertEquals("Table " + TABLE_NAME + " should have 1 region", 1, regions.size());<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    regionInfo = regions.get(0);<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>    for (Metric metric : Metric.values()) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>      requestsMap.put(metric, 0L);<a name="line.120"></a>
+<span class="sourceLineNo">121</span>      requestsMapPrev.put(metric, 0L);<a name="line.121"></a>
+<span class="sourceLineNo">122</span>    }<a name="line.122"></a>
+<span class="sourceLineNo">123</span>  }<a name="line.123"></a>
+<span class="sourceLineNo">124</span><a name="line.124"></a>
+<span class="sourceLineNo">125</span>  private static Table createTable() throws IOException {<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    TableDescriptorBuilder builder = TableDescriptorBuilder.newBuilder(TABLE_NAME);<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    builder.addColumnFamily(ColumnFamilyDescriptorBuilder.of(CF1));<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    builder.addColumnFamily(ColumnFamilyDescriptorBuilder.newBuilder(CF2).setTimeToLive(TTL)<a name="line.128"></a>
+<span class="sourceLineNo">129</span>        .build());<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    admin.createTable(builder.build());<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    return TEST_UTIL.getConnection().getTable(TABLE_NAME);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>  }<a name="line.132"></a>
+<span class="sourceLineNo">133</span><a name="line.133"></a>
+<span class="sourceLineNo">134</span>  private static void testReadRequests(long resultCount,<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    long expectedReadRequests, long expectedFilteredReadRequests)<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    throws IOException, InterruptedException {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>    updateMetricsMap();<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    System.out.println("requestsMapPrev = " + requestsMapPrev);<a name="line.138"></a>
+<span class="sourceLineNo">139</span>    System.out.println("requestsMap = " + requestsMap);<a name="line.139"></a>
+<span class="sourceLineNo">140</span><a name="line.140"></a>
+<span class="sourceLineNo">141</span>    assertEquals(expectedReadRequests,<a name="line.141"></a>
+<span class="sourceLineNo">142</span>      requestsMap.get(Metric.REGION_READ) - requestsMapPrev.get(Metric.REGION_READ));<a name="line.142"></a>
+<span class="sourceLineNo">143</span>    boolean tablesOnMaster = LoadBalancer.isTablesOnMaster(TEST_UTIL.getConfiguration());<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    if (tablesOnMaster) {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>      // If NO tables on master, then the single regionserver in this test carries user-space<a name="line.145"></a>
+<span class="sourceLineNo">146</span>      // tables and the meta table. The first time through, the read will be inflated by meta<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      // lookups. We don't know which test will be first through since junit randomizes. This<a name="line.147"></a>
+<span class="sourceLineNo">148</span>      // method is used by a bunch of tests. Just do this check if master is hosting (system)<a name="line.148"></a>
+<span class="sourceLineNo">149</span>      // regions only.<a name="line.149"></a>
+<span class="sourceLineNo">150</span>      assertEquals(expectedReadRequests,<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      requestsMap.get(Metric.SERVER_READ) - requestsMapPrev.get(Metric.SERVER_READ));<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    }<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    assertEquals(expectedFilteredReadRequests,<a name="line.153"></a>
+<span class="sourceLineNo">154</span>      requestsMap.get(Metric.FILTERED_REGION_READ)<a name="line.154"></a>
+<span class="sourceLineNo">155</span>        - requestsMapPrev.get(Metric.FILTERED_REGION_READ));<a name="line.155"></a>
+<span class="sourceLineNo">156</span>    assertEquals(expectedFilteredReadRequests,<a name="line.156"></a>
+<span class="sourceLineNo">157</span>      requestsMap.get(Metric.FILTERED_SERVER_READ)<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        - requestsMapPrev.get(Metric.FILTERED_SERVER_READ));<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    assertEquals(expectedReadRequests, resultCount);<a name="line.159"></a>
+<span class="sourceLineNo">160</span>  }<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>  private static void updateMetricsMap() throws IOException, InterruptedException {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>    for (Metric metric : Metric.values()) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span>      requestsMapPrev.put(metric, requestsMap.get(metric));<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    }<a name="line.165"></a>
+<span class="sourceLineNo">166</span><a name="line.166"></a>
+<span class="sourceLineNo">167</span>    ServerLoad serverLoad = null;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    RegionLoad regionLoadOuter = null;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    boolean metricsUpdated = false;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    for (int i = 0; i &lt; MAX_TRY; i++) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>      for (ServerName serverName : serverNames) {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>        serverLoad = new ServerLoad(admin.getClusterMetrics(EnumSet.of(Option.LIVE_SERVERS))<a name="line.172"></a>
+<span class="sourceLineNo">173</span>          .getLiveServerMetrics().get(serverName));<a name="line.173"></a>
+<span class="sourceLineNo">174</span><a name="line.174"></a>
+<span class="sourceLineNo">175</span>        Map&lt;byte[], RegionLoad&gt; regionsLoad = serverLoad.getRegionsLoad();<a name="line.175"></a>
+<span class="sourceLineNo">176</span>        RegionLoad regionLoad = regionsLoad.get(regionInfo.getRegionName());<a name="line.176"></a>
+<span class="sourceLineNo">177</span>        if (regionLoad != null) {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>          regionLoadOuter = regionLoad;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>          for (Metric metric : Metric.values()) {<a name="line.179"></a>
+<span class="sourceLineNo">180</span>            if (getReadRequest(serverLoad, regionLoad, metric) &gt; requestsMapPrev.get(metric)) {<a name="line.180"></a>
+<span class="sourceLineNo">181</span>              for (Metric metricInner : Metric.values()) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                requestsMap.put(metricInner, getReadRequest(serverLoad, regionLoad, metricInner));<a name="line.182"></a>
+<span class="sourceLineNo">183</span>              }<a name="line.183"></a>
+<span class="sourceLineNo">184</span>              metricsUpdated = true;<a name="line.184"></a>
+<span class="sourceLineNo">185</span>              break;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>            }<a name="line.186"></a>
+<span class="sourceLineNo">187</span>          }<a name="line.187"></a>
+<span class="sourceLineNo">188</span>        }<a name="line.188"></a>
+<span class="sourceLineNo">189</span>      }<a name="line.189"></a>
+<span class="sourceLineNo">190</span>      if (metricsUpdated) {<a name="line.190"></a>
+<span class="sourceLineNo">191</span>        break;<a name="line.191"></a>
+<span class="sourceLineNo">192</span>      }<a name="line.192"></a>
+<span class="sourceLineNo">193</span>      Thread.sleep(SLEEP_MS);<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    }<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    if (!metricsUpdated) {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>      for (Metric metric : Metric.values()) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>        requestsMap.put(metric, getReadRequest(serverLoad, regionLoadOuter, metric));<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>  }<a name="line.200"></a>
+<span class="sourceLineNo">201</span><a name="line.201"></a>
+<span class="sourceLineNo">202</span>  private static long getReadRequest(ServerLoad serverLoad, RegionLoad regionLoad, Metric metric) {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>    switch (metric) {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>      case REGION_READ:<a name="line.204"></a>
+<span class="sourceLineNo">205</span>        return regionLoad.getReadRequestsCount();<a name="line.205"></a>
+<span class="sourceLineNo">206</span>      case SERVER_READ:<a name="line.206"></a>
+<span class="sourceLineNo">207</span>        return serverLoad.getReadRequestsCount();<a name="line.207"></a>
+<span class="sourceLineNo">208</span>      case FILTERED_REGION_READ:<a name="line.208"></a>
+<span class="sourceLineNo">209</span>        return regionLoad.getFilteredReadRequestsCount();<a name="line.209"></a>
+<span class="sourceLineNo">210</span>      case FILTERED_SERVER_READ:<a name="line.210"></a>
+<span class="sourceLineNo">211</span>        return serverLoad.getFilteredReadRequestsCount();<a name="line.211"></a>
+<span class="sourceLineNo">212</span>      default:<a name="line.212"></a>
+<span class="sourceLineNo">213</span>        throw new IllegalStateException();<a name="line.213"></a>
+<span class="sourceLineNo">214</span>    }<a name="line.214"></a>
+<span class="sourceLineNo">215</span>  }<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>  private static void putData() throws IOException {<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    Put put;<a name="line.218"></a>
+<span class="sourceLineNo">219</span><a name="line.219"></a>
+<span class="sourceLineNo">220</span>    put = new Put(ROW1);<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    put.addColumn(CF1, COL1, VAL1);<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    put.addColumn(CF1, COL2, VAL2);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    put.addColumn(CF1, COL3, VAL3);<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    table.put(put);<a name="line.224"></a>
+<span class="sourceLineNo">225</span>    put = new Put(ROW2);<a name="line.225"></a>
+<span class="sourceLineNo">226</span>    put.addColumn(CF1, COL1, VAL2);  // put val2 instead of val1<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    put.addColumn(CF1, COL2, VAL2);<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    table.put(put);<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    put = new Put(ROW3);<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    put.addColumn(CF1, COL1, VAL1);<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    put.addColumn(CF1, COL2, VAL2);<a name="line.231"></a>
+<span class="sourceLineNo">232</span>    table.put(put);<a name="line.232"></a>
+<span class="sourceLineNo">233</span>  }<a name="line.233"></a>
+<span class="sourceLineNo">234</span><a name="line.234"></a>
+<span class="sourceLineNo">235</span>  private static void putTTLExpiredData() throws IOException, InterruptedException {<a name="line.235"></a>
+<span class="sourceLineNo">236</span>    Put put;<a name="line.236"></a>
+<span class="sourceLineNo">237</span><a name="line.237"></a>
+<span class="sourceLineNo">238</span>    put = new Put(ROW1);<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    put.addColumn(CF2, COL1, VAL1);<a name="line.239"></a>
+<span class="sourceLineNo">240</span>    put.addColumn(CF2, COL2, VAL2);<a name="line.240"></a>
+<span class="sourceLineNo">241</span>    table.put(put);<a name="line.241"></a>
 <span class="sourceLineNo">242</span><a name="line.242"></a>
-<span class="sourceLineNo">243</span>    put = new Put(ROW2);<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    put.addColumn(CF2, COL1, VAL1);<a name="line.244"></a>
-<span class="sourceLineNo">245</span>    put.addColumn(CF2, COL2, VAL2);<a name="line.245"></a>
-<span class="sourceLineNo">246</span>    table.put(put);<a name="line.246"></a>
-<span class="sourceLineNo">247</span><a name="line.247"></a>
-<span class="sourceLineNo">248</span>    put = new Put(ROW3);<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    put.addColumn(CF2, COL1, VAL1);<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    put.addColumn(CF2, COL2, VAL2);<a name="line.250"></a>
-<span class="sourceLineNo">251</span>    table.put(put);<a name="line.251"></a>
-<span class="sourceLineNo">252</span>  }<a name="line.252"></a>
-<span class="sourceLineNo">253</span><a name="line.253"></a>
-<span class="sourceLineNo">254</span>  @AfterClass<a name="line.254"></a>
-<span class="sourceLineNo">255</span>  public static void tearDownOnce() throws Exception {<a name="line.255"></a>
-<span class="sourceLineNo">256</span>    TEST_UTIL.shutdownMiniCluster();<a name="line.256"></a>
-<span class="sourceLineNo">257</span>  }<a name="line.257"></a>
-<span class="sourceLineNo">258</span><a name="line.258"></a>
-<span class="sourceLineNo">259</span>  @Test<a name="line.259"></a>
-<span class="sourceLineNo">260</span>  public void testReadRequestsCountNotFiltered() throws Exception {<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    int resultCount;<a name="line.261"></a>
-<span class="sourceLineNo">262</span>    Scan scan;<a name="line.262"></a>
-<span class="sourceLineNo">263</span>    Append append;<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    Put put;<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    Increment increment;<a name="line.265"></a>
-<span class="sourceLineNo">266</span>    Get get;<a name="line.266"></a>
-<span class="sourceLineNo">267</span><a name="line.267"></a>
-<span class="sourceLineNo">268</span>    // test for scan<a name="line.268"></a>
-<span class="sourceLineNo">269</span>    scan = new Scan();<a name="line.269"></a>
-<span class="sourceLineNo">270</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.270"></a>
-<span class="sourceLineNo">271</span>      resultCount = 0;<a name="line.271"></a>
-<span class="sourceLineNo">272</span>      for (Result ignore : scanner) {<a name="line.272"></a>
-<span class="sourceLineNo">273</span>        resultCount++;<a name="line.273"></a>
-<span class="sourceLineNo">274</span>      }<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      testReadRequests(resultCount, 3, 0);<a name="line.275"></a>
-<span class="sourceLineNo">276</span>    }<a name="line.276"></a>
-<span class="sourceLineNo">277</span><a name="line.277"></a>
-<span class="sourceLineNo">278</span>    // test for scan<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    scan = new Scan(ROW2, ROW3);<a name="line.279"></a>
-<span class="sourceLineNo">280</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.280"></a>
-<span class="sourceLineNo">281</span>      resultCount = 0;<a name="line.281"></a>
-<span class="sourceLineNo">282</span>      for (Result ignore : scanner) {<a name="line.282"></a>
-<span class="sourceLineNo">283</span>        resultCount++;<a name="line.283"></a>
-<span class="sourceLineNo">284</span>      }<a name="line.284"></a>
-<span class="sourceLineNo">285</span>      testReadRequests(resultCount, 1, 0);<a name="line.285"></a>
-<span class="sourceLineNo">286</span>    }<a name="line.286"></a>
-<span class="sourceLineNo">287</span><a name="line.287"></a>
-<span class="sourceLineNo">288</span>    // test for get<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    get = new Get(ROW2);<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    Result result = table.get(get);<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    resultCount = result.isEmpty() ? 0 : 1;<a name="line.291"></a>
-<span class="sourceLineNo">292</span>    testReadRequests(resultCount, 1, 0);<a name="line.292"></a>
-<span class="sourceLineNo">293</span><a name="line.293"></a>
-<span class="sourceLineNo">294</span>    // test for increment<a name="line.294"></a>
-<span class="sourceLineNo">295</span>    increment = new Increment(ROW1);<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    increment.addColumn(CF1, COL3, 1);<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    result = table.increment(increment);<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    resultCount = result.isEmpty() ? 0 : 1;<a name="line.298"></a>
-<span class="sourceLineNo">299</span>    testReadRequests(resultCount, 1, 0);<a name="line.299"></a>
-<span class="sourceLineNo">300</span><a name="line.300"></a>
-<span class="sourceLineNo">301</span>    // test for checkAndPut<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    put = new Put(ROW1);<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    put.addColumn(CF1, COL2, VAL2);<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    boolean checkAndPut =<a name="line.304"></a>
-<span class="sourceLineNo">305</span>        table.checkAndMutate(ROW1, CF1).qualifier(COL2).ifEquals(VAL2).thenPut(put);<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    resultCount = checkAndPut ? 1 : 0;<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    testReadRequests(resultCount, 1, 0);<a name="line.307"></a>
-<span class="sourceLineNo">308</span><a name="line.308"></a>
-<span class="sourceLineNo">309</span>    // test for append<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    append = new Append(ROW1);<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    append.addColumn(CF1, COL2, VAL2);<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    result = table.append(append);<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    resultCount = result.isEmpty() ? 0 : 1;<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    testReadRequests(resultCount, 1, 0);<a name="line.314"></a>
-<span class="sourceLineNo">315</span><a name="line.315"></a>
-<span class="sourceLineNo">316</span>    // test for checkAndMutate<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    put = new Put(ROW1);<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    put.addColumn(CF1, COL1, VAL1);<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    RowMutations rm = new RowMutations(ROW1);<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    rm.add(put);<a name="line.320"></a>
-<span class="sourceLineNo">321</span>    boolean checkAndMutate =<a name="line.321"></a>
-<span class="sourceLineNo">322</span>        table.checkAndMutate(ROW1, CF1).qualifier(COL1).ifEquals(VAL1).thenMutate(rm);<a name="line.322"></a>
-<span class="sourceLineNo">323</span>    resultCount = checkAndMutate ? 1 : 0;<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    testReadRequests(resultCount, 1, 0);<a name="line.324"></a>
-<span class="sourceLineNo">325</span>  }<a name="line.325"></a>
-<span class="sourceLineNo">326</span><a name="line.326"></a>
-<span class="sourceLineNo">327</span>  @Test<a name="line.327"></a>
-<span class="sourceLineNo">328</span>  public void testReadRequestsCountWithFilter() throws Exception {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    int resultCount;<a name="line.329"></a>
-<span class="sourceLineNo">330</span>    Scan scan;<a name="line.330"></a>
-<span class="sourceLineNo">331</span><a name="line.331"></a>
-<span class="sourceLineNo">332</span>    // test for scan<a name="line.332"></a>
-<span class="sourceLineNo">333</span>    scan = new Scan();<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    scan.setFilter(new SingleColumnValueFilter(CF1, COL1, CompareFilter.CompareOp.EQUAL, VAL1));<a name="line.334"></a>
-<span class="sourceLineNo">335</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.335"></a>
-<span class="sourceLineNo">336</span>      resultCount = 0;<a name="line.336"></a>
-<span class="sourceLineNo">337</span>      for (Result ignore : scanner) {<a name="line.337"></a>
-<span class="sourceLineNo">338</span>        resultCount++;<a name="line.338"></a>
-<span class="sourceLineNo">339</span>      }<a name="line.339"></a>
-<span class="sourceLineNo">340</span>      testReadRequests(resultCount, 2, 1);<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    }<a name="line.341"></a>
-<span class="sourceLineNo">342</span><a name="line.342"></a>
-<span class="sourceLineNo">343</span>    // test for scan<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    scan = new Scan();<a name="line.344"></a>
-<span class="sourceLineNo">345</span>    scan.setFilter(new RowFilter(CompareFilter.CompareOp.EQUAL, new BinaryComparator(ROW1)));<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.346"></a>
-<span class="sourceLineNo">347</span>      resultCount = 0;<a name="line.347"></a>
-<span class="sourceLineNo">348</span>      for (Result ignore : scanner) {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>        resultCount++;<a name="line.349"></a>
-<span class="sourceLineNo">350</span>      }<a name="line.350"></a>
-<span class="sourceLineNo">351</span>      testReadRequests(resultCount, 1, 2);<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    }<a name="line.352"></a>
-<span class="sourceLineNo">353</span><a name="line.353"></a>
-<span class="sourceLineNo">354</span>    // test for scan<a name="line.354"></a>
-<span class="sourceLineNo">355</span>    scan = new Scan(ROW2, ROW3);<a name="line.355"></a>
-<span class="sourceLineNo">356</span>    scan.setFilter(new RowFilter(CompareFilter.CompareOp.EQUAL, new BinaryComparator(ROW1)));<a name="line.356"></a>
-<span class="sourceLineNo">357</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.357"></a>
-<span class="sourceLineNo">358</span>      resultCount = 0;<a name="line.358"></a>
-<span class="sourceLineNo">359</span>      for (Result ignore : scanner) {<a name="line.359"></a>
-<span class="sourceLineNo">360</span>        resultCount++;<a name="line.360"></a>
-<span class="sourceLineNo">361</span>      }<a name="line.361"></a>
-<span class="sourceLineNo">362</span>      testReadRequests(resultCount, 0, 1);<a name="line.362"></a>
-<span class="sourceLineNo">363</span>    }<a name="line.363"></a>
-<span class="sourceLineNo">364</span><a name="line.364"></a>
-<span class="sourceLineNo">365</span>    // fixme filtered get should not increase readRequestsCount<a name="line.365"></a>
-<span class="sourceLineNo">366</span>//    Get get = new Get(ROW2);<a name="line.366"></a>
-<span class="sourceLineNo">367</span>//    get.setFilter(new SingleColumnValueFilter(CF1, COL1, CompareFilter.CompareOp.EQUAL, VAL1));<a name="line.367"></a>
-<span class="sourceLineNo">368</span>//    Result result = table.get(get);<a name="line.368"></a>
-<span class="sourceLineNo">369</span>//    resultCount = result.isEmpty() ? 0 : 1;<a name="line.369"></a>
-<span class="sourceLineNo">370</span>//    testReadRequests(resultCount, 0, 1);<a name="line.370"></a>
-<span class="sourceLineNo">371</span>  }<a name="line.371"></a>
-<span class="sourceLineNo">372</span><a name="line.372"></a>
-<span class="sourceLineNo">373</span>  @Test<a name="line.373"></a>
-<span class="sourceLineNo">374</span>  public void testReadRequestsCountWithDeletedRow() throws Exception {<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    try {<a name="line.375"></a>
-<span class="sourceLineNo">376</span>      Delete delete = new Delete(ROW3);<a name="line.376"></a>
-<span class="sourceLineNo">377</span>      table.delete(delete);<a name="line.377"></a>
-<span class="sourceLineNo">378</span><a name="line.378"></a>
-<span class="sourceLineNo">379</span>      Scan scan = new Scan();<a name="line.379"></a>
-<span class="sourceLineNo">380</span>      try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>        int resultCount = 0;<a name="line.381"></a>
-<span class="sourceLineNo">382</span>        for (Result ignore : scanner) {<a name="line.382"></a>
-<span class="sourceLineNo">383</span>          resultCount++;<a name="line.383"></a>
-<span class="sourceLineNo">384</span>        }<a name="line.384"></a>
-<span class="sourceLineNo">385</span>        testReadRequests(resultCount, 2, 1);<a name="line.385"></a>
-<span class="sourceLineNo">386</span>      }<a name="line.386"></a>
-<span class="sourceLineNo">387</span>    } finally {<a name="line.387"></a>
-<span class="sourceLineNo">388</span>      Put put = new Put(ROW3);<a name="line.388"></a>
-<span class="sourceLineNo">389</span>      put.addColumn(CF1, COL1, VAL1);<a name="line.389"></a>
-<span class="sourceLineNo">390</span>      put.addColumn(CF1, COL2, VAL2);<a name="line.390"></a>
-<span class="sourceLineNo">391</span>      table.put(put);<a name="line.391"></a>
-<span class="sourceLineNo">392</span>    }<a name="line.392"></a>
-<span class="sourceLineNo">393</span>  }<a name="line.393"></a>
-<span class="sourceLineNo">394</span><a name="line.394"></a>
-<span class="sourceLineNo">395</span>  @Test<a name="line.395"></a>
-<span class="sourceLineNo">396</span>  public void testReadRequestsCountWithTTLExpiration() throws Exception {<a name="line.396"></a>
-<span class="sourceLineNo">397</span>    putTTLExpiredData();<a name="line.397"></a>
-<span class="sourceLineNo">398</span><a name="line.398"></a>
-<span class="sourceLineNo">399</span>    Scan scan = new Scan();<a name="line.399"></a>
-<span class="sourceLineNo">400</span>    scan.addFamily(CF2);<a name="line.400"></a>
-<span class="sourceLineNo">401</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>      int resultCount = 0;<a name="line.402"></a>
-<span class="sourceLineNo">403</span>      for (Result ignore : scanner) {<a name="line.403"></a>
-<span class="sourceLineNo">404</span>        resultCount++;<a name="line.404"></a>
-<span class="sourceLineNo">405</span>      }<a name="line.405"></a>
-<span class="sourceLineNo">406</span>      testReadRequests(resultCount, 2, 1);<a name="line.406"></a>
-<span class="sourceLineNo">407</span>    }<a name="line.407"></a>
-<span class="sourceLineNo">408</span>  }<a name="line.408"></a>
-<span class="sourceLineNo">409</span><a name="line.409"></a>
-<span class="sourceLineNo">410</span>  @Test<a name="line.410"></a>
-<span class="sourceLineNo">411</span>  public void testReadRequestsWithCoprocessor() throws Exception {<a name="line.411"></a>
-<span class="sourceLineNo">412</span>    TableName tableName = TableName.valueOf("testReadRequestsWithCoprocessor");<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    TableDescriptorBuilder builder = TableDescriptorBuilder.newBuilder(tableName);<a name="line.413"></a>
-<span class="sourceLineNo">414</span>    builder.addColumnFamily(ColumnFamilyDescriptorBuilder.of(CF1));<a name="line.414"></a>
-<span class="sourceLineNo">415</span>    builder.addCoprocessor(ScanRegionCoprocessor.class.getName());<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    admin.createTable(builder.build());<a name="line.416"></a>
-<span class="sourceLineNo">417</span><a name="line.417"></a>
-<span class="sourceLineNo">418</span>    try {<a name="line.418"></a>
-<span class="sourceLineNo">419</span>      TEST_UTIL.waitTableAvailable(tableName);<a name="line.419"></a>
-<span class="sourceLineNo">420</span>      List&lt;RegionInfo&gt; regionInfos = admin.getRegions(tableName);<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      assertEquals("Table " + TABLE_NAME + " should have 1 region", 1, regionInfos.size());<a name="line.421"></a>
-<span class="sourceLineNo">422</span>      boolean success = true;<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      int i = 0;<a name="line.423"></a>
-<span class="sourceLineNo">424</span>      for (; i &lt; MAX_TRY; i++) {<a name="line.424"></a>
-<span class="sourceLineNo">425</span>        try {<a name="line.425"></a>
-<span class="sourceLineNo">426</span>          testReadRequests(regionInfos.get(0).getRegionName(), 3);<a name="line.426"></a>
-<span class="sourceLineNo">427</span>        } catch (Throwable t) {<a name="line.427"></a>
-<span class="sourceLineNo">428</span>          LOG.warn("Got exception when try " + i + " times", t);<a name="line.428"></a>
-<span class="sourceLineNo">429</span>          Thread.sleep(SLEEP_MS);<a name="line.429"></a>
-<span class="sourceLineNo">430</span>          success = false;<a name="line.430"></a>
-<span class="sourceLineNo">431</span>        }<a name="line.431"></a>
-<span class="sourceLineNo">432</span>        if (success) {<a name="line.432"></a>
-<span class="sourceLineNo">433</span>          break;<a name="line.433"></a>
-<span class="sourceLineNo">434</span>        }<a name="line.434"></a>
-<span class="sourceLineNo">435</span>      }<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      if (i == MAX_TRY) {<a name="line.436"></a>
-<span class="sourceLineNo">437</span>        fail("Failed to get right read requests metric after try " + i + " times");<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      }<a name="line.438"></a>
-<span class="sourceLineNo">439</span>    } finally {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>      admin.disableTable(tableName);<a name="line.440"></a>
-<span class="sourceLineNo">441</span>      admin.deleteTable(tableName);<a name="line.441"></a>
-<span class="sourceLineNo">442</span>    }<a name="line.442"></a>
-<span class="sourceLineNo">443</span>  }<a name="line.443"></a>
-<span class="sourceLineNo">444</span><a name="line.444"></a>
-<span class="sourceLineNo">445</span>  private void testReadRequests(byte[] regionName, int expectedReadRequests) throws Exception {<a name="line.445"></a>
-<span class="sourceLineNo">446</span>    for (ServerName serverName : serverNames) {<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      ServerLoad serverLoad = new ServerLoad(admin.getClusterMetrics(<a name="line.447"></a>
-<span class="sourceLineNo">448</span>        EnumSet.of(Option.LIVE_SERVERS)).getLiveServerMetrics().get(serverName));<a name="line.448"></a>
-<span class="sourceLineNo">449</span>      Map&lt;byte[], RegionLoad&gt; regionsLoad = serverLoad.getRegionsLoad();<a name="line.449"></a>
-<span class="sourceLineNo">450</span>      RegionLoad regionLoad = regionsLoad.get(regionName);<a name="line.450"></a>
-<span class="sourceLineNo">451</span>      if (regionLoad != null) {<a name="line.451"></a>
-<span class="sourceLineNo">452</span>        LOG.debug("server read request is " + serverLoad.getReadRequestsCount()<a name="line.452"></a>
-<span class="sourceLineNo">453</span>            + ", region read request is " + regionLoad.getReadRequestsCount());<a name="line.453"></a>
-<span class="sourceLineNo">454</span>        assertEquals(3, serverLoad.getReadRequestsCount());<a name="line.454"></a>
-<span class="sourceLineNo">455</span>        assertEquals(3, regionLoad.getReadRequestsCount());<a name="line.455"></a>
-<span class="sourceLineNo">456</span>      }<a name="line.456"></a>
-<span class="sourceLineNo">457</span>    }<a name="line.457"></a>
-<span class="sourceLineNo">458</span>  }<a name="line.458"></a>
-<span class="sourceLineNo">459</span><a name="line.459"></a>
-<span class="sourceLineNo">460</span>  public static class ScanRegionCoprocessor implements RegionCoprocessor, RegionObserver {<a name="line.460"></a>
-<span class="sourceLineNo">461</span>    @Override<a name="line.461"></a>
-<span class="sourceLineNo">462</span>    public Optional&lt;RegionObserver&gt; getRegionObserver() {<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      return Optional.of(this);<a name="line.463"></a>
-<span class="sourceLineNo">464</span>    }<a name="line.464"></a>
-<span class="sourceLineNo">465</span><a name="line.465"></a>
-<span class="sourceLineNo">466</span>    @Override<a name="line.466"></a>
-<span class="sourceLineNo">467</span>    public void postOpen(ObserverContext&lt;RegionCoprocessorEnvironment&gt; c) {<a name="line.467"></a>
-<span class="sourceLineNo">468</span>      RegionCoprocessorEnvironment env = c.getEnvironment();<a name="line.468"></a>
-<span class="sourceLineNo">469</span>      Region region = env.getRegion();<a name="line.469"></a>
-<span class="sourceLineNo">470</span>      try {<a name="line.470"></a>
-<span class="sourceLineNo">471</span>        putData(region);<a name="line.471"></a>
-<span class="sourceLineNo">472</span>        RegionScanner scanner = region.getScanner(new Scan());<a name="line.472"></a>
-<span class="sourceLineNo">473</span>        List&lt;Cell&gt; result = new LinkedList&lt;&gt;();<a name="line.473"></a>
-<span class="sourceLineNo">474</span>        while (scanner.next(result)) {<a name="line.474"></a>
-<span class="sourceLineNo">475</span>          result.clear();<a name="line.475"></a>
-<span class="sourceLineNo">476</span>        }<a name="line.476"></a>
-<span class="sourceLineNo">477</span>      } catch (Exception e) {<a name="line.477"></a>
-<span class="sourceLineNo">478</span>        LOG.warn("Got exception in coprocessor", e);<a name="line.478"></a>
-<span class="sourceLineNo">479</span>      }<a name="line.479"></a>
-<span class="sourceLineNo">480</span>    }<a name="line.480"></a>
-<span class="sourceLineNo">481</span><a name="line.481"></a>
-<span class="sourceLineNo">482</span>    private void putData(Region region) throws Exception {<a name="line.482"></a>
-<span class="sourceLineNo">483</span>      Put put = new Put(ROW1);<a name="line.483"></a>
-<span class="sourceLineNo">484</span>      put.addColumn(CF1, COL1, VAL1);<a name="line.484"></a>
-<span class="sourceLineNo">485</span>      region.put(put);<a name="line.485"></a>
-<span class="sourceLineNo">486</span>      put = new Put(ROW2);<a name="line.486"></a>
-<span class="sourceLineNo">487</span>      put.addColumn(CF1, COL1, VAL1);<a name="line.487"></a>
-<span class="sourceLineNo">488</span>      region.put(put);<a name="line.488"></a>
-<span class="sourceLineNo">489</span>      put = new Put(ROW3);<a name="line.489"></a>
-<span class="sourceLineNo">490</span>      put.addColumn(CF1, COL1, VAL1);<a name="line.490"></a>
-<span class="sourceLineNo">491</span>      region.put(put);<a name="line.491"></a>
-<span class="sourceLineNo">492</span>    }<a name="line.492"></a>
-<span class="sourceLineNo">493</span>  }<a name="line.493"></a>
-<span class="sourceLineNo">494</span><a name="line.494"></a>
-<span class="sourceLineNo">495</span>  private enum Metric {REGION_READ, SERVER_READ, FILTERED_REGION_READ, FILTERED_SERVER_READ}<a name="line.495"></a>
-<span class="sourceLineNo">496</span>}<a name="line.496"></a>
+<span class="sourceLineNo">243</span>    Thread.sleep(TTL * 1000);<a name="line.243"></a>
+<span class="sourceLineNo">244</span><a name="line.244"></a>
+<span class="sourceLineNo">245</span>    put = new Put(ROW2);<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    put.addColumn(CF2, COL1, VAL1);<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    put.addColumn(CF2, COL2, VAL2);<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    table.put(put);<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>    put = new Put(ROW3);<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    put.addColumn(CF2, COL1, VAL1);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>    put.addColumn(CF2, COL2, VAL2);<a name="line.252"></a>
+<span class="sourceLineNo">253</span>    table.put(put);<a name="line.253"></a>
+<span class="sourceLineNo">254</span>  }<a name="line.254"></a>
+<span class="sourceLineNo">255</span><a name="line.255"></a>
+<span class="sourceLineNo">256</span>  @AfterClass<a name="line.256"></a>
+<span class="sourceLineNo">257</span>  public static void tearDownOnce() throws Exception {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>    TEST_UTIL.shutdownMiniCluster();<a name="line.258"></a>
+<span class="sourceLineNo">259</span>  }<a name="line.259"></a>
+<span class="sourceLineNo">260</span><a name="line.260"></a>
+<span class="sourceLineNo">261</span>  @Test<a name="line.261"></a>
+<span class="sourceLineNo">262</span>  public void testReadRequestsCountNotFiltered() throws Exception {<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    int resultCount;<a name="line.263"></a>
+<span class="sourceLineNo">264</span>    Scan scan;<a name="line.264"></a>
+<span class="sourceLineNo">265</span>    Append append;<a name="line.265"></a>
+<span class="sourceLineNo">266</span>    Put put;<a name="line.266"></a>
+<span class="sourceLineNo">267</span>    Increment increment;<a name="line.267"></a>
+<span class="sourceLineNo">268</span>    Get get;<a name="line.268"></a>
+<span class="sourceLineNo">269</span><a name="line.269"></a>
+<span class="sourceLineNo">270</span>    // test for scan<a name="line.270"></a>
+<span class="sourceLineNo">271</span>    scan = new Scan();<a name="line.271"></a>
+<span class="sourceLineNo">272</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>      resultCount = 0;<a name="line.273"></a>
+<span class="sourceLineNo">274</span>      for (Result ignore : scanner) {<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        resultCount++;<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      }<a name="line.276"></a>
+<span class="sourceLineNo">277</span>      testReadRequests(resultCount, 3, 0);<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    }<a name="line.278"></a>
+<span class="sourceLineNo">279</span><a name="line.279"></a>
+<span class="sourceLineNo">280</span>    // test for scan<a name="line.280"></a>
+<span class="sourceLineNo">281</span>    scan = new Scan(ROW2, ROW3);<a name="line.281"></a>
+<span class="sourceLineNo">282</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      resultCount = 0;<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      for (Result ignore : scanner) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>        resultCount++;<a name="line.285"></a>
+<span class="sourceLineNo">286</span>      }<a name="line.286"></a>
+<span class="sourceLineNo">287</span>      testReadRequests(resultCount, 1, 0);<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>    // test for get<a name="line.290"></a>
+<span class="sourceLineNo">291</span>    get = new Get(ROW2);<a name="line.291"></a>
+<span class="sourceLineNo">292</span>    Result result = table.get(get);<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    resultCount = result.isEmpty() ? 0 : 1;<a name="line.293"></a>
+<span class="sourceLineNo">294</span>    testReadRequests(resultCount, 1, 0);<a name="line.294"></a>
+<span class="sourceLineNo">295</span><a name="line.295"></a>
+<span class="sourceLineNo">296</span>    // test for increment<a name="line.296"></a>
+<span class="sourceLineNo">297</span>    increment = new Increment(ROW1);<a name="line.297"></a>
+<span class="sourceLineNo">298</span>    increment.addColumn(CF1, COL3, 1);<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    result = table.increment(increment);<a name="line.299"></a>
+<span class="sourceLineNo">300</span>    resultCount = result.isEmpty() ? 0 : 1;<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    testReadRequests(resultCount, 1, 0);<a name="line.301"></a>
+<span class="sourceLineNo">302</span><a name="line.302"></a>
+<span class="sourceLineNo">303</span>    // test for checkAndPut<a name="line.303"></a>
+<span class="sourceLineNo">304</span>    put = new Put(ROW1);<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    put.addColumn(CF1, COL2, VAL2);<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    boolean checkAndPut =<a name="line.306"></a>
+<span class="sourceLineNo">307</span>        table.checkAndMutate(ROW1, CF1).qualifier(COL2).ifEquals(VAL2).thenPut(put);<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    resultCount = checkAndPut ? 1 : 0;<a name="line.308"></a>
+<span class="sourceLineNo">309</span>    testReadRequests(resultCount, 1, 0);<a name="line.309"></a>
+<span class="sourceLineNo">310</span><a name="line.310"></a>
+<span class="sourceLineNo">311</span>    // test for append<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    append = new Append(ROW1);<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    append.addColumn(CF1, COL2, VAL2);<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    result = table.append(append);<a name="line.314"></a>
+<span class="sourceLineNo">315</span>    resultCount = result.isEmpty() ? 0 : 1;<a name="line.315"></a>
+<span class="sourceLineNo">316</span>    testReadRequests(resultCount, 1, 0);<a name="line.316"></a>
+<span class="sourceLineNo">317</span><a name="line.317"></a>
+<span class="sourceLineNo">318</span>    // test for checkAndMutate<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    put = new Put(ROW1);<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    put.addColumn(CF1, COL1, VAL1);<a name="line.320"></a>
+<span class="sourceLineNo">321</span>    RowMutations rm = new RowMutations(ROW1);<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    rm.add(put);<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    boolean checkAndMutate =<a name="line.323"></a>
+<span class="sourceLineNo">324</span>        table.checkAndMutate(ROW1, CF1).qualifier(COL1).ifEquals(VAL1).thenMutate(rm);<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    resultCount = checkAndMutate ? 1 : 0;<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    testReadRequests(resultCount, 1, 0);<a name="line.326"></a>
+<span class="sourceLineNo">327</span>  }<a name="line.327"></a>
+<span class="sourceLineNo">328</span><a name="line.328"></a>
+<span class="sourceLineNo">329</span>  @Test<a name="line.329"></a>
+<span class="sourceLineNo">330</span>  public void testReadRequestsCountWithFilter() throws Exception {<a name="line.330"></a>
+<span class="sourceLineNo">331</span>    int resultCount;<a name="line.331"></a>
+<span class="sourceLineNo">332</span>    Scan scan;<a name="line.332"></a>
+<span class="sourceLineNo">333</span><a name="line.333"></a>
+<span class="sourceLineNo">334</span>    // test for scan<a name="line.334"></a>
+<span class="sourceLineNo">335</span>    scan = new Scan();<a name="line.335"></a>
+<span class="sourceLineNo">336</span>    scan.setFilter(new SingleColumnValueFilter(CF1, COL1, CompareFilter.CompareOp.EQUAL, VAL1));<a name="line.336"></a>
+<span class="sourceLineNo">337</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.337"></a>
+<span class="sourceLineNo">338</span>      resultCount = 0;<a name="line.338"></a>
+<span class="sourceLineNo">339</span>      for (Result ignore : scanner) {<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        resultCount++;<a name="line.340"></a>
+<span class="sourceLineNo">341</span>      }<a name="line.341"></a>
+<span class="sourceLineNo">342</span>      testReadRequests(resultCount, 2, 1);<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>    // test for scan<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    scan = new Scan();<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    scan.setFilter(new RowFilter(CompareFilter.CompareOp.EQUAL, new BinaryComparator(ROW1)));<a name="line.347"></a>
+<span class="sourceLineNo">348</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>      resultCount = 0;<a name="line.349"></a>
+<span class="sourceLineNo">350</span>      for (Result ignore : scanner) {<a name="line.350"></a>
+<span class="sourceLineNo">351</span>        resultCount++;<a name="line.351"></a>
+<span class="sourceLineNo">352</span>      }<a name="line.352"></a>
+<span class="sourceLineNo">353</span>      testReadRequests(resultCount, 1, 2);<a name="line.353"></a>
+<span class="sourceLineNo">354</span>    }<a name="line.354"></a>
+<span class="sourceLineNo">355</span><a name="line.355"></a>
+<span class="sourceLineNo">356</span>    // test for scan<a name="line.356"></a>
+<span class="sourceLineNo">357</span>    scan = new Scan(ROW2, ROW3);<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    scan.setFilter(new RowFilter(CompareFilter.CompareOp.EQUAL, new BinaryComparator(ROW1)));<a name="line.358"></a>
+<span class="sourceLineNo">359</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.359"></a>
+<span class="sourceLineNo">360</span>      resultCount = 0;<a name="line.360"></a>
+<span class="sourceLineNo">361</span>      for (Result ignore : scanner) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>        resultCount++;<a name="line.362"></a>
+<span class="sourceLineNo">363</span>      }<a name="line.363"></a>
+<span class="sourceLineNo">364</span>      testReadRequests(resultCount, 0, 1);<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    }<a name="line.365"></a>
+<span class="sourceLineNo">366</span><a name="line.366"></a>
+<span class="sourceLineNo">367</span>    // fixme filtered get should not increase readRequestsCount<a name="line.367"></a>
+<span class="sourceLineNo">368</span>//    Get get = new Get(ROW2);<a name="line.368"></a>
+<span class="sourceLineNo">369</span>//    get.setFilter(new SingleColumnValueFilter(CF1, COL1, CompareFilter.CompareOp.EQUAL, VAL1));<a name="line.369"></a>
+<span class="sourceLineNo">370</span>//    Result result = table.get(get);<a name="line.370"></a>
+<span class="sourceLineNo">371</span>//    resultCount = result.isEmpty() ? 0 : 1;<a name="line.371"></a>
+<span class="sourceLineNo">372</span>//    testReadRequests(resultCount, 0, 1);<a name="line.372"></a>
+<span class="sourceLineNo">373</span>  }<a name="line.373"></a>
+<span class="sourceLineNo">374</span><a name="line.374"></a>
+<span class="sourceLineNo">375</span>  @Test<a name="line.375"></a>
+<span class="sourceLineNo">376</span>  public void testReadRequestsCountWithDeletedRow() throws Exception {<a name="line.376"></a>
+<span class="sourceLineNo">377</span>    try {<a name="line.377"></a>
+<span class="sourceLineNo">378</span>      Delete delete = new Delete(ROW3);<a name="line.378"></a>
+<span class="sourceLineNo">379</span>      table.delete(delete);<a name="line.379"></a>
+<span class="sourceLineNo">380</span><a name="line.380"></a>
+<span class="sourceLineNo">381</span>      Scan scan = new Scan();<a name="line.381"></a>
+<span class="sourceLineNo">382</span>      try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.382"></a>
+<span class="sourceLineNo">383</span>        int resultCount = 0;<a name="line.383"></a>
+<span class="sourceLineNo">384</span>        for (Result ignore : scanner) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>          resultCount++;<a name="line.385"></a>
+<span class="sourceLineNo">386</span>        }<a name="line.386"></a>
+<span class="sourceLineNo">387</span>        testReadRequests(resultCount, 2, 1);<a name="line.387"></a>
+<span class="sourceLineNo">388</span>      }<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    } finally {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>      Put put = new Put(ROW3);<a name="line.390"></a>
+<span class="sourceLineNo">391</span>      put.addColumn(CF1, COL1, VAL1);<a name="line.391"></a>
+<span class="sourceLineNo">392</span>      put.addColumn(CF1, COL2, VAL2);<a name="line.392"></a>
+<span class="sourceLineNo">393</span>      table.put(put);<a name="line.393"></a>
+<span class="sourceLineNo">394</span>    }<a name="line.394"></a>
+<span class="sourceLineNo">395</span>  }<a name="line.395"></a>
+<span class="sourceLineNo">396</span><a name="line.396"></a>
+<span class="sourceLineNo">397</span>  @Test<a name="line.397"></a>
+<span class="sourceLineNo">398</span>  public void testReadRequestsCountWithTTLExpiration() throws Exception {<a name="line.398"></a>
+<span class="sourceLineNo">399</span>    putTTLExpiredData();<a name="line.399"></a>
+<span class="sourceLineNo">400</span><a name="line.400"></a>
+<span class="sourceLineNo">401</span>    Scan scan = new Scan();<a name="line.401"></a>
+<span class="sourceLineNo">402</span>    scan.addFamily(CF2);<a name="line.402"></a>
+<span class="sourceLineNo">403</span>    try (ResultScanner scanner = table.getScanner(scan)) {<a name="line.403"></a>
+<span class="sourceLineNo">404</span>      int resultCount = 0;<a name="line.404"></a>
+<span class="sourceLineNo">405</span>      for (Result ignore : scanner) {<a name="line.405"></a>
+<span class="sourceLineNo">406</span>        resultCount++;<a name="line.406"></a>
+<span class="sourceLineNo">407</span>      }<a name="line.407"></a>
+<span class="sourceLineNo">408</span>      testReadRequests(resultCount, 2, 1);<a name="line.408"></a>
+<span class="sourceLineNo">409</span>    }<a name="line.409"></a>
+<span class="sourceLineNo">410</span>  }<a name="line.410"></a>
+<span class="sourceLineNo">411</span><a name="line.411"></a>
+<span class="sourceLineNo">412</span>  @Test<a name="line.412"></a>
+<span class="sourceLineNo">413</span>  public void testReadRequestsWithCoprocessor() throws Exception {<a name="line.413"></a>
+<span class="sourceLineNo">414</span>    TableName tableName = TableName.valueOf("testReadRequestsWithCoprocessor");<a name="line.414"></a>
+<span class="sourceLineNo">415</span>    TableDescriptorBuilder builder = TableDescriptorBuilder.newBuilder(tableName);<a name="line.415"></a>
+<span class="sourceLineNo">416</span>    builder.addColumnFamily(ColumnFamilyDescriptorBuilder.of(CF1));<a name="line.416"></a>
+<span class="sourceLineNo">417</span>    builder.addCoprocessor(ScanRegionCoprocessor.class.getName());<a name="line.417"></a>
+<span class="sourceLineNo">418</span>    admin.createTable(builder.build());<a name="line.418"></a>
+<span class="sourceLineNo">419</span><a name="line.419"></a>
+<span class="sourceLineNo">420</span>    try {<a name="line.420"></a>
+<span class="sourceLineNo">421</span>      TEST_UTIL.waitTableAvailable(tableName);<a name="line.421"></a>
+<span class="sourceLineNo">422</span>      List&lt;RegionInfo&gt; regionInfos = admin.getRegions(tableName);<a name="line.422"></a>
+<span class="sourceLineNo">423</span>      assertEquals("Table " + TABLE_NAME + " should have 1 region", 1, regionInfos.size());<a name="line.423"></a>
+<span class="sourceLineNo">424</span>      boolean success = true;<a name="line.424"></a>
+<span class="sourceLineNo">425</span>      int i = 0;<a name="line.425"></a>
+<span class="sourceLineNo">426</span>      for (; i &lt; MAX_TRY; i++) {<a name="line.426"></a>
+<span class="sourceLineNo">427</span>        try {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>          testReadRequests(regionInfos.get(0).getRegionName(), 3);<a name="line.428"></a>
+<span class="sourceLineNo">429</span>        } catch (Throwable t) {<a name="line.429"></a>
+<span class="sourceLineNo">430</span>          LOG.warn("Got exception when try " + i + " times", t);<a name="line.430"></a>
+<span class="sourceLineNo">431</span>          Thread.sleep(SLEEP_MS);<a name="line.431"></a>
+<span class="sourceLineNo">432</span>          success = false;<a name="line.432"></a>
+<span class="sourceLineNo">433</span>        }<a name="line.433"></a>
+<span class="sourceLineNo">434</span>        if (success) {<a name="line.434"></a>
+<span class="sourceLineNo">435</span>          break;<a name="line.435"></a>
+<span class="sourceLineNo">436</span>        }<a name="line.436"></a>
+<span class="sourceLineNo">437</span>      }<a name="line.437"></a>
+<span class="sourceLineNo">438</span>      if (i == MAX_TRY) {<a name="line.438"></a>
+<span class="sourceLineNo">439</span>        fail("Failed to get right read requests metric after try " + i + " times");<a name="line.439"></a>
+<span class="sourceLineNo">440</span>      }<a name="line.440"></a>
+<span class="sourceLineNo">441</span>    } finally {<a name="line.441"></a>
+<span class="sourceLineNo">442</span>      admin.disableTable(tableName);<a name="line.442"></a>
+<span class="sourceLineNo">443</span>      admin.deleteTable(tableName);<a name="line.443"></a>
+<span class="sourceLineNo">444</span>    }<a name="line.444"></a>
+<span class="sourceLineNo">445</span>  }<a name="line.445"></a>
+<span class="sourceLineNo">446</span><a name="line.446"></a>
+<span class="sourceLineNo">447</span>  private void testReadRequests(byte[] regionName, int expectedReadRequests) throws Exception {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>    for (ServerName serverName : serverNames) {<a name="line.448"></a>
+<span class="sourceLineNo">449</span>      ServerLoad serverLoad = new ServerLoad(admin.getClusterMetrics(<a name="line.449"></a>
+<span class="sourceLineNo">450</span>        EnumSet.of(Option.LIVE_SERVERS)).getLiveServerMetrics().get(serverName));<a name="line.450"></a>
+<span class="sourceLineNo">451</span>      Map&lt;byte[], RegionLoad&gt; regionsLoad = serverLoad.getRegionsLoad();<a name="line.451"></a>
+<span class="sourceLineNo">452</span>      RegionLoad regionLoad = regionsLoad.get(regionName);<a name="line.452"></a>
+<span class="sourceLineNo">453</span>      if (regionLoad != null) {<a name="line.453"></a>
+<span class="sourceLineNo">454</span>        LOG.debug("server read request is " + serverLoad.getReadRequestsCount()<a name="line.454"></a>
+<span class="sourceLineNo">455</span>            + ", region read request is " + regionLoad.getReadRequestsCount());<a name="line.455"></a>
+<span class="sourceLineNo">456</span>        assertEquals(3, serverLoad.getReadRequestsCount());<a name="line.456"></a>
+<span class="sourceLineNo">457</span>        assertEquals(3, regionLoad.getReadRequestsCount());<a name="line.457"></a>
+<span class="sourceLineNo">458</span>      }<a name="line.458"></a>
+<span class="sourceLineNo">459</span>    }<a name="line.459"></a>
+<span class="sourceLineNo">460</span>  }<a name="line.460"></a>
+<span class="sourceLineNo">461</span><a name="line.461"></a>
+<span class="sourceLineNo">462</span>  public static class ScanRegionCoprocessor implements RegionCoprocessor, RegionObserver {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>    @Override<a name="line.463"></a>
+<span class="sourceLineNo">464</span>    public Optional&lt;RegionObserver&gt; getRegionObserver() {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>      return Optional.of(this);<a name="line.465"></a>
+<span class="sourceLineNo">466</span>    }<a name="line.466"></a>
+<span class="sourceLineNo">467</span><a name="line.467"></a>
+<span class="sourceLineNo">468</span>    @Override<a name="line.468"></a>
+<span class="sourceLineNo">469</span>    public void postOpen(ObserverContext&lt;RegionCoprocessorEnvironment&gt; c) {<a name="line.469"></a>
+<span class="sourceLineNo">470</span>      RegionCoprocessorEnvironment env = c.getEnvironment();<a name="line.470"></a>
+<span class="sourceLineNo">471</span>      Region region = env.getRegion();<a name="line.471"></a>
+<span class="sourceLineNo">472</span>      try {<a name="line.472"></a>
+<span class="sourceLineNo">473</span>        putData(region);<a name="line.473"></a>
+<span class="sourceLineNo">474</span>        RegionScanner scanner = region.getScanner(new Scan());<a name="line.474"></a>
+<span class="sourceLineNo">475</span>        List&lt;Cell&gt; result = new LinkedList&lt;&gt;();<a name="line.475"></a>
+<span class="sourceLineNo">476</span>        while (scanner.next(result)) {<a name="line.476"></a>
+<span class="sourceLineNo">477</span>          result.clear();<a name="line.477"></a>
+<span class="sourceLineNo">478</span>        }<a name="line.478"></a>
+<span class="sourceLineNo">479</span>      } catch (Exception e) {<a name="line.479"></a>
+<span class="sourceLineNo">480</span>        LOG.warn("Got exception in coprocessor", e);<a name="line.480"></a>
+<span class="sourceLineNo">481</span>      }<a name="line.481"></a>
+<span class="sourceLineNo">482</span>    }<a name="line.482"></a>
+<span class="sourceLineNo">483</span><a name="line.483"></a>
+<span class="sourceLineNo">484</span>    private void putData(Region region) throws Exception {<a name="line.484"></a>
+<span class="sourceLineNo">485</span>      Put put = new Put(ROW1);<a name="line.485"></a>
+<span class="sourceLineNo">486</span>      put.addColumn(CF1, COL1, VAL1);<a name="line.486"></a>
+<span class="sourceLineNo">487</span>      region.put(put);<a name="line.487"></a>
+<span class="sourceLineNo">488</span>      put = new Put(ROW2);<a name="line.488"></a>
+<span class="sourceLineNo">489</span>      put.addColumn(CF1, COL1, VAL1);<a name="line.489"></a>
+<span class="sourceLineNo">490</span>      region.put(put);<a name="line.490"></a>
+<span class="sourceLineNo">491</span>      put = new Put(ROW3);<a name="line.491"></a>
+<span class="sourceLineNo">492</span>      put.addColumn(CF1, COL1, VAL1);<a name="line.492"></a>
+<span class="sourceLineNo">493</span>      region.put(put);<a name="line.493"></a>
+<span class="sourceLineNo">494</span>    }<a name="line.494"></a>
+<span class="sourceLineNo">495</span>  }<a name="line.495"></a>
+<span class="sourceLineNo">496</span><a name="line.496"></a>
+<span class="sourceLineNo">497</span>  private enum Metric {REGION_READ, SERVER_READ, FILTERED_REGION_READ, FILTERED_SERVER_READ}<a name="line.497"></a>
+<span class="sourceLineNo">498</span>}<a name="line.498"></a>
 
 
 


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/src-html/org/apache/hadoop/hbase/TestJMXConnectorServer.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/TestJMXConnectorServer.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/TestJMXConnectorServer.html
index 08b764c..75c6f6a 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/TestJMXConnectorServer.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/TestJMXConnectorServer.html
@@ -6,7 +6,7 @@
 </head>
 <body>
 <div class="sourceContainer">
-<pre><span class="sourceLineNo">001</span>/**<a name="line.1"></a>
+<pre><span class="sourceLineNo">001</span>/*<a name="line.1"></a>
 <span class="sourceLineNo">002</span> *<a name="line.2"></a>
 <span class="sourceLineNo">003</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.3"></a>
 <span class="sourceLineNo">004</span> * or more contributor license agreements.  See the NOTICE file<a name="line.4"></a>
@@ -39,186 +39,194 @@
 <span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.coprocessor.ObserverContext;<a name="line.31"></a>
 <span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.coprocessor.RegionServerCoprocessorEnvironment;<a name="line.32"></a>
 <span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.security.AccessDeniedException;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.security.access.AccessController;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.testclassification.MediumTests;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.testclassification.MiscTests;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.junit.After;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.junit.Assert;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.junit.Before;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.junit.Test;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.junit.experimental.categories.Category;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.slf4j.Logger;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.slf4j.LoggerFactory;<a name="line.43"></a>
-<span class="sourceLineNo">044</span><a name="line.44"></a>
-<span class="sourceLineNo">045</span>/**<a name="line.45"></a>
-<span class="sourceLineNo">046</span> * Test case for JMX Connector Server.<a name="line.46"></a>
-<span class="sourceLineNo">047</span> */<a name="line.47"></a>
-<span class="sourceLineNo">048</span>@Category({ MiscTests.class, MediumTests.class })<a name="line.48"></a>
-<span class="sourceLineNo">049</span>public class TestJMXConnectorServer {<a name="line.49"></a>
-<span class="sourceLineNo">050</span>  private static final Logger LOG = LoggerFactory.getLogger(TestJMXConnectorServer.class);<a name="line.50"></a>
-<span class="sourceLineNo">051</span>  private static HBaseTestingUtility UTIL = new HBaseTestingUtility();<a name="line.51"></a>
-<span class="sourceLineNo">052</span><a name="line.52"></a>
-<span class="sourceLineNo">053</span>  private static Configuration conf = null;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>  private static Admin admin;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>  // RMI registry port<a name="line.55"></a>
-<span class="sourceLineNo">056</span>  private static int rmiRegistryPort = 61120;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>  // Switch for customized Accesscontroller to throw ACD exception while executing test case<a name="line.57"></a>
-<span class="sourceLineNo">058</span>  static boolean hasAccess;<a name="line.58"></a>
-<span class="sourceLineNo">059</span><a name="line.59"></a>
-<span class="sourceLineNo">060</span>  @Before<a name="line.60"></a>
-<span class="sourceLineNo">061</span>  public void setUp() throws Exception {<a name="line.61"></a>
-<span class="sourceLineNo">062</span>    UTIL = new HBaseTestingUtility();<a name="line.62"></a>
-<span class="sourceLineNo">063</span>    conf = UTIL.getConfiguration();<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>  @After<a name="line.66"></a>
-<span class="sourceLineNo">067</span>  public void tearDown() throws Exception {<a name="line.67"></a>
-<span class="sourceLineNo">068</span>    // Set to true while stopping cluster<a name="line.68"></a>
-<span class="sourceLineNo">069</span>    hasAccess = true;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>    admin.close();<a name="line.70"></a>
-<span class="sourceLineNo">071</span>    UTIL.shutdownMiniCluster();<a name="line.71"></a>
-<span class="sourceLineNo">072</span>  }<a name="line.72"></a>
-<span class="sourceLineNo">073</span><a name="line.73"></a>
-<span class="sourceLineNo">074</span>  /**<a name="line.74"></a>
-<span class="sourceLineNo">075</span>   * This tests to validate the HMaster's ConnectorServer after unauthorised stopMaster call.<a name="line.75"></a>
-<span class="sourceLineNo">076</span>   */<a name="line.76"></a>
-<span class="sourceLineNo">077</span>  @Test(timeout = 180000)<a name="line.77"></a>
-<span class="sourceLineNo">078</span>  public void testHMConnectorServerWhenStopMaster() throws Exception {<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    conf.set(CoprocessorHost.MASTER_COPROCESSOR_CONF_KEY,<a name="line.79"></a>
-<span class="sourceLineNo">080</span>      JMXListener.class.getName() + "," + MyAccessController.class.getName());<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    conf.setInt("master.rmi.registry.port", rmiRegistryPort);<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    UTIL.startMiniCluster();<a name="line.82"></a>
-<span class="sourceLineNo">083</span>    admin = UTIL.getConnection().getAdmin();<a name="line.83"></a>
-<span class="sourceLineNo">084</span><a name="line.84"></a>
-<span class="sourceLineNo">085</span>    // try to stop master<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    boolean accessDenied = false;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>    try {<a name="line.87"></a>
-<span class="sourceLineNo">088</span>      hasAccess = false;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>      LOG.info("Stopping HMaster...");<a name="line.89"></a>
-<span class="sourceLineNo">090</span>      admin.stopMaster();<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    } catch (AccessDeniedException e) {<a name="line.91"></a>
-<span class="sourceLineNo">092</span>      LOG.info("Exception occurred while stopping HMaster. ", e);<a name="line.92"></a>
-<span class="sourceLineNo">093</span>      accessDenied = true;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>    }<a name="line.94"></a>
-<span class="sourceLineNo">095</span>    Assert.assertTrue(accessDenied);<a name="line.95"></a>
-<span class="sourceLineNo">096</span><a name="line.96"></a>
-<span class="sourceLineNo">097</span>    // Check whether HMaster JMX Connector server can be connected<a name="line.97"></a>
-<span class="sourceLineNo">098</span>    JMXConnector connector = null;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    try {<a name="line.99"></a>
-<span class="sourceLineNo">100</span>      connector = JMXConnectorFactory<a name="line.100"></a>
-<span class="sourceLineNo">101</span>          .connect(JMXListener.buildJMXServiceURL(rmiRegistryPort, rmiRegistryPort));<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    } catch (IOException e) {<a name="line.102"></a>
-<span class="sourceLineNo">103</span>      if (e.getCause() instanceof ServiceUnavailableException) {<a name="line.103"></a>
-<span class="sourceLineNo">104</span>        Assert.fail("Can't connect to HMaster ConnectorServer.");<a name="line.104"></a>
-<span class="sourceLineNo">105</span>      }<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    }<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    Assert.assertNotNull("JMXConnector should not be null.", connector);<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    connector.close();<a name="line.108"></a>
-<span class="sourceLineNo">109</span>  }<a name="line.109"></a>
-<span class="sourceLineNo">110</span><a name="line.110"></a>
-<span class="sourceLineNo">111</span>  /**<a name="line.111"></a>
-<span class="sourceLineNo">112</span>   * This tests to validate the RegionServer's ConnectorServer after unauthorised stopRegionServer<a name="line.112"></a>
-<span class="sourceLineNo">113</span>   * call.<a name="line.113"></a>
-<span class="sourceLineNo">114</span>   */<a name="line.114"></a>
-<span class="sourceLineNo">115</span>  @Test(timeout = 180000)<a name="line.115"></a>
-<span class="sourceLineNo">116</span>  public void testRSConnectorServerWhenStopRegionServer() throws Exception {<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    conf.set(CoprocessorHost.REGIONSERVER_COPROCESSOR_CONF_KEY,<a name="line.117"></a>
-<span class="sourceLineNo">118</span>      JMXListener.class.getName() + "," + MyAccessController.class.getName());<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    conf.setInt("regionserver.rmi.registry.port", rmiRegistryPort);<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    UTIL.startMiniCluster();<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    admin = UTIL.getConnection().getAdmin();<a name="line.121"></a>
-<span class="sourceLineNo">122</span><a name="line.122"></a>
-<span class="sourceLineNo">123</span>    hasAccess = false;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    ServerName serverName = UTIL.getHBaseCluster().getRegionServer(0).getServerName();<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    LOG.info("Stopping Region Server...");<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    admin.stopRegionServer(serverName.getHostname() + ":" + serverName.getPort());<a name="line.126"></a>
-<span class="sourceLineNo">127</span><a name="line.127"></a>
-<span class="sourceLineNo">128</span>    // Check whether Region Sever JMX Connector server can be connected<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    JMXConnector connector = null;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    try {<a name="line.130"></a>
-<span class="sourceLineNo">131</span>      connector = JMXConnectorFactory<a name="line.131"></a>
-<span class="sourceLineNo">132</span>          .connect(JMXListener.buildJMXServiceURL(rmiRegistryPort, rmiRegistryPort));<a name="line.132"></a>
-<span class="sourceLineNo">133</span>    } catch (IOException e) {<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      if (e.getCause() instanceof ServiceUnavailableException) {<a name="line.134"></a>
-<span class="sourceLineNo">135</span>        Assert.fail("Can't connect to Region Server ConnectorServer.");<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>    Assert.assertNotNull("JMXConnector should not be null.", connector);<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    connector.close();<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>  /**<a name="line.142"></a>
-<span class="sourceLineNo">143</span>   * This tests to validate the HMaster's ConnectorServer after unauthorised shutdown call.<a name="line.143"></a>
-<span class="sourceLineNo">144</span>   */<a name="line.144"></a>
-<span class="sourceLineNo">145</span>  @Test(timeout = 180000)<a name="line.145"></a>
-<span class="sourceLineNo">146</span>  public void testHMConnectorServerWhenShutdownCluster() throws Exception {<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    conf.set(CoprocessorHost.MASTER_COPROCESSOR_CONF_KEY,<a name="line.147"></a>
-<span class="sourceLineNo">148</span>      JMXListener.class.getName() + "," + MyAccessController.class.getName());<a name="line.148"></a>
-<span class="sourceLineNo">149</span>    conf.setInt("master.rmi.registry.port", rmiRegistryPort);<a name="line.149"></a>
-<span class="sourceLineNo">150</span><a name="line.150"></a>
-<span class="sourceLineNo">151</span>    UTIL.startMiniCluster();<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    admin = UTIL.getConnection().getAdmin();<a name="line.152"></a>
-<span class="sourceLineNo">153</span><a name="line.153"></a>
-<span class="sourceLineNo">154</span>    boolean accessDenied = false;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>    try {<a name="line.155"></a>
-<span class="sourceLineNo">156</span>      hasAccess = false;<a name="line.156"></a>
-<span class="sourceLineNo">157</span>      LOG.info("Stopping HMaster...");<a name="line.157"></a>
-<span class="sourceLineNo">158</span>      admin.shutdown();<a name="line.158"></a>
-<span class="sourceLineNo">159</span>    } catch (AccessDeniedException e) {<a name="line.159"></a>
-<span class="sourceLineNo">160</span>      LOG.error("Exception occurred while stopping HMaster. ", e);<a name="line.160"></a>
-<span class="sourceLineNo">161</span>      accessDenied = true;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>    }<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    Assert.assertTrue(accessDenied);<a name="line.163"></a>
-<span class="sourceLineNo">164</span><a name="line.164"></a>
-<span class="sourceLineNo">165</span>    // Check whether HMaster JMX Connector server can be connected<a name="line.165"></a>
-<span class="sourceLineNo">166</span>    JMXConnector connector = null;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>    try {<a name="line.167"></a>
-<span class="sourceLineNo">168</span>      connector = JMXConnectorFactory<a name="line.168"></a>
-<span class="sourceLineNo">169</span>          .connect(JMXListener.buildJMXServiceURL(rmiRegistryPort, rmiRegistryPort));<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    } catch (IOException e) {<a name="line.170"></a>
-<span class="sourceLineNo">171</span>      if (e.getCause() instanceof ServiceUnavailableException) {<a name="line.171"></a>
-<span class="sourceLineNo">172</span>        Assert.fail("Can't connect to HMaster ConnectorServer.");<a name="line.172"></a>
-<span class="sourceLineNo">173</span>      }<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    }<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    Assert.assertNotNull("JMXConnector should not be null.", connector);<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    connector.close();<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>
-<span class="sourceLineNo">179</span>  /*<a name="line.179"></a>
-<span class="sourceLineNo">180</span>   * Customized class for test case execution which will throw ACD exception while executing<a name="line.180"></a>
-<span class="sourceLineNo">181</span>   * stopMaster/preStopRegionServer/preShutdown explicitly.<a name="line.181"></a>
-<span class="sourceLineNo">182</span>   */<a name="line.182"></a>
-<span class="sourceLineNo">183</span>  public static class MyAccessController extends AccessController {<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    @Override<a name="line.184"></a>
-<span class="sourceLineNo">185</span>    public void preStopMaster(ObserverContext&lt;MasterCoprocessorEnvironment&gt; c) throws IOException {<a name="line.185"></a>
-<span class="sourceLineNo">186</span>      if (!hasAccess) {<a name="line.186"></a>
-<span class="sourceLineNo">187</span>        throw new AccessDeniedException("Insufficient permissions to stop master");<a name="line.187"></a>
-<span class="sourceLineNo">188</span>      }<a name="line.188"></a>
-<span class="sourceLineNo">189</span>    }<a name="line.189"></a>
-<span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>    @Override<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    public void preStopRegionServer(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx)<a name="line.192"></a>
-<span class="sourceLineNo">193</span>        throws IOException {<a name="line.193"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.security.access.AccessControlLists;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.security.access.AccessController;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.testclassification.MediumTests;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.testclassification.MiscTests;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.util.Threads;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.junit.After;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.junit.Assert;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.junit.Before;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.junit.Test;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.junit.experimental.categories.Category;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.slf4j.Logger;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.slf4j.LoggerFactory;<a name="line.45"></a>
+<span class="sourceLineNo">046</span><a name="line.46"></a>
+<span class="sourceLineNo">047</span>/**<a name="line.47"></a>
+<span class="sourceLineNo">048</span> * Test case for JMX Connector Server.<a name="line.48"></a>
+<span class="sourceLineNo">049</span> */<a name="line.49"></a>
+<span class="sourceLineNo">050</span>@Category({ MiscTests.class, MediumTests.class })<a name="line.50"></a>
+<span class="sourceLineNo">051</span>public class TestJMXConnectorServer {<a name="line.51"></a>
+<span class="sourceLineNo">052</span>  private static final Logger LOG = LoggerFactory.getLogger(TestJMXConnectorServer.class);<a name="line.52"></a>
+<span class="sourceLineNo">053</span>  private static HBaseTestingUtility UTIL = new HBaseTestingUtility();<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>  private static Configuration conf = null;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>  private static Admin admin;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>  // RMI registry port<a name="line.57"></a>
+<span class="sourceLineNo">058</span>  private static int rmiRegistryPort = 61120;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>  // Switch for customized Accesscontroller to throw ACD exception while executing test case<a name="line.59"></a>
+<span class="sourceLineNo">060</span>  static boolean hasAccess;<a name="line.60"></a>
+<span class="sourceLineNo">061</span><a name="line.61"></a>
+<span class="sourceLineNo">062</span>  @Before<a name="line.62"></a>
+<span class="sourceLineNo">063</span>  public void setUp() throws Exception {<a name="line.63"></a>
+<span class="sourceLineNo">064</span>    UTIL = new HBaseTestingUtility();<a name="line.64"></a>
+<span class="sourceLineNo">065</span>    conf = UTIL.getConfiguration();<a name="line.65"></a>
+<span class="sourceLineNo">066</span>  }<a name="line.66"></a>
+<span class="sourceLineNo">067</span><a name="line.67"></a>
+<span class="sourceLineNo">068</span>  @After<a name="line.68"></a>
+<span class="sourceLineNo">069</span>  public void tearDown() throws Exception {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>    // Set to true while stopping cluster<a name="line.70"></a>
+<span class="sourceLineNo">071</span>    hasAccess = true;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>    admin.close();<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    UTIL.shutdownMiniCluster();<a name="line.73"></a>
+<span class="sourceLineNo">074</span>  }<a name="line.74"></a>
+<span class="sourceLineNo">075</span><a name="line.75"></a>
+<span class="sourceLineNo">076</span>  /**<a name="line.76"></a>
+<span class="sourceLineNo">077</span>   * This tests to validate the HMaster's ConnectorServer after unauthorised stopMaster call.<a name="line.77"></a>
+<span class="sourceLineNo">078</span>   */<a name="line.78"></a>
+<span class="sourceLineNo">079</span>  @Test(timeout = 180000)<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  public void testHMConnectorServerWhenStopMaster() throws Exception {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    conf.set(CoprocessorHost.MASTER_COPROCESSOR_CONF_KEY,<a name="line.81"></a>
+<span class="sourceLineNo">082</span>      JMXListener.class.getName() + "," + MyAccessController.class.getName());<a name="line.82"></a>
+<span class="sourceLineNo">083</span>    conf.setInt("master.rmi.registry.port", rmiRegistryPort);<a name="line.83"></a>
+<span class="sourceLineNo">084</span>    UTIL.startMiniCluster();<a name="line.84"></a>
+<span class="sourceLineNo">085</span>    admin = UTIL.getConnection().getAdmin();<a name="line.85"></a>
+<span class="sourceLineNo">086</span><a name="line.86"></a>
+<span class="sourceLineNo">087</span>    // try to stop master<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    boolean accessDenied = false;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    try {<a name="line.89"></a>
+<span class="sourceLineNo">090</span>      hasAccess = false;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>      LOG.info("Stopping HMaster...");<a name="line.91"></a>
+<span class="sourceLineNo">092</span>      admin.stopMaster();<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    } catch (AccessDeniedException e) {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>      LOG.info("Exception occurred while stopping HMaster. ", e);<a name="line.94"></a>
+<span class="sourceLineNo">095</span>      accessDenied = true;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    }<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    Assert.assertTrue(accessDenied);<a name="line.97"></a>
+<span class="sourceLineNo">098</span><a name="line.98"></a>
+<span class="sourceLineNo">099</span>    // Check whether HMaster JMX Connector server can be connected<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    JMXConnector connector = null;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    try {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>      connector = JMXConnectorFactory<a name="line.102"></a>
+<span class="sourceLineNo">103</span>          .connect(JMXListener.buildJMXServiceURL(rmiRegistryPort, rmiRegistryPort));<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    } catch (IOException e) {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>      if (e.getCause() instanceof ServiceUnavailableException) {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>        Assert.fail("Can't connect to HMaster ConnectorServer.");<a name="line.106"></a>
+<span class="sourceLineNo">107</span>      }<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    }<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    Assert.assertNotNull("JMXConnector should not be null.", connector);<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    connector.close();<a name="line.110"></a>
+<span class="sourceLineNo">111</span>  }<a name="line.111"></a>
+<span class="sourceLineNo">112</span><a name="line.112"></a>
+<span class="sourceLineNo">113</span>  /**<a name="line.113"></a>
+<span class="sourceLineNo">114</span>   * This tests to validate the RegionServer's ConnectorServer after unauthorised stopRegionServer<a name="line.114"></a>
+<span class="sourceLineNo">115</span>   * call.<a name="line.115"></a>
+<span class="sourceLineNo">116</span>   */<a name="line.116"></a>
+<span class="sourceLineNo">117</span>  @Test(timeout = 180000)<a name="line.117"></a>
+<span class="sourceLineNo">118</span>  public void testRSConnectorServerWhenStopRegionServer() throws Exception {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    conf.set(CoprocessorHost.REGIONSERVER_COPROCESSOR_CONF_KEY,<a name="line.119"></a>
+<span class="sourceLineNo">120</span>      JMXListener.class.getName() + "," + MyAccessController.class.getName());<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    conf.setInt("regionserver.rmi.registry.port", rmiRegistryPort);<a name="line.121"></a>
+<span class="sourceLineNo">122</span>    UTIL.startMiniCluster();<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    admin = UTIL.getConnection().getAdmin();<a name="line.123"></a>
+<span class="sourceLineNo">124</span><a name="line.124"></a>
+<span class="sourceLineNo">125</span>    hasAccess = false;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    ServerName serverName = UTIL.getHBaseCluster().getRegionServer(0).getServerName();<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    LOG.info("Stopping Region Server...");<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    admin.stopRegionServer(serverName.getHostname() + ":" + serverName.getPort());<a name="line.128"></a>
+<span class="sourceLineNo">129</span><a name="line.129"></a>
+<span class="sourceLineNo">130</span>    // Check whether Region Sever JMX Connector server can be connected<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    JMXConnector connector = null;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>    try {<a name="line.132"></a>
+<span class="sourceLineNo">133</span>      connector = JMXConnectorFactory<a name="line.133"></a>
+<span class="sourceLineNo">134</span>          .connect(JMXListener.buildJMXServiceURL(rmiRegistryPort, rmiRegistryPort));<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    } catch (IOException e) {<a name="line.135"></a>
+<span class="sourceLineNo">136</span>      if (e.getCause() instanceof ServiceUnavailableException) {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>        Assert.fail("Can't connect to Region Server ConnectorServer.");<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>    Assert.assertNotNull("JMXConnector should not be null.", connector);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    connector.close();<a name="line.141"></a>
+<span class="sourceLineNo">142</span>  }<a name="line.142"></a>
+<span class="sourceLineNo">143</span><a name="line.143"></a>
+<span class="sourceLineNo">144</span>  /**<a name="line.144"></a>
+<span class="sourceLineNo">145</span>   * This tests to validate the HMaster's ConnectorServer after unauthorised shutdown call.<a name="line.145"></a>
+<span class="sourceLineNo">146</span>   */<a name="line.146"></a>
+<span class="sourceLineNo">147</span>  @Test(timeout = 180000)<a name="line.147"></a>
+<span class="sourceLineNo">148</span>  public void testHMConnectorServerWhenShutdownCluster() throws Exception {<a name="line.148"></a>
+<span class="sourceLineNo">149</span>    conf.set(CoprocessorHost.MASTER_COPROCESSOR_CONF_KEY,<a name="line.149"></a>
+<span class="sourceLineNo">150</span>      JMXListener.class.getName() + "," + MyAccessController.class.getName());<a name="line.150"></a>
+<span class="sourceLineNo">151</span>    conf.setInt("master.rmi.registry.port", rmiRegistryPort);<a name="line.151"></a>
+<span class="sourceLineNo">152</span><a name="line.152"></a>
+<span class="sourceLineNo">153</span>    UTIL.startMiniCluster();<a name="line.153"></a>
+<span class="sourceLineNo">154</span>    admin = UTIL.getConnection().getAdmin();<a name="line.154"></a>
+<span class="sourceLineNo">155</span><a name="line.155"></a>
+<span class="sourceLineNo">156</span>    boolean accessDenied = false;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>    try {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>      hasAccess = false;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>      LOG.info("Stopping HMaster...");<a name="line.159"></a>
+<span class="sourceLineNo">160</span>      admin.shutdown();<a name="line.160"></a>
+<span class="sourceLineNo">161</span>    } catch (AccessDeniedException e) {<a name="line.161"></a>
+<span class="sourceLineNo">162</span>      LOG.error("Exception occurred while stopping HMaster. ", e);<a name="line.162"></a>
+<span class="sourceLineNo">163</span>      accessDenied = true;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>    }<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    Assert.assertTrue(accessDenied);<a name="line.165"></a>
+<span class="sourceLineNo">166</span><a name="line.166"></a>
+<span class="sourceLineNo">167</span>    // Check whether HMaster JMX Connector server can be connected<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    JMXConnector connector = null;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    try {<a name="line.169"></a>
+<span class="sourceLineNo">170</span>      connector = JMXConnectorFactory<a name="line.170"></a>
+<span class="sourceLineNo">171</span>          .connect(JMXListener.buildJMXServiceURL(rmiRegistryPort, rmiRegistryPort));<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    } catch (IOException e) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>      if (e.getCause() instanceof ServiceUnavailableException) {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>        Assert.fail("Can't connect to HMaster ConnectorServer.");<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>    Assert.assertNotNull("JMXConnector should not be null.", connector);<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    connector.close();<a name="line.178"></a>
+<span class="sourceLineNo">179</span>  }<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span>  /*<a name="line.181"></a>
+<span class="sourceLineNo">182</span>   * Customized class for test case execution which will throw ACD exception while executing<a name="line.182"></a>
+<span class="sourceLineNo">183</span>   * stopMaster/preStopRegionServer/preShutdown explicitly.<a name="line.183"></a>
+<span class="sourceLineNo">184</span>   */<a name="line.184"></a>
+<span class="sourceLineNo">185</span>  public static class MyAccessController extends AccessController {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>    @Override<a name="line.186"></a>
+<span class="sourceLineNo">187</span>    public void postStartMaster(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx) throws IOException {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>      // Do nothing. In particular, stop the creation of the hbase:acl table. It makes the<a name="line.188"></a>
+<span class="sourceLineNo">189</span>      // shutdown take time.<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    }<a name="line.190"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>    @Override<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    public void preStopMaster(ObserverContext&lt;MasterCoprocessorEnvironment&gt; c) throws IOException {<a name="line.193"></a>
 <span class="sourceLineNo">194</span>      if (!hasAccess) {<a name="line.194"></a>
-<span class="sourceLineNo">195</span>        throw new AccessDeniedException("Insufficient permissions to stop region server.");<a name="line.195"></a>
+<span class="sourceLineNo">195</span>        throw new AccessDeniedException("Insufficient permissions to stop master");<a name="line.195"></a>
 <span class="sourceLineNo">196</span>      }<a name="line.196"></a>
 <span class="sourceLineNo">197</span>    }<a name="line.197"></a>
 <span class="sourceLineNo">198</span><a name="line.198"></a>
 <span class="sourceLineNo">199</span>    @Override<a name="line.199"></a>
-<span class="sourceLineNo">200</span>    public void preShutdown(ObserverContext&lt;MasterCoprocessorEnvironment&gt; c) throws IOException {<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      if (!hasAccess) {<a name="line.201"></a>
-<span class="sourceLineNo">202</span>        throw new AccessDeniedException("Insufficient permissions to shut down cluster.");<a name="line.202"></a>
-<span class="sourceLineNo">203</span>      }<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    }<a name="line.204"></a>
-<span class="sourceLineNo">205</span><a name="line.205"></a>
-<span class="sourceLineNo">206</span>    @Override<a name="line.206"></a>
-<span class="sourceLineNo">207</span>    public void preExecuteProcedures(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx)<a name="line.207"></a>
-<span class="sourceLineNo">208</span>        throws IOException {<a name="line.208"></a>
-<span class="sourceLineNo">209</span>      // FIXME: ignore the procedure permission check since in our UT framework master is neither<a name="line.209"></a>
-<span class="sourceLineNo">210</span>      // the systemuser nor the superuser so we can not call executeProcedures...<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    }<a name="line.211"></a>
-<span class="sourceLineNo">212</span>  }<a name="line.212"></a>
-<span class="sourceLineNo">213</span>}<a name="line.213"></a>
+<span class="sourceLineNo">200</span>    public void preStopRegionServer(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx)<a name="line.200"></a>
+<span class="sourceLineNo">201</span>        throws IOException {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>      if (!hasAccess) {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>        throw new AccessDeniedException("Insufficient permissions to stop region server.");<a name="line.203"></a>
+<span class="sourceLineNo">204</span>      }<a name="line.204"></a>
+<span class="sourceLineNo">205</span>    }<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span>    @Override<a name="line.207"></a>
+<span class="sourceLineNo">208</span>    public void preShutdown(ObserverContext&lt;MasterCoprocessorEnvironment&gt; c) throws IOException {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>      if (!hasAccess) {<a name="line.209"></a>
+<span class="sourceLineNo">210</span>        throw new AccessDeniedException("Insufficient permissions to shut down cluster.");<a name="line.210"></a>
+<span class="sourceLineNo">211</span>      }<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    }<a name="line.212"></a>
+<span class="sourceLineNo">213</span><a name="line.213"></a>
+<span class="sourceLineNo">214</span>    @Override<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    public void preExecuteProcedures(ObserverContext&lt;RegionServerCoprocessorEnvironment&gt; ctx)<a name="line.215"></a>
+<span class="sourceLineNo">216</span>        throws IOException {<a name="line.216"></a>
+<span class="sourceLineNo">217</span>      // FIXME: ignore the procedure permission check since in our UT framework master is neither<a name="line.217"></a>
+<span class="sourceLineNo">218</span>      // the systemuser nor the superuser so we can not call executeProcedures...<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    }<a name="line.219"></a>
+<span class="sourceLineNo">220</span>  }<a name="line.220"></a>
+<span class="sourceLineNo">221</span>}<a name="line.221"></a>
 
 
 


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestZKAsyncRegistry.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestZKAsyncRegistry.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestZKAsyncRegistry.html
index 5a188ed..1047518 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestZKAsyncRegistry.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestZKAsyncRegistry.html
@@ -38,108 +38,114 @@
 <span class="sourceLineNo">030</span><a name="line.30"></a>
 <span class="sourceLineNo">031</span>import org.apache.commons.io.IOUtils;<a name="line.31"></a>
 <span class="sourceLineNo">032</span>import org.apache.hadoop.conf.Configuration;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.HConstants;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.TableName;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.Waiter.ExplainingPredicate;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<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.zookeeper.ReadOnlyZKClient;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.junit.AfterClass;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.junit.BeforeClass;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.junit.Test;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.junit.experimental.categories.Category;<a name="line.45"></a>
-<span class="sourceLineNo">046</span><a name="line.46"></a>
-<span class="sourceLineNo">047</span>@Category({ MediumTests.class, ClientTests.class })<a name="line.47"></a>
-<span class="sourceLineNo">048</span>public class TestZKAsyncRegistry {<a name="line.48"></a>
+<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.ClusterId;<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.HRegionLocation;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.TableName;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.Waiter.ExplainingPredicate;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.testclassification.MediumTests;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.zookeeper.ReadOnlyZKClient;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.junit.AfterClass;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.junit.BeforeClass;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.junit.Test;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.junit.experimental.categories.Category;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.slf4j.Logger;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.slf4j.LoggerFactory;<a name="line.48"></a>
 <span class="sourceLineNo">049</span><a name="line.49"></a>
-<span class="sourceLineNo">050</span>  private static final HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();<a name="line.50"></a>
-<span class="sourceLineNo">051</span><a name="line.51"></a>
-<span class="sourceLineNo">052</span>  private static ZKAsyncRegistry REGISTRY;<a name="line.52"></a>
-<span class="sourceLineNo">053</span><a name="line.53"></a>
-<span class="sourceLineNo">054</span>  // waits for all replicas to have region location<a name="line.54"></a>
-<span class="sourceLineNo">055</span>  static void waitUntilAllReplicasHavingRegionLocation(TableName tbl) throws IOException {<a name="line.55"></a>
-<span class="sourceLineNo">056</span>    TEST_UTIL.waitFor(<a name="line.56"></a>
-<span class="sourceLineNo">057</span>      TEST_UTIL.getConfiguration().getLong("hbase.client.sync.wait.timeout.msec", 60000), 200, true,<a name="line.57"></a>
-<span class="sourceLineNo">058</span>      new ExplainingPredicate&lt;IOException&gt;() {<a name="line.58"></a>
-<span class="sourceLineNo">059</span>        @Override<a name="line.59"></a>
-<span class="sourceLineNo">060</span>        public String explainFailure() throws IOException {<a name="line.60"></a>
-<span class="sourceLineNo">061</span>          return TEST_UTIL.explainTableAvailability(tbl);<a name="line.61"></a>
-<span class="sourceLineNo">062</span>        }<a name="line.62"></a>
-<span class="sourceLineNo">063</span><a name="line.63"></a>
-<span class="sourceLineNo">064</span>        @Override<a name="line.64"></a>
-<span class="sourceLineNo">065</span>        public boolean evaluate() throws IOException {<a name="line.65"></a>
-<span class="sourceLineNo">066</span>          AtomicBoolean ready = new AtomicBoolean(true);<a name="line.66"></a>
-<span class="sourceLineNo">067</span>          try {<a name="line.67"></a>
-<span class="sourceLineNo">068</span>            RegionLocations locs = REGISTRY.getMetaRegionLocation().get();<a name="line.68"></a>
-<span class="sourceLineNo">069</span>            assertEquals(3, locs.getRegionLocations().length);<a name="line.69"></a>
-<span class="sourceLineNo">070</span>            IntStream.range(0, 3).forEach(i -&gt; {<a name="line.70"></a>
-<span class="sourceLineNo">071</span>              HRegionLocation loc = locs.getRegionLocation(i);<a name="line.71"></a>
-<span class="sourceLineNo">072</span>              if (loc == null) {<a name="line.72"></a>
-<span class="sourceLineNo">073</span>                ready.set(false);<a name="line.73"></a>
-<span class="sourceLineNo">074</span>              }<a name="line.74"></a>
-<span class="sourceLineNo">075</span>            });<a name="line.75"></a>
-<span class="sourceLineNo">076</span>          } catch (Exception e) {<a name="line.76"></a>
-<span class="sourceLineNo">077</span>            ready.set(false);<a name="line.77"></a>
-<span class="sourceLineNo">078</span>          }<a name="line.78"></a>
-<span class="sourceLineNo">079</span>          return ready.get();<a name="line.79"></a>
-<span class="sourceLineNo">080</span>        }<a name="line.80"></a>
-<span class="sourceLineNo">081</span>      });<a name="line.81"></a>
-<span class="sourceLineNo">082</span>  }<a name="line.82"></a>
-<span class="sourceLineNo">083</span><a name="line.83"></a>
-<span class="sourceLineNo">084</span>  @BeforeClass<a name="line.84"></a>
-<span class="sourceLineNo">085</span>  public static void setUp() throws Exception {<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    TEST_UTIL.getConfiguration().setInt(META_REPLICAS_NUM, 3);<a name="line.86"></a>
-<span class="sourceLineNo">087</span>    TEST_UTIL.startMiniCluster(3);<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    REGISTRY = new ZKAsyncRegistry(TEST_UTIL.getConfiguration());<a name="line.88"></a>
-<span class="sourceLineNo">089</span>  }<a name="line.89"></a>
-<span class="sourceLineNo">090</span><a name="line.90"></a>
-<span class="sourceLineNo">091</span>  @AfterClass<a name="line.91"></a>
-<span class="sourceLineNo">092</span>  public static void tearDown() throws Exception {<a name="line.92"></a>
-<span class="sourceLineNo">093</span>    IOUtils.closeQuietly(REGISTRY);<a name="line.93"></a>
-<span class="sourceLineNo">094</span>    TEST_UTIL.shutdownMiniCluster();<a name="line.94"></a>
-<span class="sourceLineNo">095</span>  }<a name="line.95"></a>
-<span class="sourceLineNo">096</span><a name="line.96"></a>
-<span class="sourceLineNo">097</span>  @Test<a name="line.97"></a>
-<span class="sourceLineNo">098</span>  public void test() throws InterruptedException, ExecutionException, IOException {<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    assertEquals(TEST_UTIL.getHBaseCluster().getClusterStatus().getClusterId(),<a name="line.99"></a>
-<span class="sourceLineNo">100</span>      REGISTRY.getClusterId().get());<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    assertEquals(TEST_UTIL.getHBaseCluster().getClusterStatus().getServersSize(),<a name="line.101"></a>
-<span class="sourceLineNo">102</span>      REGISTRY.getCurrentNrHRS().get().intValue());<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    assertEquals(TEST_UTIL.getHBaseCluster().getMaster().getServerName(),<a name="line.103"></a>
-<span class="sourceLineNo">104</span>      REGISTRY.getMasterAddress().get());<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    assertEquals(-1, REGISTRY.getMasterInfoPort().get().intValue());<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    waitUntilAllReplicasHavingRegionLocation(TableName.META_TABLE_NAME);<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    RegionLocations locs = REGISTRY.getMetaRegionLocation().get();<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    assertEquals(3, locs.getRegionLocations().length);<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    IntStream.range(0, 3).forEach(i -&gt; {<a name="line.109"></a>
-<span class="sourceLineNo">110</span>      HRegionLocation loc = locs.getRegionLocation(i);<a name="line.110"></a>
-<span class="sourceLineNo">111</span>      assertNotNull("Replica " + i + " doesn't have location", loc);<a name="line.111"></a>
-<span class="sourceLineNo">112</span>      assertEquals(TableName.META_TABLE_NAME, loc.getRegion().getTable());<a name="line.112"></a>
-<span class="sourceLineNo">113</span>      assertEquals(i, loc.getRegion().getReplicaId());<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    });<a name="line.114"></a>
-<span class="sourceLineNo">115</span>  }<a name="line.115"></a>
-<span class="sourceLineNo">116</span><a name="line.116"></a>
-<span class="sourceLineNo">117</span>  @Test<a name="line.117"></a>
-<span class="sourceLineNo">118</span>  public void testIndependentZKConnections() throws IOException {<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    ReadOnlyZKClient zk1 = REGISTRY.getZKClient();<a name="line.119"></a>
-<span class="sourceLineNo">120</span><a name="line.120"></a>
-<span class="sourceLineNo">121</span>    Configuration otherConf = new Configuration(TEST_UTIL.getConfiguration());<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    otherConf.set(HConstants.ZOOKEEPER_QUORUM, "127.0.0.1");<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    try (ZKAsyncRegistry otherRegistry = new ZKAsyncRegistry(otherConf)) {<a name="line.123"></a>
-<span class="sourceLineNo">124</span>      ReadOnlyZKClient zk2 = otherRegistry.getZKClient();<a name="line.124"></a>
-<span class="sourceLineNo">125</span><a name="line.125"></a>
-<span class="sourceLineNo">126</span>      assertNotSame("Using a different configuration / quorum should result in different backing " +<a name="line.126"></a>
-<span class="sourceLineNo">127</span>          "zk connection.",<a name="line.127"></a>
-<span class="sourceLineNo">128</span>        zk1, zk2);<a name="line.128"></a>
-<span class="sourceLineNo">129</span>      assertNotEquals(<a name="line.129"></a>
-<span class="sourceLineNo">130</span>        "Using a different configrution / quorum should be reflected in the " + "zk connection.",<a name="line.130"></a>
-<span class="sourceLineNo">131</span>        zk1.getConnectString(), zk2.getConnectString());<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    }<a name="line.132"></a>
-<span class="sourceLineNo">133</span>  }<a name="line.133"></a>
-<span class="sourceLineNo">134</span>}<a name="line.134"></a>
+<span class="sourceLineNo">050</span>@Category({ MediumTests.class, ClientTests.class })<a name="line.50"></a>
+<span class="sourceLineNo">051</span>public class TestZKAsyncRegistry {<a name="line.51"></a>
+<span class="sourceLineNo">052</span>  private static final Logger LOG = LoggerFactory.getLogger(TestZKAsyncRegistry.class);<a name="line.52"></a>
+<span class="sourceLineNo">053</span>  private static final HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>  private static ZKAsyncRegistry REGISTRY;<a name="line.55"></a>
+<span class="sourceLineNo">056</span><a name="line.56"></a>
+<span class="sourceLineNo">057</span>  // waits for all replicas to have region location<a name="line.57"></a>
+<span class="sourceLineNo">058</span>  static void waitUntilAllReplicasHavingRegionLocation(TableName tbl) throws IOException {<a name="line.58"></a>
+<span class="sourceLineNo">059</span>    TEST_UTIL.waitFor(<a name="line.59"></a>
+<span class="sourceLineNo">060</span>      TEST_UTIL.getConfiguration().getLong("hbase.client.sync.wait.timeout.msec", 60000), 200, true,<a name="line.60"></a>
+<span class="sourceLineNo">061</span>      new ExplainingPredicate&lt;IOException&gt;() {<a name="line.61"></a>
+<span class="sourceLineNo">062</span>        @Override<a name="line.62"></a>
+<span class="sourceLineNo">063</span>        public String explainFailure() throws IOException {<a name="line.63"></a>
+<span class="sourceLineNo">064</span>          return TEST_UTIL.explainTableAvailability(tbl);<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>        @Override<a name="line.67"></a>
+<span class="sourceLineNo">068</span>        public boolean evaluate() throws IOException {<a name="line.68"></a>
+<span class="sourceLineNo">069</span>          AtomicBoolean ready = new AtomicBoolean(true);<a name="line.69"></a>
+<span class="sourceLineNo">070</span>          try {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>            RegionLocations locs = REGISTRY.getMetaRegionLocation().get();<a name="line.71"></a>
+<span class="sourceLineNo">072</span>            assertEquals(3, locs.getRegionLocations().length);<a name="line.72"></a>
+<span class="sourceLineNo">073</span>            IntStream.range(0, 3).forEach(i -&gt; {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>              HRegionLocation loc = locs.getRegionLocation(i);<a name="line.74"></a>
+<span class="sourceLineNo">075</span>              if (loc == null) {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                ready.set(false);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>              }<a name="line.77"></a>
+<span class="sourceLineNo">078</span>            });<a name="line.78"></a>
+<span class="sourceLineNo">079</span>          } catch (Exception e) {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>            ready.set(false);<a name="line.80"></a>
+<span class="sourceLineNo">081</span>          }<a name="line.81"></a>
+<span class="sourceLineNo">082</span>          return ready.get();<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><a name="line.86"></a>
+<span class="sourceLineNo">087</span>  @BeforeClass<a name="line.87"></a>
+<span class="sourceLineNo">088</span>  public static void setUp() throws Exception {<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    TEST_UTIL.getConfiguration().setInt(META_REPLICAS_NUM, 3);<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    TEST_UTIL.startMiniCluster(3);<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    REGISTRY = new ZKAsyncRegistry(TEST_UTIL.getConfiguration());<a name="line.91"></a>
+<span class="sourceLineNo">092</span>  }<a name="line.92"></a>
+<span class="sourceLineNo">093</span><a name="line.93"></a>
+<span class="sourceLineNo">094</span>  @AfterClass<a name="line.94"></a>
+<span class="sourceLineNo">095</span>  public static void tearDown() throws Exception {<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    IOUtils.closeQuietly(REGISTRY);<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    TEST_UTIL.shutdownMiniCluster();<a name="line.97"></a>
+<span class="sourceLineNo">098</span>  }<a name="line.98"></a>
+<span class="sourceLineNo">099</span><a name="line.99"></a>
+<span class="sourceLineNo">100</span>  @Test<a name="line.100"></a>
+<span class="sourceLineNo">101</span>  public void test() throws InterruptedException, ExecutionException, IOException {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    LOG.info("STARTED TEST");<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    String clusterId = REGISTRY.getClusterId().get();<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    String expectedClusterId = TEST_UTIL.getHBaseCluster().getMaster().getClusterId();<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    assertEquals("Expected " + expectedClusterId + ", found=" + clusterId,<a name="line.105"></a>
+<span class="sourceLineNo">106</span>        expectedClusterId, clusterId);<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    assertEquals(TEST_UTIL.getHBaseCluster().getClusterStatus().getServersSize(),<a name="line.107"></a>
+<span class="sourceLineNo">108</span>      REGISTRY.getCurrentNrHRS().get().intValue());<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    assertEquals(TEST_UTIL.getHBaseCluster().getMaster().getServerName(),<a name="line.109"></a>
+<span class="sourceLineNo">110</span>      REGISTRY.getMasterAddress().get());<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    assertEquals(-1, REGISTRY.getMasterInfoPort().get().intValue());<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    waitUntilAllReplicasHavingRegionLocation(TableName.META_TABLE_NAME);<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    RegionLocations locs = REGISTRY.getMetaRegionLocation().get();<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    assertEquals(3, locs.getRegionLocations().length);<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    IntStream.range(0, 3).forEach(i -&gt; {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>      HRegionLocation loc = locs.getRegionLocation(i);<a name="line.116"></a>
+<span class="sourceLineNo">117</span>      assertNotNull("Replica " + i + " doesn't have location", loc);<a name="line.117"></a>
+<span class="sourceLineNo">118</span>      assertEquals(TableName.META_TABLE_NAME, loc.getRegion().getTable());<a name="line.118"></a>
+<span class="sourceLineNo">119</span>      assertEquals(i, loc.getRegion().getReplicaId());<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    });<a name="line.120"></a>
+<span class="sourceLineNo">121</span>  }<a name="line.121"></a>
+<span class="sourceLineNo">122</span><a name="line.122"></a>
+<span class="sourceLineNo">123</span>  @Test<a name="line.123"></a>
+<span class="sourceLineNo">124</span>  public void testIndependentZKConnections() throws IOException {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    ReadOnlyZKClient zk1 = REGISTRY.getZKClient();<a name="line.125"></a>
+<span class="sourceLineNo">126</span><a name="line.126"></a>
+<span class="sourceLineNo">127</span>    Configuration otherConf = new Configuration(TEST_UTIL.getConfiguration());<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    otherConf.set(HConstants.ZOOKEEPER_QUORUM, "127.0.0.1");<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    try (ZKAsyncRegistry otherRegistry = new ZKAsyncRegistry(otherConf)) {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>      ReadOnlyZKClient zk2 = otherRegistry.getZKClient();<a name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span>      assertNotSame("Using a different configuration / quorum should result in different backing " +<a name="line.132"></a>
+<span class="sourceLineNo">133</span>          "zk connection.",<a name="line.133"></a>
+<span class="sourceLineNo">134</span>        zk1, zk2);<a name="line.134"></a>
+<span class="sourceLineNo">135</span>      assertNotEquals(<a name="line.135"></a>
+<span class="sourceLineNo">136</span>        "Using a different configrution / quorum should be reflected in the " + "zk connection.",<a name="line.136"></a>
+<span class="sourceLineNo">137</span>        zk1.getConnectString(), zk2.getConnectString());<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>}<a name="line.140"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/src-html/org/apache/hadoop/hbase/master/TestDLSAsyncFSWAL.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/master/TestDLSAsyncFSWAL.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/TestDLSAsyncFSWAL.html
index 9f35ccb..1ec1570 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/master/TestDLSAsyncFSWAL.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/TestDLSAsyncFSWAL.html
@@ -27,16 +27,18 @@
 <span class="sourceLineNo">019</span><a name="line.19"></a>
 <span class="sourceLineNo">020</span>import org.apache.hadoop.hbase.testclassification.LargeTests;<a name="line.20"></a>
 <span class="sourceLineNo">021</span>import org.apache.hadoop.hbase.testclassification.MasterTests;<a name="line.21"></a>
-<span class="sourceLineNo">022</span>import org.junit.experimental.categories.Category;<a name="line.22"></a>
-<span class="sourceLineNo">023</span><a name="line.23"></a>
-<span class="sourceLineNo">024</span>@Category({ MasterTests.class, LargeTests.class })<a name="line.24"></a>
-<span class="sourceLineNo">025</span>public class TestDLSAsyncFSWAL extends AbstractTestDLS {<a name="line.25"></a>
-<span class="sourceLineNo">026</span><a name="line.26"></a>
-<span class="sourceLineNo">027</span>  @Override<a name="line.27"></a>
-<span class="sourceLineNo">028</span>  protected String getWalProvider() {<a name="line.28"></a>
-<span class="sourceLineNo">029</span>    return "asyncfs";<a name="line.29"></a>
-<span class="sourceLineNo">030</span>  }<a name="line.30"></a>
-<span class="sourceLineNo">031</span>}<a name="line.31"></a>
+<span class="sourceLineNo">022</span>import org.junit.Ignore;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.junit.experimental.categories.Category;<a name="line.23"></a>
+<span class="sourceLineNo">024</span><a name="line.24"></a>
+<span class="sourceLineNo">025</span>@Ignore // Temporarily disabled. Fails 40% of the time.<a name="line.25"></a>
+<span class="sourceLineNo">026</span>@Category({ MasterTests.class, LargeTests.class })<a name="line.26"></a>
+<span class="sourceLineNo">027</span>public class TestDLSAsyncFSWAL extends AbstractTestDLS {<a name="line.27"></a>
+<span class="sourceLineNo">028</span><a name="line.28"></a>
+<span class="sourceLineNo">029</span>  @Override<a name="line.29"></a>
+<span class="sourceLineNo">030</span>  protected String getWalProvider() {<a name="line.30"></a>
+<span class="sourceLineNo">031</span>    return "asyncfs";<a name="line.31"></a>
+<span class="sourceLineNo">032</span>  }<a name="line.32"></a>
+<span class="sourceLineNo">033</span>}<a name="line.33"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/src-html/org/apache/hadoop/hbase/master/TestDLSFSHLog.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/master/TestDLSFSHLog.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/TestDLSFSHLog.html
index cf79e59..f19c6b2 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/master/TestDLSFSHLog.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/TestDLSFSHLog.html
@@ -27,16 +27,18 @@
 <span class="sourceLineNo">019</span><a name="line.19"></a>
 <span class="sourceLineNo">020</span>import org.apache.hadoop.hbase.testclassification.LargeTests;<a name="line.20"></a>
 <span class="sourceLineNo">021</span>import org.apache.hadoop.hbase.testclassification.MasterTests;<a name="line.21"></a>
-<span class="sourceLineNo">022</span>import org.junit.experimental.categories.Category;<a name="line.22"></a>
-<span class="sourceLineNo">023</span><a name="line.23"></a>
-<span class="sourceLineNo">024</span>@Category({ MasterTests.class, LargeTests.class })<a name="line.24"></a>
-<span class="sourceLineNo">025</span>public class TestDLSFSHLog extends AbstractTestDLS {<a name="line.25"></a>
-<span class="sourceLineNo">026</span><a name="line.26"></a>
-<span class="sourceLineNo">027</span>  @Override<a name="line.27"></a>
-<span class="sourceLineNo">028</span>  protected String getWalProvider() {<a name="line.28"></a>
-<span class="sourceLineNo">029</span>    return "filesystem";<a name="line.29"></a>
-<span class="sourceLineNo">030</span>  }<a name="line.30"></a>
-<span class="sourceLineNo">031</span>}<a name="line.31"></a>
+<span class="sourceLineNo">022</span>import org.junit.Ignore;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.junit.experimental.categories.Category;<a name="line.23"></a>
+<span class="sourceLineNo">024</span><a name="line.24"></a>
+<span class="sourceLineNo">025</span>@Ignore // Fails 33% of the time. Disabling for now.<a name="line.25"></a>
+<span class="sourceLineNo">026</span>@Category({ MasterTests.class, LargeTests.class })<a name="line.26"></a>
+<span class="sourceLineNo">027</span>public class TestDLSFSHLog extends AbstractTestDLS {<a name="line.27"></a>
+<span class="sourceLineNo">028</span><a name="line.28"></a>
+<span class="sourceLineNo">029</span>  @Override<a name="line.29"></a>
+<span class="sourceLineNo">030</span>  protected String getWalProvider() {<a name="line.30"></a>
+<span class="sourceLineNo">031</span>    return "filesystem";<a name="line.31"></a>
+<span class="sourceLineNo">032</span>  }<a name="line.32"></a>
+<span class="sourceLineNo">033</span>}<a name="line.33"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/src-html/org/apache/hadoop/hbase/master/TestTableStateManager.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/master/TestTableStateManager.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/TestTableStateManager.html
index 8fbbfd4..e56321c 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/master/TestTableStateManager.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/TestTableStateManager.html
@@ -66,7 +66,7 @@
 <span class="sourceLineNo">058</span>  @Test(timeout = 60000)<a name="line.58"></a>
 <span class="sourceLineNo">059</span>  public void testUpgradeFromZk() throws Exception {<a name="line.59"></a>
 <span class="sourceLineNo">060</span>    final TableName tableName = TableName.valueOf(name.getMethodName());<a name="line.60"></a>
-<span class="sourceLineNo">061</span>    TEST_UTIL.startMiniCluster(1, 1);<a name="line.61"></a>
+<span class="sourceLineNo">061</span>    TEST_UTIL.startMiniCluster(2, 1);<a name="line.61"></a>
 <span class="sourceLineNo">062</span>    TEST_UTIL.shutdownMiniHBaseCluster();<a name="line.62"></a>
 <span class="sourceLineNo">063</span>    ZKWatcher watcher = TEST_UTIL.getZooKeeperWatcher();<a name="line.63"></a>
 <span class="sourceLineNo">064</span>    setTableStateInZK(watcher, tableName, ZooKeeperProtos.DeprecatedTableState.State.DISABLED);<a name="line.64"></a>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html b/devapidocs/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html
index f9c6b45..e1f2a76 100644
--- a/devapidocs/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html
+++ b/devapidocs/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":9,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":9,"i26":9,"i27":10,"i28":10,"i29":10,"i30":9,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":9,"i41":10,"i42":9,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":9,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":9,"i68":10,"i69":9,"i70":9,"i71":9,"i72":9,"i73":10,"i74":9,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10,"i91":9,"i92":10,"i93":9,"i94":9,"i95":9,"i96":9,"i97":10,"i98":10,"i99":10,"i100":10,"i101":10,"i102":10,"i103":10,"i104":10,"i105":10,"i106":10,"i107":10,"i108":10,"i109":10,"i110":10}
 ;
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":9,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":9,"i26":9,"i27":10,"i28":10,"i29":10,"i30":9,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":9,"i41":10,"i42":9,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":9,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":9,"i68":10,"i69":9,"i70":9,"i71":9,"i72":9,"i73":9,"i74":9,"i75":10,"i76":9,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10,"i91":10,"i92":9,"i93":10,"i94":9,"i95":9,"i96":9,"i97":9,"i98":10,"i99":10,"i100":10,"i101":10,"i102":10,"i103":10,"i104":10,"i105":10,"i106":10,"i107":10,"i108":10,"i109":10,"i110":10,"i
 111":10};
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -114,7 +114,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Private
-public final class <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.92">BackupSystemTable</a>
+public final class <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.94">BackupSystemTable</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 <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a></pre>
 <div class="block">This class provides API to access backup system table<br>
@@ -212,84 +212,92 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#BULK_LOAD_PREFIX_BYTES">BULK_LOAD_PREFIX_BYTES</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#bulkLoadTableName">bulkLoadTableName</a></span></code>
+<div class="block">Backup System table name for bulk loaded files.</div>
+</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#connection">connection</a></span></code>
 <div class="block">Connection to HBase cluster, shared among all instances</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static byte[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#DELETE_OP_ROW">DELETE_OP_ROW</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static byte[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#EMPTY_VALUE">EMPTY_VALUE</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) static byte[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#FAM_COL">FAM_COL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private 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/backup/impl/BackupSystemTable.html#INCR_BACKUP_SET">INCR_BACKUP_SET</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static org.slf4j.Logger</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#LOG">LOG</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static byte[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#MERGE_OP_ROW">MERGE_OP_ROW</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) static byte[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#META_FAMILY">META_FAMILY</a></span></code>
 <div class="block">Stores other meta</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private 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/backup/impl/BackupSystemTable.html#NULL">NULL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) static byte[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#PATH_COL">PATH_COL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private 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/backup/impl/BackupSystemTable.html#RS_LOG_TS_PREFIX">RS_LOG_TS_PREFIX</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) static byte[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#SESSIONS_FAMILY">SESSIONS_FAMILY</a></span></code>
 <div class="block">Stores backup sessions (contexts)</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private 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/backup/impl/BackupSystemTable.html#SET_KEY_PREFIX">SET_KEY_PREFIX</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private 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/backup/impl/BackupSystemTable.html#START_CODE_ROW">START_CODE_ROW</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) static byte[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#STATE_COL">STATE_COL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private 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/backup/impl/BackupSystemTable.html#TABLE_RS_LOG_MAP_PREFIX">TABLE_RS_LOG_MAP_PREFIX</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#tableName">tableName</a></span></code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#tableName">tableName</a></span></code>
+<div class="block">Backup system table (main) name</div>
+</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) static byte[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#TBL_COL">TBL_COL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private 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/backup/impl/BackupSystemTable.html#WALS_PREFIX">WALS_PREFIX</a></span></code>&nbsp;</td>
 </tr>
@@ -595,8 +603,8 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 </td>
 </tr>
 <tr id="i47" class="rowColor">
-<td class="colFirst"><code>(package private) void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#deleteBulkLoadedFiles-java.util.Map-">deleteBulkLoadedFiles</a></span>(<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;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;map)</code>&nbsp;</td>
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#deleteBulkLoadedRows-java.util.List-">deleteBulkLoadedRows</a></span>(<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;byte[]&gt;&nbsp;rows)</code>&nbsp;</td>
 </tr>
 <tr id="i48" class="altColor">
 <td class="colFirst"><code>void</code></td>
@@ -712,209 +720,215 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#getSnapshotName-org.apache.hadoop.conf.Configuration-">getSnapshotName</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>&nbsp;</td>
 </tr>
 <tr id="i70" class="altColor">
-<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a></code></td>
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#getSystemTableDescriptor-org.apache.hadoop.conf.Configuration-">getSystemTableDescriptor</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>
 <div class="block">Get backup system table descriptor</div>
 </td>
 </tr>
 <tr id="i71" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#getSystemTableForBulkLoadedDataDescriptor-org.apache.hadoop.conf.Configuration-">getSystemTableForBulkLoadedDataDescriptor</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>
+<div class="block">Get backup system table descriptor</div>
+</td>
+</tr>
+<tr id="i72" class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#getTableName-org.apache.hadoop.conf.Configuration-">getTableName</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>&nbsp;</td>
 </tr>
-<tr id="i72" class="altColor">
+<tr id="i73" 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/backup/impl/BackupSystemTable.html#getTableNameAsString-org.apache.hadoop.conf.Configuration-">getTableNameAsString</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>&nbsp;</td>
 </tr>
-<tr id="i73" class="rowColor">
+<tr id="i74" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#getTableNameForBulkLoadedData-org.apache.hadoop.conf.Configuration-">getTableNameForBulkLoadedData</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>&nbsp;</td>
+</tr>
+<tr id="i75" 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/backup/impl/BackupSystemTable.html#getTableNameForReadLogTimestampMap-byte:A-">getTableNameForReadLogTimestampMap</a></span>(byte[]&nbsp;cloneRow)</code>
 <div class="block">Get table name from rowkey</div>
 </td>
 </tr>
-<tr id="i74" class="altColor">
+<tr id="i76" class="altColor">
 <td class="colFirst"><code>(package private) 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/backup/impl/BackupSystemTable.html#getTableNameFromOrigBulkLoadRow-java.lang.String-">getTableNameFromOrigBulkLoadRow</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;rowStr)</code>&nbsp;</td>
 </tr>
-<tr id="i75" class="rowColor">
+<tr id="i77" 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/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#getTablesForBackupType-org.apache.hadoop.hbase.backup.BackupType-">getTablesForBackupType</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/backup/BackupType.html" title="enum in org.apache.hadoop.hbase.backup">BackupType</a>&nbsp;type)</code>&nbsp;</td>
 </tr>
-<tr id="i76" class="altColor">
+<tr id="i78" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.WALItem.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupSystemTable.WALItem</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#getWALFilesIterator-java.lang.String-">getWALFilesIterator</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;backupRoot)</code>
 <div class="block">Register WAL files as eligible for deletion</div>
 </td>
 </tr>
-<tr id="i77" class="rowColor">
+<tr id="i79" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#hasBackupSessions--">hasBackupSessions</a></span>()</code>
 <div class="block">Checks if we have at least one backup session in backup system table This API is used by
  BackupLogCleaner</div>
 </td>
 </tr>
-<tr id="i78" class="altColor">
+<tr id="i80" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#isMergeInProgress--">isMergeInProgress</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i79" class="rowColor">
+<tr id="i81" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#isWALFileDeletable-java.lang.String-">isWALFileDeletable</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;file)</code>
 <div class="block">Check if WAL file is eligible for deletion Future: to support all backup destinations</div>
 </td>
 </tr>
-<tr id="i80" class="altColor">
+<tr id="i82" 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/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#listBackupSets--">listBackupSets</a></span>()</code>
 <div class="block">Get backup set list</div>
 </td>
 </tr>
-<tr id="i81" class="rowColor">
+<tr id="i83" 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/backup/impl/BackupSystemTable.html#merge-java.lang.String:A-java.lang.String:A-">merge</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;existingTables,
      <a href="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;newTables)</code>&nbsp;</td>
 </tr>
-<tr id="i82" class="altColor">
+<tr id="i84" class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#readBackupInfo-java.lang.String-">readBackupInfo</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;backupId)</code>
 <div class="block">Reads backup status object (instance of backup info) from backup system table table</div>
 </td>
 </tr>
-<tr id="i83" class="rowColor">
+<tr id="i85" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#readBackupStartCode-java.lang.String-">readBackupStartCode</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;backupRoot)</code>
 <div class="block">Read the last backup start code (timestamp) of last successful backup.</div>
 </td>
 </tr>
-<tr id="i84" class="altColor">
+<tr id="i86" class="altColor">
 <td class="colFirst"><code>(package private) <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;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#readBulkLoadedFiles-java.lang.String-">readBulkLoadedFiles</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;backupId)</code>&nbsp;</td>
 </tr>
-<tr id="i85" class="rowColor">
+<tr id="i87" class="rowColor">
 <td class="colFirst"><code><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;byte[],<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.fs.Path&gt;&gt;[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#readBulkLoadedFiles-java.lang.String-java.util.List-">readBulkLoadedFiles</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;backupId,
                    <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/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;sTableList)</code>&nbsp;</td>
 </tr>
-<tr id="i86" class="altColor">
+<tr id="i88" class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<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="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</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/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/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="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/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&gt;&gt;&gt;&gt;,<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;byte[]&gt;&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#readBulkloadRows-java.util.List-">readBulkloadRows</a></span>(<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/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tableList)</code>&nbsp;</td>
 </tr>
-<tr id="i87" class="rowColor">
+<tr id="i89" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="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/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#readLogTimestampMap-java.lang.String-">readLogTimestampMap</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;backupRoot)</code>
 <div class="block">Read the timestamp for each region server log after the last successful backup.</div>
 </td>
 </tr>
-<tr id="i88" class="altColor">
+<tr id="i90" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="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/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#readRegionServerLastLogRollResult-java.lang.String-">readRegionServerLastLogRollResult</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;backupRoot)</code>
 <div class="block">Get the Region Servers log information after the last log roll from backup system table.</div>
 </td>
 </tr>
-<tr id="i89" class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#removeBulkLoadedRows-java.util.List-java.util.List-">removeBulkLoadedRows</a></span>(<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/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;lst,
-                    <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;byte[]&gt;&nbsp;rows)</code>&nbsp;</td>
-</tr>
-<tr id="i90" class="altColor">
+<tr id="i91" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#removeFromBackupSet-java.lang.String-java.lang.String:A-">removeFromBackupSet</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;name,
                    <a href="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;toRemove)</code>
 <div class="block">Remove tables from backup set (list of tables)</div>
 </td>
 </tr>
-<tr id="i91" class="rowColor">
+<tr id="i92" class="altColor">
 <td class="colFirst"><code>static void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#restoreFromSnapshot-org.apache.hadoop.hbase.client.Connection-">restoreFromSnapshot</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;conn)</code>&nbsp;</td>
 </tr>
-<tr id="i92" class="altColor">
+<tr id="i93" class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#resultToBackupInfo-org.apache.hadoop.hbase.client.Result-">resultToBackupInfo</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;res)</code>
 <div class="block">Converts Result to BackupInfo</div>
 </td>
 </tr>
-<tr id="i93" class="rowColor">
+<tr id="i94" class="altColor">
 <td class="colFirst"><code>private static byte[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#rowkey-java.lang.String-java.lang.String...-">rowkey</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;s,
       <a href="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;other)</code>&nbsp;</td>
 </tr>
-<tr id="i94" class="altColor">
+<tr id="i95" class="rowColor">
 <td class="colFirst"><code>static void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#snapshot-org.apache.hadoop.hbase.client.Connection-">snapshot</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;conn)</code>&nbsp;</td>
 </tr>
-<tr id="i95" class="rowColor">
+<tr id="i96" class="altColor">
 <td class="colFirst"><code>protected static boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#snapshotExists-org.apache.hadoop.hbase.client.Admin-java.lang.String-">snapshotExists</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a>&nbsp;admin,
               <a href="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;snapshotName)</code>&nbsp;</td>
 </tr>
-<tr id="i96" class="altColor">
+<tr id="i97" class="rowColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#snapshotExists-org.apache.hadoop.hbase.client.Connection-">snapshotExists</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;conn)</code>&nbsp;</td>
 </tr>
-<tr id="i97" class="rowColor">
+<tr id="i98" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#startBackupExclusiveOperation--">startBackupExclusiveOperation</a></span>()</code>
 <div class="block">Exclusive operations are:
  create, delete, merge</div>
 </td>
 </tr>
-<tr id="i98" class="altColor">
+<tr id="i99" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#startDeleteOperation-java.lang.String:A-">startDeleteOperation</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;backupIdList)</code>&nbsp;</td>
 </tr>
-<tr id="i99" class="rowColor">
+<tr id="i100" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#startMergeOperation-java.lang.String:A-">startMergeOperation</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;backupIdList)</code>&nbsp;</td>
 </tr>
-<tr id="i100" class="altColor">
+<tr id="i101" class="rowColor">
 <td class="colFirst"><code>private org.apache.hadoop.hbase.shaded.protobuf.generated.BackupProtos.TableServerTimestamp</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#toTableServerTimestampProto-org.apache.hadoop.hbase.TableName-java.util.Map-">toTableServerTimestampProto</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table,
                            <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/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;map)</code>&nbsp;</td>
 </tr>
-<tr id="i101" class="rowColor">
+<tr id="i102" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#updateBackupInfo-org.apache.hadoop.hbase.backup.BackupInfo-">updateBackupInfo</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a>&nbsp;info)</code>
 <div class="block">Updates status (state) of a backup session in backup system table table</div>
 </td>
 </tr>
-<tr id="i102" class="altColor">
+<tr id="i103" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#updateProcessedTablesForMerge-java.util.List-">updateProcessedTablesForMerge</a></span>(<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/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tables)</code>&nbsp;</td>
 </tr>
-<tr id="i103" class="rowColor">
+<tr id="i104" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#verifyNamespaceExists-org.apache.hadoop.hbase.client.Admin-">verifyNamespaceExists</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a>&nbsp;admin)</code>&nbsp;</td>
 </tr>
-<tr id="i104" class="altColor">
+<tr id="i105" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#waitForSystemTable-org.apache.hadoop.hbase.client.Admin-">waitForSystemTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a>&nbsp;admin)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#waitForSystemTable-org.apache.hadoop.hbase.client.Admin-org.apache.hadoop.hbase.TableName-">waitForSystemTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a>&nbsp;admin,
+                  <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr id="i105" class="rowColor">
+<tr id="i106" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#writeBackupStartCode-java.lang.Long-java.lang.String-">writeBackupStartCode</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;startCode,
                     <a href="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;backupRoot)</code>
 <div class="block">Write the start code (timestamp) to backup system table.</div>
 </td>
 </tr>
-<tr id="i106" class="altColor">
+<tr id="i107" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#writeBulkLoadedFiles-java.util.List-java.util.Map:A-java.lang.String-">writeBulkLoadedFiles</a></span>(<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/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;sTableList,
                     <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;byte[],<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.fs.Path&gt;&gt;[]&nbsp;maps,
                     <a href="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;backupId)</code>&nbsp;</td>
 </tr>
-<tr id="i107" class="rowColor">
+<tr id="i108" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#writeFilesForBulkLoadPreCommit-org.apache.hadoop.hbase.TableName-byte:A-byte:A-java.util.List-">writeFilesForBulkLoadPreCommit</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tabName,
                               byte[]&nbsp;region,
                               byte[]&nbsp;family,
                               <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/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;org.apache.hadoop.fs.Path,org.apache.hadoop.fs.Path&gt;&gt;&nbsp;pairs)</code>&nbsp;</td>
 </tr>
-<tr id="i108" class="altColor">
+<tr id="i109" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#writePathsPostBulkLoad-org.apache.hadoop.hbase.TableName-byte:A-java.util.Map-">writePathsPostBulkLoad</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tabName,
                       byte[]&nbsp;region,
                       <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;byte[],<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.fs.Path&gt;&gt;&nbsp;finalPaths)</code>&nbsp;</td>
 </tr>
-<tr id="i109" class="rowColor">
+<tr id="i110" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#writeRegionServerLastLogRollResult-java.lang.String-java.lang.Long-java.lang.String-">writeRegionServerLastLogRollResult</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;server,
                                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;ts,
@@ -922,7 +936,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <div class="block">Writes Region Server last roll log result (timestamp) to backup system table table</div>
 </td>
 </tr>
-<tr id="i110" class="altColor">
+<tr id="i111" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#writeRegionServerLogTimestamp-java.util.Set-java.util.HashMap-java.lang.String-">writeRegionServerLogTimestamp</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tables,
                              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="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/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;newTimestamps,
@@ -959,7 +973,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.93">LOG</a></pre>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.95">LOG</a></pre>
 </li>
 </ul>
 <a name="tableName">
@@ -968,7 +982,22 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>tableName</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.125">tableName</a></pre>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.130">tableName</a></pre>
+<div class="block">Backup system table (main) name</div>
+</li>
+</ul>
+<a name="bulkLoadTableName">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>bulkLoadTableName</h4>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.140">bulkLoadTableName</a></pre>
+<div class="block">Backup System table name for bulk loaded files.
+ We keep all bulk loaded file references in a separate table
+ because we have to isolate general backup operations: create, merge etc
+ from activity of RegionObserver, which controls process of a bulk loading
+ <a href="../../../../../../org/apache/hadoop/hbase/backup/BackupObserver.html" title="class in org.apache.hadoop.hbase.backup"><code>BackupObserver</code></a></div>
 </li>
 </ul>
 <a name="SESSIONS_FAMILY">
@@ -977,7 +1006,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>SESSIONS_FAMILY</h4>
-<pre>static final&nbsp;byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.129">SESSIONS_FAMILY</a></pre>
+<pre>static final&nbsp;byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.145">SESSIONS_FAMILY</a></pre>
 <div class="block">Stores backup sessions (contexts)</div>
 </li>
 </ul>
@@ -987,7 +1016,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>META_FAMILY</h4>
-<pre>static final&nbsp;byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.133">META_FAMILY</a></pre>
+<pre>static final&nbsp;byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.149">META_FAMILY</a></pre>
 <div class="block">Stores other meta</div>
 </li>
 </ul>
@@ -997,7 +1026,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>BULK_LOAD_FAMILY</h4>
-<pre>static final&nbsp;byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.134">BULK_LOAD_FAMILY</a></pre>
+<pre>static final&nbsp;byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.150">BULK_LOAD_FAMILY</a></pre>
 </li>
 </ul>
 <a name="connection">
@@ -1006,7 +1035,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>connection</h4>
-<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.138">connection</a></pre>
+<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.154">connection</a></pre>
 <div class="block">Connection to HBase cluster, shared among all instances</div>
 </li>
 </ul>
@@ -1016,7 +1045,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>BACKUP_INFO_PREFIX</h4>
-<pre>private 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/backup/impl/BackupSystemTable.html#line.140">BACKUP_INFO_PREFIX</a></pre>
+<pre>private 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/backup/impl/BackupSystemTable.html#line.156">BACKUP_INFO_PREFIX</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.backup.impl.BackupSystemTable.BACKUP_INFO_PREFIX">Constant Field Values</a></dd>
@@ -1029,7 +1058,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>START_CODE_ROW</h4>
-<pre>private 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/backup/impl/BackupSystemTable.html#line.141">START_CODE_ROW</a></pre>
+<pre>private 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/backup/impl/BackupSystemTable.html#line.157">START_CODE_ROW</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.backup.impl.BackupSystemTable.START_CODE_ROW">Constant Field Values</a></dd>
@@ -1042,7 +1071,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>ACTIVE_SESSION_ROW</h4>
-<pre>private static final&nbsp;byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.142">ACTIVE_SESSION_ROW</a></pre>
+<pre>private static final&nbsp;byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.158">ACTIVE_SESSION_ROW</a></pre>
 </li>
 </ul>
 <a name="ACTIVE_SESSION_COL">
@@ -1051,7 +1080,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>ACTIVE_SESSION_COL</h4>
-<pre>private static final&nbsp;byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.143">ACTIVE_SESSION_COL</a></pre>
+<pre>private static final&nbsp;byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.159">ACTIVE_SESSION_COL</a></pre>
 </li>
 </ul>
 <a name="ACTIVE_SESSION_YES">
@@ -1060,7 +1089,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>ACTIVE_SESSION_YES</h4>
-<pre>private static final&nbsp;byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.145">ACTIVE_SESSION_YES</a></pre>
+<pre>private static final&nbsp;byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.161">ACTIVE_SESSION_YES</a></pre>
 </li>
 </ul>
 <a name="ACTIVE_SESSION_NO">
@@ -1069,7 +1098,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>ACTIVE_SESSION_NO</h4>
-<pre>private static final&nbsp;byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.146">ACTIVE_SESSION_NO</a></pre>
+<pre>private static final&nbsp;byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.162">ACTIVE_SESSION_NO</a></pre>
 </li>
 </ul>
 <a name="INCR_BACKUP_SET">
@@ -1078,7 +1107,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>INCR_BACKUP_SET</h4>
-<pre>private 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/backup/impl/BackupSystemTable.html#line.148">INCR_BACKUP_SET</a></pre>
+<pre>private 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/backup/impl/BackupSystemTable.html#line.164">INCR_BACKUP_SET</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.backup.impl.BackupSystemTable.INCR_BACKUP_SET">Constant Field Values</a></dd>
@@ -1091,7 +1120,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>TABLE_RS_LOG_MAP_PREFIX</h4>
-<pre>private 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/backup/impl/BackupSystemTable.html#line.149">TABLE_RS_LOG_MAP_PREFIX</a></pre>
+<pre>private 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/backup/impl/BackupSystemTable.html#line.165">TABLE_RS_LOG_MAP_PREFIX</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.backup.impl.BackupSystemTable.TABLE_RS_LOG_MAP_PREFIX">Constant Field Values</a></dd>
@@ -1104,7 +1133,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>RS_LOG_TS_PREFIX</h4>
-<pre>private 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/backup/impl/BackupSystemTable.html#line.150">RS_LOG_TS_PREFIX</a></pre>
+<pre>private 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/backup/impl/BackupSystemTable.html#line.166">RS_LOG_TS_PREFIX</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.backup.impl.BackupSystemTable.RS_LOG_TS_PREFIX">Constant Field Values</a></dd>
@@ -1117,7 +1146,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>BULK_LOAD_PREFIX</h4>
-<pre>private 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/backup/impl/BackupSystemTable.html#line.152">BULK_LOAD_PREFIX</a></pre>
+<pre>private 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/backup/impl/BackupSystemTable.html#line.168">BULK_LOAD_PREFIX</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.backup.impl.BackupSystemTable.BULK_LOAD_PREFIX">Constant Field Values</a></dd>
@@ -1130,7 +1159,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>BULK_LOAD_PREFIX_BYTES</h4>
-<pre>private static final&nbsp;byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.153">BULK_LOAD_PREFIX_BYTES</a></pre>
+<pre>private static final&nbsp;byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.169">BULK_LOAD_PREFIX_BYTES</a></pre>
 </li>
 </ul>
 <a name="DELETE_OP_ROW">
@@ -1139,7 +1168,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>DELETE_OP_ROW</h4>
-<pre>private static final&nbsp;byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.154">DELETE_OP_ROW</a></pre>
+<pre>private static final&nbsp;byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.170">DELETE_OP_ROW</a></pre>
 </li>
 </ul>
 <a name="MERGE_OP_ROW">
@@ -1148,7 +1177,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>MERGE_OP_ROW</h4>
-<pre>private static final&nbsp;byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.155">MERGE_OP_ROW</a></pre>
+<pre>private static final&nbsp;byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.171">MERGE_OP_ROW</a></pre>
 </li>
 </ul>
 <a name="TBL_COL">
@@ -1157,7 +1186,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>TBL_COL</h4>
-<pre>static final&nbsp;byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.157">TBL_COL</a></pre>
+<pre>static final&nbsp;byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.173">TBL_COL</a></pre>
 </li>
 </ul>
 <a name="FAM_COL">
@@ -1166,7 +1195,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>FAM_COL</h4>
-<pre>static final&nbsp;byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.158">FAM_COL</a></pre>
+<pre>static final&nbsp;byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.174">FAM_COL</a></pre>
 </li>
 </ul>
 <a name="PATH_COL">
@@ -1175,7 +1204,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>PATH_COL</h4>
-<pre>static final&nbsp;byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.159">PATH_COL</a></pre>
+<pre>static final&nbsp;byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.175">PATH_COL</a></pre>
 </li>
 </ul>
 <a name="STATE_COL">
@@ -1184,7 +1213,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>STATE_COL</h4>
-<pre>static final&nbsp;byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.160">STATE_COL</a></pre>
+<pre>static final&nbsp;byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.176">STATE_COL</a></pre>
 </li>
 </ul>
 <a name="BL_PREPARE">
@@ -1193,7 +1222,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>BL_PREPARE</h4>
-<pre>static final&nbsp;byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.162">BL_PREPARE</a></pre>
+<pre>static final&nbsp;byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.178">BL_PREPARE</a></pre>
 </li>
 </ul>
 <a name="BL_COMMIT">
@@ -1202,7 +1231,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>BL_COMMIT</h4>
-<pre>static final&nbsp;byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.163">BL_COMMIT</a></pre>
+<pre>static final&nbsp;byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.179">BL_COMMIT</a></pre>
 </li>
 </ul>
 <a name="WALS_PREFIX">
@@ -1211,7 +1240,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>WALS_PREFIX</h4>
-<pre>private 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/backup/impl/BackupSystemTable.html#line.165">WALS_PREFIX</a></pre>
+<pre>private 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/backup/impl/BackupSystemTable.html#line.181">WALS_PREFIX</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.backup.impl.BackupSystemTable.WALS_PREFIX">Constant Field Values</a></dd>
@@ -1224,7 +1253,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>SET_KEY_PREFIX</h4>
-<pre>private 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/backup/impl/BackupSystemTable.html#line.166">SET_KEY_PREFIX</a></pre>
+<pre>private 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/backup/impl/BackupSystemTable.html#line.182">SET_KEY_PREFIX</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.backup.impl.BackupSystemTable.SET_KEY_PREFIX">Constant Field Values</a></dd>
@@ -1237,7 +1266,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>BLK_LD_DELIM</h4>
-<pre>protected 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/backup/impl/BackupSystemTable.html#line.169">BLK_LD_DELIM</a></pre>
+<pre>protected 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/backup/impl/BackupSystemTable.html#line.185">BLK_LD_DELIM</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.backup.impl.BackupSystemTable.BLK_LD_DELIM">Constant Field Values</a></dd>
@@ -1250,7 +1279,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>EMPTY_VALUE</h4>
-<pre>private static final&nbsp;byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.170">EMPTY_VALUE</a></pre>
+<pre>private static final&nbsp;byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.186">EMPTY_VALUE</a></pre>
 </li>
 </ul>
 <a name="NULL">
@@ -1259,7 +1288,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockListLast">
 <li class="blockList">
 <h4>NULL</h4>
-<pre>private 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/backup/impl/BackupSystemTable.html#line.173">NULL</a></pre>
+<pre>private 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/backup/impl/BackupSystemTable.html#line.189">NULL</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.backup.impl.BackupSystemTable.NULL">Constant Field Values</a></dd>
@@ -1280,7 +1309,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockListLast">
 <li class="blockList">
 <h4>BackupSystemTable</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.175">BackupSystemTable</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;conn)
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.191">BackupSystemTable</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;conn)
                   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>
@@ -1302,7 +1331,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>checkSystemTable</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.181">checkSystemTable</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.199">checkSystemTable</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>
@@ -1316,7 +1345,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>verifyNamespaceExists</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.194">verifyNamespaceExists</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a>&nbsp;admin)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.219">verifyNamespaceExists</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a>&nbsp;admin)
                             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>
@@ -1324,13 +1353,14 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 </dl>
 </li>
 </ul>
-<a name="waitForSystemTable-org.apache.hadoop.hbase.client.Admin-">
+<a name="waitForSystemTable-org.apache.hadoop.hbase.client.Admin-org.apache.hadoop.hbase.TableName-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>waitForSystemTable</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.210">waitForSystemTable</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a>&nbsp;admin)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.235">waitForSystemTable</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a>&nbsp;admin,
+                                <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></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -1344,7 +1374,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>close</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.227">close</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.253">close</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.html?is-external=true#close--" title="class or interface in java.io">close</a></code>&nbsp;in interface&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a></code></dd>
@@ -1359,7 +1389,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>updateBackupInfo</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.236">updateBackupInfo</a>(<a href="../../../../../../org/apache/hadoop/hbase/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a>&nbsp;info)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.262">updateBackupInfo</a>(<a href="../../../../../../org/apache/hadoop/hbase/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a>&nbsp;info)
                       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">Updates status (state) of a backup session in backup system table table</div>
 <dl>
@@ -1376,7 +1406,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>readBulkLoadedFiles</h4>
-<pre><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;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.252">readBulkLoadedFiles</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;backupId)
+<pre><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;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.278">readBulkLoadedFiles</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;backupId)
                                 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>
@@ -1390,7 +1420,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>readBulkLoadedFiles</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;byte[],<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.fs.Path&gt;&gt;[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.278">readBulkLoadedFiles</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;backupId,
+<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;byte[],<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.fs.Path&gt;&gt;[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.304">readBulkLoadedFiles</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;backupId,
                                                                          <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/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;sTableList)
                                                                   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>
@@ -1399,27 +1429,13 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 </dl>
 </li>
 </ul>
-<a name="deleteBulkLoadedFiles-java.util.Map-">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>deleteBulkLoadedFiles</h4>
-<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.330">deleteBulkLoadedFiles</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;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;map)
-                    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>
 <a name="deleteBackupInfo-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>deleteBackupInfo</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.346">deleteBackupInfo</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;backupId)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.360">deleteBackupInfo</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;backupId)
                       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">Deletes backup status from backup system table table</div>
 <dl>
@@ -1436,7 +1452,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>writePathsPostBulkLoad</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.363">writePathsPostBulkLoad</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tabName,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.377">writePathsPostBulkLoad</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tabName,
                                    byte[]&nbsp;region,
                                    <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;byte[],<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.fs.Path&gt;&gt;&nbsp;finalPaths)
                             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>
@@ -1452,7 +1468,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>writeFilesForBulkLoadPreCommit</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.383">writeFilesForBulkLoadPreCommit</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tabName,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.397">writeFilesForBulkLoadPreCommit</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tabName,
                                            byte[]&nbsp;region,
                                            byte[]&nbsp;family,
                                            <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/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;org.apache.hadoop.fs.Path,org.apache.hadoop.fs.Path&gt;&gt;&nbsp;pairs)
@@ -1463,14 +1479,13 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 </dl>
 </li>
 </ul>
-<a name="removeBulkLoadedRows-java.util.List-java.util.List-">
+<a name="deleteBulkLoadedRows-java.util.List-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>removeBulkLoadedRows</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.402">removeBulkLoadedRows</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;lst,
-                                 <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;byte[]&gt;&nbsp;rows)
+<h4>deleteBulkLoadedRows</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.416">deleteBulkLoadedRows</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;byte[]&gt;&nbsp;rows)
                           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>
@@ -1484,7 +1499,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>readBulkloadRows</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<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="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</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/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/javas
 e/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="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/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&gt;&gt;&gt;&gt;,<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;byte[]&gt;&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.422">readBulkloadRows</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/h
 adoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tableList)
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<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="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</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/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/javas
 e/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="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/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&gt;&gt;&gt;&gt;,<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;byte[]&gt;&gt;&nbsp;<a href="../../../../

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/org/apache/hadoop/hbase/backup/impl/BackupManager.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/backup/impl/BackupManager.html b/devapidocs/org/apache/hadoop/hbase/backup/impl/BackupManager.html
index 0093f86..bd348da 100644
--- a/devapidocs/org/apache/hadoop/hbase/backup/impl/BackupManager.html
+++ b/devapidocs/org/apache/hadoop/hbase/backup/impl/BackupManager.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":9,"i4":9,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":9,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":9,"i4":9,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":9,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":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";
@@ -118,7 +118,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Private
-public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.59">BackupManager</a>
+public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.61">BackupManager</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 <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a></pre>
 <div class="block">Handles backup requests, creates backup info records in backup system table to
@@ -235,110 +235,109 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 </tr>
 <tr id="i5" class="rowColor">
 <td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#deleteBulkLoadedRows-java.util.List-">deleteBulkLoadedRows</a></span>(<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;byte[]&gt;&nbsp;rows)</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/backup/impl/BackupManager.html#finishBackupSession--">finishBackupSession</a></span>()</code>
 <div class="block">Finishes active backup session</div>
 </td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i7" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManifest.BackupImage.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupManifest.BackupImage</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#getAncestors-org.apache.hadoop.hbase.backup.BackupInfo-">getAncestors</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a>&nbsp;backupInfo)</code>
 <div class="block">Get direct ancestors of the current backup.</div>
 </td>
 </tr>
-<tr id="i7" class="rowColor">
+<tr id="i8" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManifest.BackupImage.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupManifest.BackupImage</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#getAncestors-org.apache.hadoop.hbase.backup.BackupInfo-org.apache.hadoop.hbase.TableName-">getAncestors</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a>&nbsp;backupInfo,
             <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table)</code>
 <div class="block">Get the direct ancestors of this backup for one table involved.</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/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#getBackupHistory--">getBackupHistory</a></span>()</code>
 <div class="block">Get all completed backup information (in desc order by time)</div>
 </td>
 </tr>
-<tr id="i9" class="rowColor">
+<tr id="i10" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#getBackupHistory-boolean-">getBackupHistory</a></span>(boolean&nbsp;completed)</code>&nbsp;</td>
 </tr>
-<tr id="i10" class="altColor">
+<tr id="i11" class="rowColor">
 <td class="colFirst"><code>protected <a href="../../../../../../org/apache/hadoop/hbase/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#getBackupInfo--">getBackupInfo</a></span>()</code>
 <div class="block">Returns backup info</div>
 </td>
 </tr>
-<tr id="i11" class="rowColor">
+<tr id="i12" class="altColor">
 <td class="colFirst"><code>(package private) org.apache.hadoop.conf.Configuration</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#getConf--">getConf</a></span>()</code>
 <div class="block">Get configuration</div>
 </td>
 </tr>
-<tr id="i12" class="altColor">
+<tr id="i13" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#getConnection--">getConnection</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i13" class="rowColor">
+<tr id="i14" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#getIncrementalBackupTableSet--">getIncrementalBackupTableSet</a></span>()</code>
 <div class="block">Return the current tables covered by incremental backup.</div>
 </td>
 </tr>
-<tr id="i14" class="altColor">
+<tr id="i15" 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/backup/impl/BackupManager.html#getOngoingBackupId--">getOngoingBackupId</a></span>()</code>
 <div class="block">Check if any ongoing backup.</div>
 </td>
 </tr>
-<tr id="i15" class="rowColor">
+<tr id="i16" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.WALItem.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupSystemTable.WALItem</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#getWALFilesFromBackupSystem--">getWALFilesFromBackupSystem</a></span>()</code>
 <div class="block">Get WAL files iterator</div>
 </td>
 </tr>
-<tr id="i16" class="altColor">
+<tr id="i17" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#initialize--">initialize</a></span>()</code>
 <div class="block">Start the backup manager service.</div>
 </td>
 </tr>
-<tr id="i17" class="rowColor">
+<tr id="i18" class="altColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#isBackupEnabled-org.apache.hadoop.conf.Configuration-">isBackupEnabled</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>&nbsp;</td>
 </tr>
-<tr id="i18" class="altColor">
+<tr id="i19" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#readBackupStartCode--">readBackupStartCode</a></span>()</code>
 <div class="block">Read the last backup start code (timestamp) of last successful backup.</div>
 </td>
 </tr>
-<tr id="i19" class="rowColor">
+<tr id="i20" class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<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="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</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/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/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="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/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&gt;&gt;&gt;&gt;,<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;byte[]&gt;&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#readBulkloadRows-java.util.List-">readBulkloadRows</a></span>(<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/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tableList)</code>&nbsp;</td>
 </tr>
-<tr id="i20" class="altColor">
+<tr id="i21" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="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/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#readLogTimestampMap--">readLogTimestampMap</a></span>()</code>
 <div class="block">Read the timestamp for each region server log after the last successful backup.</div>
 </td>
 </tr>
-<tr id="i21" class="rowColor">
+<tr id="i22" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="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/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#readRegionServerLastLogRollResult--">readRegionServerLastLogRollResult</a></span>()</code>
 <div class="block">Get the RS log information after the last log roll from backup system table.</div>
 </td>
 </tr>
-<tr id="i22" class="altColor">
+<tr id="i23" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#recordWALFiles-java.util.List-">recordWALFiles</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;files)</code>
 <div class="block">Saves list of WAL files after incremental backup operation.</div>
 </td>
 </tr>
-<tr id="i23" class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#removeBulkLoadedRows-java.util.List-java.util.List-">removeBulkLoadedRows</a></span>(<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/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;lst,
-                    <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;byte[]&gt;&nbsp;rows)</code>&nbsp;</td>
-</tr>
 <tr id="i24" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#setBackupInfo-org.apache.hadoop.hbase.backup.BackupInfo-">setBackupInfo</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a>&nbsp;backupInfo)</code>&nbsp;</td>
@@ -363,11 +362,6 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 </tr>
 <tr id="i28" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#writeBulkLoadedFiles-java.util.List-java.util.Map:A-">writeBulkLoadedFiles</a></span>(<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/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;sTableList,
-                    <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;byte[],<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.fs.Path&gt;&gt;[]&nbsp;maps)</code>&nbsp;</td>
-</tr>
-<tr id="i29" class="rowColor">
-<td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#writeRegionServerLogTimestamp-java.util.Set-java.util.HashMap-">writeRegionServerLogTimestamp</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tables,
                              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="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/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;newTimestamps)</code>
 <div class="block">Write the current timestamps for each regionserver to backup system table after a successful
@@ -402,7 +396,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.60">LOG</a></pre>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.62">LOG</a></pre>
 </li>
 </ul>
 <a name="conf">
@@ -411,7 +405,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>conf</h4>
-<pre>protected&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.62">conf</a></pre>
+<pre>protected&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.64">conf</a></pre>
 </li>
 </ul>
 <a name="backupInfo">
@@ -420,7 +414,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>backupInfo</h4>
-<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.63">backupInfo</a></pre>
+<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.65">backupInfo</a></pre>
 </li>
 </ul>
 <a name="systemTable">
@@ -429,7 +423,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>systemTable</h4>
-<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupSystemTable</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.64">systemTable</a></pre>
+<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupSystemTable</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.66">systemTable</a></pre>
 </li>
 </ul>
 <a name="conn">
@@ -438,7 +432,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockListLast">
 <li class="blockList">
 <h4>conn</h4>
-<pre>protected final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.65">conn</a></pre>
+<pre>protected final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.67">conn</a></pre>
 </li>
 </ul>
 </li>
@@ -455,7 +449,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockListLast">
 <li class="blockList">
 <h4>BackupManager</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.73">BackupManager</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;conn,
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.75">BackupManager</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;conn,
                      org.apache.hadoop.conf.Configuration&nbsp;conf)
               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">Backup manager constructor.</div>
@@ -482,7 +476,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getBackupInfo</h4>
-<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.88">getBackupInfo</a>()</pre>
+<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.90">getBackupInfo</a>()</pre>
 <div class="block">Returns backup info</div>
 </li>
 </ul>
@@ -492,7 +486,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>decorateMasterConfiguration</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.98">decorateMasterConfiguration</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.100">decorateMasterConfiguration</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 <div class="block">This method modifies the master's configuration in order to inject backup-related features
  (TESTs only)</div>
 <dl>
@@ -507,7 +501,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>decorateRegionServerConfiguration</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.130">decorateRegionServerConfiguration</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.132">decorateRegionServerConfiguration</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 <div class="block">This method modifies the Region Server configuration in order to inject backup-related features
  TESTs only.</div>
 <dl>
@@ -522,7 +516,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>isBackupEnabled</h4>
-<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.149">isBackupEnabled</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.155">isBackupEnabled</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 </li>
 </ul>
 <a name="getConf--">
@@ -531,7 +525,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getConf</h4>
-<pre>org.apache.hadoop.conf.Configuration&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.158">getConf</a>()</pre>
+<pre>org.apache.hadoop.conf.Configuration&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.164">getConf</a>()</pre>
 <div class="block">Get configuration</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -545,7 +539,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>close</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.166">close</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.172">close</a>()</pre>
 <div class="block">Stop all the work of backup.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -561,7 +555,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>createBackupInfo</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.188">createBackupInfo</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;backupId,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.194">createBackupInfo</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;backupId,
                                    <a href="../../../../../../org/apache/hadoop/hbase/backup/BackupType.html" title="enum in org.apache.hadoop.hbase.backup">BackupType</a>&nbsp;type,
                                    <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/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tableList,
                                    <a href="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;targetRootDir,
@@ -590,7 +584,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getOngoingBackupId</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/backup/impl/BackupManager.html#line.238">getOngoingBackupId</a>()
+<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/backup/impl/BackupManager.html#line.244">getOngoingBackupId</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">Check if any ongoing backup. Currently, we only reply on checking status in backup system
  table. We need to consider to handle the case of orphan records in the future. Otherwise, all
@@ -609,7 +603,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>initialize</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.251">initialize</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.257">initialize</a>()
                 throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Start the backup manager service.</div>
 <dl>
@@ -624,7 +618,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>setBackupInfo</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.260">setBackupInfo</a>(<a href="../../../../../../org/apache/hadoop/hbase/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a>&nbsp;backupInfo)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.266">setBackupInfo</a>(<a href="../../../../../../org/apache/hadoop/hbase/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a>&nbsp;backupInfo)</pre>
 </li>
 </ul>
 <a name="getAncestors-org.apache.hadoop.hbase.backup.BackupInfo-">
@@ -633,7 +627,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getAncestors</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManifest.BackupImage.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupManifest.BackupImage</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.271">getAncestors</a>(<a href="../../../../../../org/apache/hadoop/hbase/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a>&nbsp;backupInfo)
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManifest.BackupImage.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupManifest.BackupImage</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.277">getAncestors</a>(<a href="../../../../../../org/apache/hadoop/hbase/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a>&nbsp;backupInfo)
                                                    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/backup/impl/BackupException.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupException</a></pre>
 <div class="block">Get direct ancestors of the current backup.</div>
@@ -654,7 +648,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getAncestors</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManifest.BackupImage.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupManifest.BackupImage</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.340">getAncestors</a>(<a href="../../../../../../org/apache/hadoop/hbase/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a>&nbsp;backupInfo,
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManifest.BackupImage.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupManifest.BackupImage</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.346">getAncestors</a>(<a href="../../../../../../org/apache/hadoop/hbase/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a>&nbsp;backupInfo,
                                                           <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table)
                                                    throws <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupException.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupException</a>,
                                                           <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>
@@ -677,7 +671,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>updateBackupInfo</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.364">updateBackupInfo</a>(<a href="../../../../../../org/apache/hadoop/hbase/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a>&nbsp;context)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.370">updateBackupInfo</a>(<a href="../../../../../../org/apache/hadoop/hbase/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a>&nbsp;context)
                       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">Updates status (state) of a backup session in a persistent store</div>
 <dl>
@@ -694,7 +688,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>startBackupSession</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.372">startBackupSession</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.378">startBackupSession</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">Starts new backup session</div>
 <dl>
@@ -709,7 +703,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>finishBackupSession</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.380">finishBackupSession</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.386">finishBackupSession</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">Finishes active backup session</div>
 <dl>
@@ -724,7 +718,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>readBackupStartCode</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/backup/impl/BackupManager.html#line.391">readBackupStartCode</a>()
+<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/backup/impl/BackupManager.html#line.397">readBackupStartCode</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">Read the last backup start code (timestamp) of last successful backup. Will return null if
  there is no startcode stored in backup system table or the value is of length 0. These two
@@ -743,7 +737,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>writeBackupStartCode</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.400">writeBackupStartCode</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;startCode)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.406">writeBackupStartCode</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;startCode)
                           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">Write the start code (timestamp) to backup system table. If passed in null, then write 0 byte.</div>
 <dl>
@@ -760,7 +754,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>readRegionServerLastLogRollResult</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="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/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.409">readRegionServerLastLogRollResult</a>()
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="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/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.415">readRegionServerLastLogRollResult</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">Get the RS log information after the last log roll from backup system table.</div>
 <dl>
@@ -777,7 +771,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>readBulkloadRows</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<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="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</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/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/javas
 e/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="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/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&gt;&gt;&gt;&gt;,<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;byte[]&gt;&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.414">readBulkloadRows</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoo
 p/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tableList)
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<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="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</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/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/javas
 e/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="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/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&gt;&gt;&gt;&gt;,<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;byte[]&gt;&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.420">readBulkloadRows</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoo
 p/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tableList)
                                                                                                       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>
@@ -785,29 +779,13 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 </dl>
 </li>
 </ul>
-<a name="removeBulkLoadedRows-java.util.List-java.util.List-">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>removeBulkLoadedRows</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.418">removeBulkLoadedRows</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;lst,
-                                 <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;byte[]&gt;&nbsp;rows)
-                          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>
-<a name="writeBulkLoadedFiles-java.util.List-java.util.Map:A-">
+<a name="deleteBulkLoadedRows-java.util.List-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>writeBulkLoadedFiles</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.422">writeBulkLoadedFiles</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;sTableList,
-                                 <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;byte[],<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.fs.Path&gt;&gt;[]&nbsp;maps)
+<h4>deleteBulkLoadedRows</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.424">deleteBulkLoadedRows</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;byte[]&gt;&nbsp;rows)
                           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>
@@ -821,7 +799,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getBackupHistory</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/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.432">getBackupHistory</a>()
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.433">getBackupHistory</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">Get all completed backup information (in desc order by time)</div>
 <dl>
@@ -838,7 +816,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getBackupHistory</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.436">getBackupHistory</a>(boolean&nbsp;completed)
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.437">getBackupHistory</a>(boolean&nbsp;completed)
                                        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>
@@ -852,7 +830,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>writeRegionServerLogTimestamp</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.447">writeRegionServerLogTimestamp</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/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tables,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.448">writeRegionServerLogTimestamp</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/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tables,
                                           <a href="http://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="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/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;newTimestamps)
                                    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">Write the current timestamps for each regionserver to backup system table after a successful
@@ -872,7 +850,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>readLogTimestampMap</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="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/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.459">readLogTimestampMap</a>()
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="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/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.460">readLogTimestampMap</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">Read the timestamp for each region server log after the last successful backup. Each table has
  its own set of the timestamps.</div>
@@ -891,7 +869,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getIncrementalBackupTableSet</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.468">getIncrementalBackupTableSet</a>()
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.469">getIncrementalBackupTableSet</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">Return the current tables covered by incremental backup.</div>
 <dl>
@@ -908,7 +886,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>addIncrementalBackupTableSet</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.477">addIncrementalBackupTableSet</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/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tables)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.478">addIncrementalBackupTableSet</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/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tables)
                                   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">Adds set of tables to overall incremental backup table set</div>
 <dl>
@@ -925,7 +903,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>recordWALFiles</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.486">recordWALFiles</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;files)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.487">recordWALFiles</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;files)
                     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">Saves list of WAL files after incremental backup operation. These files will be stored until
  TTL expiration and are used by Backup Log Cleaner plug-in to determine which WAL files can be
@@ -942,7 +920,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getWALFilesFromBackupSystem</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.WALItem.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupSystemTable.WALItem</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.495">getWALFilesFromBackupSystem</a>()
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.WALItem.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupSystemTable.WALItem</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.496">getWALFilesFromBackupSystem</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">Get WAL files iterator</div>
 <dl>
@@ -959,7 +937,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.h
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getConnection</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.499">getConnection</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupManager.html#line.500">getConnection</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.WALItem.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.WALItem.html b/devapidocs/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.WALItem.html
index 2e74fe8..3ec34b1 100644
--- a/devapidocs/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.WALItem.html
+++ b/devapidocs/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.WALItem.html
@@ -113,7 +113,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.95">BackupSystemTable.WALItem</a>
+<pre>static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#line.97">BackupSystemTable.WALItem</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>
@@ -223,7 +223,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>backupId</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> <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.WALItem.html#line.96">backupId</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> <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.WALItem.html#line.98">backupId</a></pre>
 </li>
 </ul>
 <a name="walFile">
@@ -232,7 +232,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>walFile</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> <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.WALItem.html#line.97">walFile</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> <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.WALItem.html#line.99">walFile</a></pre>
 </li>
 </ul>
 <a name="backupRoot">
@@ -241,7 +241,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>backupRoot</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> <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.WALItem.html#line.98">backupRoot</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> <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.WALItem.html#line.100">backupRoot</a></pre>
 </li>
 </ul>
 </li>
@@ -258,7 +258,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>WALItem</h4>
-<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.WALItem.html#line.100">WALItem</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;backupId,
+<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.WALItem.html#line.102">WALItem</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;backupId,
         <a href="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;walFile,
         <a href="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;backupRoot)</pre>
 </li>
@@ -277,7 +277,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getBackupId</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/backup/impl/BackupSystemTable.WALItem.html#line.106">getBackupId</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/backup/impl/BackupSystemTable.WALItem.html#line.108">getBackupId</a>()</pre>
 </li>
 </ul>
 <a name="getWalFile--">
@@ -286,7 +286,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getWalFile</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/backup/impl/BackupSystemTable.WALItem.html#line.110">getWalFile</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/backup/impl/BackupSystemTable.WALItem.html#line.112">getWalFile</a>()</pre>
 </li>
 </ul>
 <a name="getBackupRoot--">
@@ -295,7 +295,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getBackupRoot</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/backup/impl/BackupSystemTable.WALItem.html#line.114">getBackupRoot</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/backup/impl/BackupSystemTable.WALItem.html#line.116">getBackupRoot</a>()</pre>
 </li>
 </ul>
 <a name="toString--">
@@ -304,7 +304,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="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/backup/impl/BackupSystemTable.WALItem.html#line.119">toString</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.WALItem.html#line.121">toString</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html b/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html
index 6d840bd..75e3c2b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html
@@ -80,44 +80,44 @@
 <span class="sourceLineNo">072</span>  }<a name="line.72"></a>
 <span class="sourceLineNo">073</span><a name="line.73"></a>
 <span class="sourceLineNo">074</span>  protected List&lt;String&gt; filterMissingFiles(List&lt;String&gt; incrBackupFileList) throws IOException {<a name="line.74"></a>
-<span class="sourceLineNo">075</span>    FileSystem fs = FileSystem.get(conf);<a name="line.75"></a>
-<span class="sourceLineNo">076</span>    List&lt;String&gt; list = new ArrayList&lt;String&gt;();<a name="line.76"></a>
-<span class="sourceLineNo">077</span>    for (String file : incrBackupFileList) {<a name="line.77"></a>
-<span class="sourceLineNo">078</span>      Path p = new Path(file);<a name="line.78"></a>
-<span class="sourceLineNo">079</span>      if (fs.exists(p) || isActiveWalPath(p)) {<a name="line.79"></a>
-<span class="sourceLineNo">080</span>        list.add(file);<a name="line.80"></a>
-<span class="sourceLineNo">081</span>      } else {<a name="line.81"></a>
-<span class="sourceLineNo">082</span>        LOG.warn("Can't find file: " + 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>    return list;<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>   * Check if a given path is belongs to active WAL directory<a name="line.89"></a>
-<span class="sourceLineNo">090</span>   * @param p path<a name="line.90"></a>
-<span class="sourceLineNo">091</span>   * @return true, if yes<a name="line.91"></a>
-<span class="sourceLineNo">092</span>   */<a name="line.92"></a>
-<span class="sourceLineNo">093</span>  protected boolean isActiveWalPath(Path p) {<a name="line.93"></a>
-<span class="sourceLineNo">094</span>    return !AbstractFSWALProvider.isArchivedLogFile(p);<a name="line.94"></a>
-<span class="sourceLineNo">095</span>  }<a name="line.95"></a>
-<span class="sourceLineNo">096</span><a name="line.96"></a>
-<span class="sourceLineNo">097</span>  protected static int getIndex(TableName tbl, List&lt;TableName&gt; sTableList) {<a name="line.97"></a>
-<span class="sourceLineNo">098</span>    if (sTableList == null) return 0;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    for (int i = 0; i &lt; sTableList.size(); i++) {<a name="line.99"></a>
-<span class="sourceLineNo">100</span>      if (tbl.equals(sTableList.get(i))) {<a name="line.100"></a>
-<span class="sourceLineNo">101</span>        return i;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>      }<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    }<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    return -1;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>  }<a name="line.105"></a>
-<span class="sourceLineNo">106</span><a name="line.106"></a>
-<span class="sourceLineNo">107</span>  /*<a name="line.107"></a>
-<span class="sourceLineNo">108</span>   * Reads bulk load records from backup table, iterates through the records and forms the paths<a name="line.108"></a>
-<span class="sourceLineNo">109</span>   * for bulk loaded hfiles. Copies the bulk loaded hfiles to backup destination<a name="line.109"></a>
-<span class="sourceLineNo">110</span>   * @param sTableList list of tables to be backed up<a name="line.110"></a>
-<span class="sourceLineNo">111</span>   * @return map of table to List of files<a name="line.111"></a>
-<span class="sourceLineNo">112</span>   */<a name="line.112"></a>
+<span class="sourceLineNo">075</span>    List&lt;String&gt; list = new ArrayList&lt;String&gt;();<a name="line.75"></a>
+<span class="sourceLineNo">076</span>    for (String file : incrBackupFileList) {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>      Path p = new Path(file);<a name="line.77"></a>
+<span class="sourceLineNo">078</span>      if (fs.exists(p) || isActiveWalPath(p)) {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>        list.add(file);<a name="line.79"></a>
+<span class="sourceLineNo">080</span>      } else {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>        LOG.warn("Can't find file: " + file);<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>    return list;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>  }<a name="line.85"></a>
+<span class="sourceLineNo">086</span><a name="line.86"></a>
+<span class="sourceLineNo">087</span>  /**<a name="line.87"></a>
+<span class="sourceLineNo">088</span>   * Check if a given path is belongs to active WAL directory<a name="line.88"></a>
+<span class="sourceLineNo">089</span>   * @param p path<a name="line.89"></a>
+<span class="sourceLineNo">090</span>   * @return true, if yes<a name="line.90"></a>
+<span class="sourceLineNo">091</span>   */<a name="line.91"></a>
+<span class="sourceLineNo">092</span>  protected boolean isActiveWalPath(Path p) {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    return !AbstractFSWALProvider.isArchivedLogFile(p);<a name="line.93"></a>
+<span class="sourceLineNo">094</span>  }<a name="line.94"></a>
+<span class="sourceLineNo">095</span><a name="line.95"></a>
+<span class="sourceLineNo">096</span>  protected static int getIndex(TableName tbl, List&lt;TableName&gt; sTableList) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    if (sTableList == null) return 0;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    for (int i = 0; i &lt; sTableList.size(); i++) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>      if (tbl.equals(sTableList.get(i))) {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>        return i;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>      }<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    }<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    return -1;<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>  /*<a name="line.106"></a>
+<span class="sourceLineNo">107</span>   * Reads bulk load records from backup table, iterates through the records and forms the paths<a name="line.107"></a>
+<span class="sourceLineNo">108</span>   * for bulk loaded hfiles. Copies the bulk loaded hfiles to backup destination<a name="line.108"></a>
+<span class="sourceLineNo">109</span>   * @param sTableList list of tables to be backed up<a name="line.109"></a>
+<span class="sourceLineNo">110</span>   * @return map of table to List of files<a name="line.110"></a>
+<span class="sourceLineNo">111</span>   */<a name="line.111"></a>
+<span class="sourceLineNo">112</span>  @SuppressWarnings("unchecked")<a name="line.112"></a>
 <span class="sourceLineNo">113</span>  protected Map&lt;byte[], List&lt;Path&gt;&gt;[] handleBulkLoad(List&lt;TableName&gt; sTableList) throws IOException {<a name="line.113"></a>
 <span class="sourceLineNo">114</span>    Map&lt;byte[], List&lt;Path&gt;&gt;[] mapForSrc = new Map[sTableList.size()];<a name="line.114"></a>
 <span class="sourceLineNo">115</span>    List&lt;String&gt; activeFiles = new ArrayList&lt;String&gt;();<a name="line.115"></a>
@@ -125,15 +125,15 @@
 <span class="sourceLineNo">117</span>    Pair&lt;Map&lt;TableName, Map&lt;String, Map&lt;String, List&lt;Pair&lt;String, Boolean&gt;&gt;&gt;&gt;&gt;, List&lt;byte[]&gt;&gt; pair =<a name="line.117"></a>
 <span class="sourceLineNo">118</span>    backupManager.readBulkloadRows(sTableList);<a name="line.118"></a>
 <span class="sourceLineNo">119</span>    Map&lt;TableName, Map&lt;String, Map&lt;String, List&lt;Pair&lt;String, Boolean&gt;&gt;&gt;&gt;&gt; map = pair.getFirst();<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    FileSystem fs = FileSystem.get(conf);<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    FileSystem tgtFs;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    try {<a name="line.122"></a>
-<span class="sourceLineNo">123</span>      tgtFs = FileSystem.get(new URI(backupInfo.getBackupRootDir()), conf);<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    } catch (URISyntaxException use) {<a name="line.124"></a>
-<span class="sourceLineNo">125</span>      throw new IOException("Unable to get FileSystem", use);<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    }<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    Path rootdir = FSUtils.getRootDir(conf);<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    Path tgtRoot = new Path(new Path(backupInfo.getBackupRootDir()), backupId);<a name="line.128"></a>
+<span class="sourceLineNo">120</span>    FileSystem tgtFs;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    try {<a name="line.121"></a>
+<span class="sourceLineNo">122</span>      tgtFs = FileSystem.get(new URI(backupInfo.getBackupRootDir()), conf);<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    } catch (URISyntaxException use) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>      throw new IOException("Unable to get FileSystem", use);<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    }<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    Path rootdir = FSUtils.getRootDir(conf);<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    Path tgtRoot = new Path(new Path(backupInfo.getBackupRootDir()), backupId);<a name="line.127"></a>
+<span class="sourceLineNo">128</span><a name="line.128"></a>
 <span class="sourceLineNo">129</span>    for (Map.Entry&lt;TableName, Map&lt;String, Map&lt;String, List&lt;Pair&lt;String, Boolean&gt;&gt;&gt;&gt;&gt; tblEntry :<a name="line.129"></a>
 <span class="sourceLineNo">130</span>      map.entrySet()) {<a name="line.130"></a>
 <span class="sourceLineNo">131</span>      TableName srcTable = tblEntry.getKey();<a name="line.131"></a>
@@ -200,216 +200,255 @@
 <span class="sourceLineNo">192</span>    }<a name="line.192"></a>
 <span class="sourceLineNo">193</span><a name="line.193"></a>
 <span class="sourceLineNo">194</span>    copyBulkLoadedFiles(activeFiles, archiveFiles);<a name="line.194"></a>
-<span class="sourceLineNo">195</span><a name="line.195"></a>
-<span class="sourceLineNo">196</span>    backupManager.writeBulkLoadedFiles(sTableList, mapForSrc);<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    backupManager.removeBulkLoadedRows(sTableList, pair.getSecond());<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    return mapForSrc;<a name="line.198"></a>
-<span class="sourceLineNo">199</span>  }<a name="line.199"></a>
-<span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>  private void copyBulkLoadedFiles(List&lt;String&gt; activeFiles, List&lt;String&gt; archiveFiles)<a name="line.201"></a>
-<span class="sourceLineNo">202</span>    throws IOException<a name="line.202"></a>
-<span class="sourceLineNo">203</span>  {<a name="line.203"></a>
-<span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span>    try {<a name="line.205"></a>
-<span class="sourceLineNo">206</span>      // Enable special mode of BackupDistCp<a name="line.206"></a>
-<span class="sourceLineNo">207</span>      conf.setInt(MapReduceBackupCopyJob.NUMBER_OF_LEVELS_TO_PRESERVE_KEY, 5);<a name="line.207"></a>
-<span class="sourceLineNo">208</span>      // Copy active files<a name="line.208"></a>
-<span class="sourceLineNo">209</span>      String tgtDest = backupInfo.getBackupRootDir() + Path.SEPARATOR + backupInfo.getBackupId();<a name="line.209"></a>
-<span class="sourceLineNo">210</span>      if (activeFiles.size() &gt; 0) {<a name="line.210"></a>
+<span class="sourceLineNo">195</span>    backupManager.deleteBulkLoadedRows(pair.getSecond());<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    return mapForSrc;<a name="line.196"></a>
+<span class="sourceLineNo">197</span>  }<a name="line.197"></a>
+<span class="sourceLineNo">198</span><a name="line.198"></a>
+<span class="sourceLineNo">199</span>  private void copyBulkLoadedFiles(List&lt;String&gt; activeFiles, List&lt;String&gt; archiveFiles)<a name="line.199"></a>
+<span class="sourceLineNo">200</span>      throws IOException {<a name="line.200"></a>
+<span class="sourceLineNo">201</span><a name="line.201"></a>
+<span class="sourceLineNo">202</span>    try {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>      // Enable special mode of BackupDistCp<a name="line.203"></a>
+<span class="sourceLineNo">204</span>      conf.setInt(MapReduceBackupCopyJob.NUMBER_OF_LEVELS_TO_PRESERVE_KEY, 5);<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      // Copy active files<a name="line.205"></a>
+<span class="sourceLineNo">206</span>      String tgtDest = backupInfo.getBackupRootDir() + Path.SEPARATOR + backupInfo.getBackupId();<a name="line.206"></a>
+<span class="sourceLineNo">207</span>      int attempt = 1;<a name="line.207"></a>
+<span class="sourceLineNo">208</span>      while (activeFiles.size() &gt; 0) {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>        LOG.info("Copy "+ activeFiles.size() +<a name="line.209"></a>
+<span class="sourceLineNo">210</span>          " active bulk loaded files. Attempt ="+ (attempt++));<a name="line.210"></a>
 <span class="sourceLineNo">211</span>        String[] toCopy = new String[activeFiles.size()];<a name="line.211"></a>
 <span class="sourceLineNo">212</span>        activeFiles.toArray(toCopy);<a name="line.212"></a>
-<span class="sourceLineNo">213</span>        incrementalCopyHFiles(toCopy, tgtDest);<a name="line.213"></a>
-<span class="sourceLineNo">214</span>      }<a name="line.214"></a>
-<span class="sourceLineNo">215</span>      if (archiveFiles.size() &gt; 0) {<a name="line.215"></a>
-<span class="sourceLineNo">216</span>        String[] toCopy = new String[archiveFiles.size()];<a name="line.216"></a>
-<span class="sourceLineNo">217</span>        archiveFiles.toArray(toCopy);<a name="line.217"></a>
-<span class="sourceLineNo">218</span>        incrementalCopyHFiles(toCopy, tgtDest);<a name="line.218"></a>
-<span class="sourceLineNo">219</span>      }<a name="line.219"></a>
-<span class="sourceLineNo">220</span>    } finally {<a name="line.220"></a>
-<span class="sourceLineNo">221</span>      // Disable special mode of BackupDistCp<a name="line.221"></a>
-<span class="sourceLineNo">222</span>      conf.unset(MapReduceBackupCopyJob.NUMBER_OF_LEVELS_TO_PRESERVE_KEY);<a name="line.222"></a>
-<span class="sourceLineNo">223</span>    }<a name="line.223"></a>
-<span class="sourceLineNo">224</span><a name="line.224"></a>
-<span class="sourceLineNo">225</span>  }<a name="line.225"></a>
-<span class="sourceLineNo">226</span><a name="line.226"></a>
-<span class="sourceLineNo">227</span>  @Override<a name="line.227"></a>
-<span class="sourceLineNo">228</span>  public void execute() throws IOException {<a name="line.228"></a>
-<span class="sourceLineNo">229</span><a name="line.229"></a>
-<span class="sourceLineNo">230</span>    try {<a name="line.230"></a>
-<span class="sourceLineNo">231</span>      // case PREPARE_INCREMENTAL:<a name="line.231"></a>
-<span class="sourceLineNo">232</span>      beginBackup(backupManager, backupInfo);<a name="line.232"></a>
-<span class="sourceLineNo">233</span>      backupInfo.setPhase(BackupPhase.PREPARE_INCREMENTAL);<a name="line.233"></a>
-<span class="sourceLineNo">234</span>      LOG.debug("For incremental backup, current table set is "<a name="line.234"></a>
-<span class="sourceLineNo">235</span>          + backupManager.getIncrementalBackupTableSet());<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      newTimestamps =<a name="line.236"></a>
-<span class="sourceLineNo">237</span>          ((IncrementalBackupManager) backupManager).getIncrBackupLogFileMap();<a name="line.237"></a>
-<span class="sourceLineNo">238</span>    } catch (Exception e) {<a name="line.238"></a>
-<span class="sourceLineNo">239</span>      // fail the overall backup and return<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      failBackup(conn, backupInfo, backupManager, e, "Unexpected Exception : ",<a name="line.240"></a>
-<span class="sourceLineNo">241</span>        BackupType.INCREMENTAL, conf);<a name="line.241"></a>
-<span class="sourceLineNo">242</span>      throw new IOException(e);<a name="line.242"></a>
-<span class="sourceLineNo">243</span>    }<a name="line.243"></a>
-<span class="sourceLineNo">244</span><a name="line.244"></a>
-<span class="sourceLineNo">245</span>    // case INCREMENTAL_COPY:<a name="line.245"></a>
-<span class="sourceLineNo">246</span>    try {<a name="line.246"></a>
-<span class="sourceLineNo">247</span>      // copy out the table and region info files for each table<a name="line.247"></a>
-<span class="sourceLineNo">248</span>      BackupUtils.copyTableRegionInfo(conn, backupInfo, conf);<a name="line.248"></a>
-<span class="sourceLineNo">249</span>      // convert WAL to HFiles and copy them to .tmp under BACKUP_ROOT<a name="line.249"></a>
-<span class="sourceLineNo">250</span>      convertWALsToHFiles();<a name="line.250"></a>
-<span class="sourceLineNo">251</span>      incrementalCopyHFiles(new String[] {getBulkOutputDir().toString()}, backupInfo.getBackupRootDir());<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      // Save list of WAL files copied<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      backupManager.recordWALFiles(backupInfo.getIncrBackupFileList());<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    } catch (Exception e) {<a name="line.254"></a>
-<span class="sourceLineNo">255</span>      String msg = "Unexpected exception in incremental-backup: incremental copy " + backupId;<a name="line.255"></a>
-<span class="sourceLineNo">256</span>      // fail the overall backup and return<a name="line.256"></a>
-<span class="sourceLineNo">257</span>      failBackup(conn, backupInfo, backupManager, e, msg, BackupType.INCREMENTAL, conf);<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      throw new IOException(e);<a name="line.258"></a>
-<span class="sourceLineNo">259</span>    }<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    // case INCR_BACKUP_COMPLETE:<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    // set overall backup status: complete. Here we make sure to complete the backup.<a name="line.261"></a>
-<span class="sourceLineNo">262</span>    // After this checkpoint, even if entering cancel process, will let the backup finished<a name="line.262"></a>
-<span class="sourceLineNo">263</span>    try {<a name="line.263"></a>
-<span class="sourceLineNo">264</span>      // Set the previousTimestampMap which is before this current log roll to the manifest.<a name="line.264"></a>
-<span class="sourceLineNo">265</span>      HashMap&lt;TableName, HashMap&lt;String, Long&gt;&gt; previousTimestampMap =<a name="line.265"></a>
-<span class="sourceLineNo">266</span>          backupManager.readLogTimestampMap();<a name="line.266"></a>
-<span class="sourceLineNo">267</span>      backupInfo.setIncrTimestampMap(previousTimestampMap);<a name="line.267"></a>
-<span class="sourceLineNo">268</span><a name="line.268"></a>
-<span class="sourceLineNo">269</span>      // The table list in backupInfo is good for both full backup and incremental backup.<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      // For incremental backup, it contains the incremental backup table set.<a name="line.270"></a>
-<span class="sourceLineNo">271</span>      backupManager.writeRegionServerLogTimestamp(backupInfo.getTables(), newTimestamps);<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>      HashMap&lt;TableName, HashMap&lt;String, Long&gt;&gt; newTableSetTimestampMap =<a name="line.273"></a>
-<span class="sourceLineNo">274</span>          backupManager.readLogTimestampMap();<a name="line.274"></a>
-<span class="sourceLineNo">275</span><a name="line.275"></a>
-<span class="sourceLineNo">276</span>      Long newStartCode =<a name="line.276"></a>
-<span class="sourceLineNo">277</span>          BackupUtils.getMinValue(BackupUtils.getRSLogTimestampMins(newTableSetTimestampMap));<a name="line.277"></a>
-<span class="sourceLineNo">278</span>      backupManager.writeBackupStartCode(newStartCode);<a name="line.278"></a>
-<span class="sourceLineNo">279</span><a name="line.279"></a>
-<span class="sourceLineNo">280</span>      handleBulkLoad(backupInfo.getTableNames());<a name="line.280"></a>
-<span class="sourceLineNo">281</span>      // backup complete<a name="line.281"></a>
-<span class="sourceLineNo">282</span>      completeBackup(conn, backupInfo, backupManager, BackupType.INCREMENTAL, conf);<a name="line.282"></a>
-<span class="sourceLineNo">283</span><a name="line.283"></a>
-<span class="sourceLineNo">284</span>    } catch (IOException e) {<a name="line.284"></a>
-<span class="sourceLineNo">285</span>      failBackup(conn, backupInfo, backupManager, e, "Unexpected Exception : ",<a name="line.285"></a>
-<span class="sourceLineNo">286</span>        BackupType.INCREMENTAL, conf);<a name="line.286"></a>
-<span class="sourceLineNo">287</span>      throw new IOException(e);<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><a name="line.290"></a>
-<span class="sourceLineNo">291</span>  protected void incrementalCopyHFiles(String[] files, String backupDest) throws IOException {<a name="line.291"></a>
-<span class="sourceLineNo">292</span><a name="line.292"></a>
-<span class="sourceLineNo">293</span>    try {<a name="line.293"></a>
-<span class="sourceLineNo">294</span>      LOG.debug("Incremental copy HFiles is starting. dest="+backupDest);<a name="line.294"></a>
-<span class="sourceLineNo">295</span>      // set overall backup phase: incremental_copy<a name="line.295"></a>
-<span class="sourceLineNo">296</span>      backupInfo.setPhase(BackupPhase.INCREMENTAL_COPY);<a name="line.296"></a>
-<span class="sourceLineNo">297</span>      // get incremental backup file list and prepare parms for DistCp<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      String[] strArr = new String[files.length + 1];<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      System.arraycopy(files, 0, strArr, 0, files.length);<a name="line.299"></a>
-<span class="sourceLineNo">300</span>      strArr[strArr.length - 1] = backupDest;<a name="line.300"></a>
-<span class="sourceLineNo">301</span><a name="line.301"></a>
-<span class="sourceLineNo">302</span>      String jobname = "Incremental_Backup-HFileCopy-" + backupInfo.getBackupId();<a name="line.302"></a>
-<span class="sourceLineNo">303</span>      if (LOG.isDebugEnabled()) {<a name="line.303"></a>
-<span class="sourceLineNo">304</span>        LOG.debug("Setting incremental copy HFiles job name to : " + jobname);<a name="line.304"></a>
-<span class="sourceLineNo">305</span>      }<a name="line.305"></a>
-<span class="sourceLineNo">306</span>      conf.set(JOB_NAME_CONF_KEY, jobname);<a name="line.306"></a>
-<span class="sourceLineNo">307</span><a name="line.307"></a>
-<span class="sourceLineNo">308</span>      BackupCopyJob copyService = BackupRestoreFactory.getBackupCopyJob(conf);<a name="line.308"></a>
-<span class="sourceLineNo">309</span>      int res = copyService.copy(backupInfo, backupManager, conf, BackupType.INCREMENTAL, strArr);<a name="line.309"></a>
-<span class="sourceLineNo">310</span>      if (res != 0) {<a name="line.310"></a>
-<span class="sourceLineNo">311</span>        LOG.error("Copy incremental HFile files failed with return code: " + res + ".");<a name="line.311"></a>
-<span class="sourceLineNo">312</span>        throw new IOException("Failed copy from " + StringUtils.join(files, ',')<a name="line.312"></a>
-<span class="sourceLineNo">313</span>            + " to " + backupDest);<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      }<a name="line.314"></a>
-<span class="sourceLineNo">315</span>      LOG.debug("Incremental copy HFiles from " + StringUtils.join(files, ',')<a name="line.315"></a>
-<span class="sourceLineNo">316</span>          + " to " + backupDest + " finished.");<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    } finally {<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      deleteBulkLoadDirectory();<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    }<a name="line.319"></a>
-<span class="sourceLineNo">320</span>  }<a name="line.320"></a>
-<span class="sourceLineNo">321</span><a name="line.321"></a>
-<span class="sourceLineNo">322</span>  protected void deleteBulkLoadDirectory() throws IOException {<a name="line.322"></a>
-<span class="sourceLineNo">323</span>    // delete original bulk load directory on method exit<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    Path path = getBulkOutputDir();<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    FileSystem fs = FileSystem.get(conf);<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    boolean result = fs.delete(path, true);<a name="line.326"></a>
-<span class="sourceLineNo">327</span>    if (!result) {<a name="line.327"></a>
-<span class="sourceLineNo">328</span>      LOG.warn("Could not delete " + path);<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    }<a name="line.329"></a>
+<span class="sourceLineNo">213</span>        // Active file can be archived during copy operation,<a name="line.213"></a>
+<span class="sourceLineNo">214</span>        // we need to handle this properly<a name="line.214"></a>
+<span class="sourceLineNo">215</span>        try {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>          incrementalCopyHFiles(toCopy, tgtDest);<a name="line.216"></a>
+<span class="sourceLineNo">217</span>          break;<a name="line.217"></a>
+<span class="sourceLineNo">218</span>        } catch (IOException e) {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>          // Check if some files got archived<a name="line.219"></a>
+<span class="sourceLineNo">220</span>          // Update active and archived lists<a name="line.220"></a>
+<span class="sourceLineNo">221</span>          // When file is being moved from active to archive<a name="line.221"></a>
+<span class="sourceLineNo">222</span>          // directory, the number of active files decreases<a name="line.222"></a>
+<span class="sourceLineNo">223</span><a name="line.223"></a>
+<span class="sourceLineNo">224</span>          int numOfActive = activeFiles.size();<a name="line.224"></a>
+<span class="sourceLineNo">225</span>          updateFileLists(activeFiles, archiveFiles);<a name="line.225"></a>
+<span class="sourceLineNo">226</span>          if (activeFiles.size() &lt; numOfActive) {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>            continue;<a name="line.227"></a>
+<span class="sourceLineNo">228</span>          }<a name="line.228"></a>
+<span class="sourceLineNo">229</span>          // if not - throw exception<a name="line.229"></a>
+<span class="sourceLineNo">230</span>          throw e;<a name="line.230"></a>
+<span class="sourceLineNo">231</span>        }<a name="line.231"></a>
+<span class="sourceLineNo">232</span>      }<a name="line.232"></a>
+<span class="sourceLineNo">233</span>      // If incremental copy will fail for archived files<a name="line.233"></a>
+<span class="sourceLineNo">234</span>      // we will have partially loaded files in backup destination (only files from active data<a name="line.234"></a>
+<span class="sourceLineNo">235</span>      // directory). It is OK, because the backup will marked as FAILED and data will be cleaned up<a name="line.235"></a>
+<span class="sourceLineNo">236</span>      if (archiveFiles.size() &gt; 0) {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>        String[] toCopy = new String[archiveFiles.size()];<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        archiveFiles.toArray(toCopy);<a name="line.238"></a>
+<span class="sourceLineNo">239</span>        incrementalCopyHFiles(toCopy, tgtDest);<a name="line.239"></a>
+<span class="sourceLineNo">240</span>      }<a name="line.240"></a>
+<span class="sourceLineNo">241</span>    } finally {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      // Disable special mode of BackupDistCp<a name="line.242"></a>
+<span class="sourceLineNo">243</span>      conf.unset(MapReduceBackupCopyJob.NUMBER_OF_LEVELS_TO_PRESERVE_KEY);<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    }<a name="line.244"></a>
+<span class="sourceLineNo">245</span><a name="line.245"></a>
+<span class="sourceLineNo">246</span>  }<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span>  private void updateFileLists(List&lt;String&gt; activeFiles, List&lt;String&gt; archiveFiles)<a name="line.248"></a>
+<span class="sourceLineNo">249</span>      throws IOException {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    List&lt;String&gt; newlyArchived = new ArrayList&lt;String&gt;();<a name="line.250"></a>
+<span class="sourceLineNo">251</span><a name="line.251"></a>
+<span class="sourceLineNo">252</span>    for (String spath : activeFiles) {<a name="line.252"></a>
+<span class="sourceLineNo">253</span>      if (!fs.exists(new Path(spath))) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>        newlyArchived.add(spath);<a name="line.254"></a>
+<span class="sourceLineNo">255</span>      }<a name="line.255"></a>
+<span class="sourceLineNo">256</span>    }<a name="line.256"></a>
+<span class="sourceLineNo">257</span><a name="line.257"></a>
+<span class="sourceLineNo">258</span>    if (newlyArchived.size() &gt; 0) {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>      activeFiles.removeAll(newlyArchived);<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      archiveFiles.addAll(newlyArchived);<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>    LOG.debug(newlyArchived.size() + " files have been archived.");<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>  @Override<a name="line.267"></a>
+<span class="sourceLineNo">268</span>  public void execute() throws IOException {<a name="line.268"></a>
+<span class="sourceLineNo">269</span><a name="line.269"></a>
+<span class="sourceLineNo">270</span>    try {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>      // case PREPARE_INCREMENTAL:<a name="line.271"></a>
+<span class="sourceLineNo">272</span>      beginBackup(backupManager, backupInfo);<a name="line.272"></a>
+<span class="sourceLineNo">273</span>      backupInfo.setPhase(BackupPhase.PREPARE_INCREMENTAL);<a name="line.273"></a>
+<span class="sourceLineNo">274</span>      LOG.debug("For incremental backup, current table set is "<a name="line.274"></a>
+<span class="sourceLineNo">275</span>          + backupManager.getIncrementalBackupTableSet());<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      newTimestamps =<a name="line.276"></a>
+<span class="sourceLineNo">277</span>          ((IncrementalBackupManager) backupManager).getIncrBackupLogFileMap();<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    } catch (Exception e) {<a name="line.278"></a>
+<span class="sourceLineNo">279</span>      // fail the overall backup and return<a name="line.279"></a>
+<span class="sourceLineNo">280</span>      failBackup(conn, backupInfo, backupManager, e, "Unexpected Exception : ",<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        BackupType.INCREMENTAL, conf);<a name="line.281"></a>
+<span class="sourceLineNo">282</span>      throw new IOException(e);<a name="line.282"></a>
+<span class="sourceLineNo">283</span>    }<a name="line.283"></a>
+<span class="sourceLineNo">284</span><a name="line.284"></a>
+<span class="sourceLineNo">285</span>    // case INCREMENTAL_COPY:<a name="line.285"></a>
+<span class="sourceLineNo">286</span>    try {<a name="line.286"></a>
+<span class="sourceLineNo">287</span>      // copy out the table and region info files for each table<a name="line.287"></a>
+<span class="sourceLineNo">288</span>      BackupUtils.copyTableRegionInfo(conn, backupInfo, conf);<a name="line.288"></a>
+<span class="sourceLineNo">289</span>      // convert WAL to HFiles and copy them to .tmp under BACKUP_ROOT<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      convertWALsToHFiles();<a name="line.290"></a>
+<span class="sourceLineNo">291</span>      incrementalCopyHFiles(new String[] {getBulkOutputDir().toString()}, backupInfo.getBackupRootDir());<a name="line.291"></a>
+<span class="sourceLineNo">292</span>      // Save list of WAL files copied<a name="line.292"></a>
+<span class="sourceLineNo">293</span>      backupManager.recordWALFiles(backupInfo.getIncrBackupFileList());<a name="line.293"></a>
+<span class="sourceLineNo">294</span>    } catch (Exception e) {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>      String msg = "Unexpected exception in incremental-backup: incremental copy " + backupId;<a name="line.295"></a>
+<span class="sourceLineNo">296</span>      // fail the overall backup and return<a name="line.296"></a>
+<span class="sourceLineNo">297</span>      failBackup(conn, backupInfo, backupManager, e, msg, BackupType.INCREMENTAL, conf);<a name="line.297"></a>
+<span class="sourceLineNo">298</span>      throw new IOException(e);<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    }<a name="line.299"></a>
+<span class="sourceLineNo">300</span>    // case INCR_BACKUP_COMPLETE:<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    // set overall backup status: complete. Here we make sure to complete the backup.<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    // After this checkpoint, even if entering cancel process, will let the backup finished<a name="line.302"></a>
+<span class="sourceLineNo">303</span>    try {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>      // Set the previousTimestampMap which is before this current log roll to the manifest.<a name="line.304"></a>
+<span class="sourceLineNo">305</span>      HashMap&lt;TableName, HashMap&lt;String, Long&gt;&gt; previousTimestampMap =<a name="line.305"></a>
+<span class="sourceLineNo">306</span>          backupManager.readLogTimestampMap();<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      backupInfo.setIncrTimestampMap(previousTimestampMap);<a name="line.307"></a>
+<span class="sourceLineNo">308</span><a name="line.308"></a>
+<span class="sourceLineNo">309</span>      // The table list in backupInfo is good for both full backup and incremental backup.<a name="line.309"></a>
+<span class="sourceLineNo">310</span>      // For incremental backup, it contains the incremental backup table set.<a name="line.310"></a>
+<span class="sourceLineNo">311</span>      backupManager.writeRegionServerLogTimestamp(backupInfo.getTables(), newTimestamps);<a name="line.311"></a>
+<span class="sourceLineNo">312</span><a name="line.312"></a>
+<span class="sourceLineNo">313</span>      HashMap&lt;TableName, HashMap&lt;String, Long&gt;&gt; newTableSetTimestampMap =<a name="line.313"></a>
+<span class="sourceLineNo">314</span>          backupManager.readLogTimestampMap();<a name="line.314"></a>
+<span class="sourceLineNo">315</span><a name="line.315"></a>
+<span class="sourceLineNo">316</span>      Long newStartCode =<a name="line.316"></a>
+<span class="sourceLineNo">317</span>          BackupUtils.getMinValue(BackupUtils.getRSLogTimestampMins(newTableSetTimestampMap));<a name="line.317"></a>
+<span class="sourceLineNo">318</span>      backupManager.writeBackupStartCode(newStartCode);<a name="line.318"></a>
+<span class="sourceLineNo">319</span><a name="line.319"></a>
+<span class="sourceLineNo">320</span>      handleBulkLoad(backupInfo.getTableNames());<a name="line.320"></a>
+<span class="sourceLineNo">321</span>      // backup complete<a name="line.321"></a>
+<span class="sourceLineNo">322</span>      completeBackup(conn, backupInfo, backupManager, BackupType.INCREMENTAL, conf);<a name="line.322"></a>
+<span class="sourceLineNo">323</span><a name="line.323"></a>
+<span class="sourceLineNo">324</span>    } catch (IOException e) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>      failBackup(conn, backupInfo, backupManager, e, "Unexpected Exception : ",<a name="line.325"></a>
+<span class="sourceLineNo">326</span>        BackupType.INCREMENTAL, conf);<a name="line.326"></a>
+<span class="sourceLineNo">327</span>      throw new IOException(e);<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><a name="line.330"></a>
-<span class="sourceLineNo">331</span>  }<a name="line.331"></a>
+<span class="sourceLineNo">331</span>  protected void incrementalCopyHFiles(String[] files, String backupDest) throws IOException {<a name="line.331"></a>
 <span class="sourceLineNo">332</span><a name="line.332"></a>
-<span class="sourceLineNo">333</span>  protected void convertWALsToHFiles() throws IOException {<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    // get incremental backup file list and prepare parameters for DistCp<a name="line.334"></a>
-<span class="sourceLineNo">335</span>    List&lt;String&gt; incrBackupFileList = backupInfo.getIncrBackupFileList();<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    // Get list of tables in incremental backup set<a name="line.336"></a>
-<span class="sourceLineNo">337</span>    Set&lt;TableName&gt; tableSet = backupManager.getIncrementalBackupTableSet();<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    // filter missing files out (they have been copied by previous backups)<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    incrBackupFileList = filterMissingFiles(incrBackupFileList);<a name="line.339"></a>
-<span class="sourceLineNo">340</span>    for (TableName table : tableSet) {<a name="line.340"></a>
-<span class="sourceLineNo">341</span>      // Check if table exists<a name="line.341"></a>
-<span class="sourceLineNo">342</span>      if (tableExists(table, conn)) {<a name="line.342"></a>
-<span class="sourceLineNo">343</span>        walToHFiles(incrBackupFileList, table);<a name="line.343"></a>
-<span class="sourceLineNo">344</span>      } else {<a name="line.344"></a>
-<span class="sourceLineNo">345</span>        LOG.warn("Table " + table + " does not exists. Skipping in WAL converter");<a name="line.345"></a>
-<span class="sourceLineNo">346</span>      }<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    }<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  }<a name="line.348"></a>
-<span class="sourceLineNo">349</span><a name="line.349"></a>
-<span class="sourceLineNo">350</span><a name="line.350"></a>
-<span class="sourceLineNo">351</span>  protected boolean tableExists(TableName table, Connection conn) throws IOException {<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    try (Admin admin = conn.getAdmin()) {<a name="line.352"></a>
-<span class="sourceLineNo">353</span>      return admin.tableExists(table);<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    }<a name="line.354"></a>
-<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
-<span class="sourceLineNo">356</span><a name="line.356"></a>
-<span class="sourceLineNo">357</span>  protected void walToHFiles(List&lt;String&gt; dirPaths, TableName tableName) throws IOException {<a name="line.357"></a>
-<span class="sourceLineNo">358</span><a name="line.358"></a>
-<span class="sourceLineNo">359</span>    Tool player = new WALPlayer();<a name="line.359"></a>
-<span class="sourceLineNo">360</span><a name="line.360"></a>
-<span class="sourceLineNo">361</span>    // Player reads all files in arbitrary directory structure and creates<a name="line.361"></a>
-<span class="sourceLineNo">362</span>    // a Map task for each file. We use ';' as separator<a name="line.362"></a>
-<span class="sourceLineNo">363</span>    // because WAL file names contains ','<a name="line.363"></a>
-<span class="sourceLineNo">364</span>    String dirs = StringUtils.join(dirPaths, ';');<a name="line.364"></a>
-<span class="sourceLineNo">365</span>    String jobname = "Incremental_Backup-" + backupId + "-" + tableName.getNameAsString();<a name="line.365"></a>
-<span class="sourceLineNo">366</span><a name="line.366"></a>
-<span class="sourceLineNo">367</span>    Path bulkOutputPath = getBulkOutputDirForTable(tableName);<a name="line.367"></a>
-<span class="sourceLineNo">368</span>    conf.set(WALPlayer.BULK_OUTPUT_CONF_KEY, bulkOutputPath.toString());<a name="line.368"></a>
-<span class="sourceLineNo">369</span>    conf.set(WALPlayer.INPUT_FILES_SEPARATOR_KEY, ";");<a name="line.369"></a>
-<span class="sourceLineNo">370</span>    conf.set(JOB_NAME_CONF_KEY, jobname);<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    String[] playerArgs = { dirs, tableName.getNameAsString() };<a name="line.371"></a>
-<span class="sourceLineNo">372</span><a name="line.372"></a>
-<span class="sourceLineNo">373</span>    try {<a name="line.373"></a>
-<span class="sourceLineNo">374</span>      player.setConf(conf);<a name="line.374"></a>
-<span class="sourceLineNo">375</span>      int result = player.run(playerArgs);<a name="line.375"></a>
-<span class="sourceLineNo">376</span>      if(result != 0) {<a name="line.376"></a>
-<span class="sourceLineNo">377</span>        throw new IOException("WAL Player failed");<a name="line.377"></a>
-<span class="sourceLineNo">378</span>      }<a name="line.378"></a>
-<span class="sourceLineNo">379</span>      conf.unset(WALPlayer.INPUT_FILES_SEPARATOR_KEY);<a name="line.379"></a>
-<span class="sourceLineNo">380</span>      conf.unset(JOB_NAME_CONF_KEY);<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    } catch (IOException e) {<a name="line.381"></a>
-<span class="sourceLineNo">382</span>      throw e;<a name="line.382"></a>
-<span class="sourceLineNo">383</span>    } catch (Exception ee) {<a name="line.383"></a>
-<span class="sourceLineNo">384</span>      throw new IOException("Can not convert from directory " + dirs<a name="line.384"></a>
-<span class="sourceLineNo">385</span>          + " (check Hadoop, HBase and WALPlayer M/R job logs) ", ee);<a name="line.385"></a>
+<span class="sourceLineNo">333</span>    try {<a name="line.333"></a>
+<span class="sourceLineNo">334</span>      LOG.debug("Incremental copy HFiles is starting. dest="+backupDest);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>      // set overall backup phase: incremental_copy<a name="line.335"></a>
+<span class="sourceLineNo">336</span>      backupInfo.setPhase(BackupPhase.INCREMENTAL_COPY);<a name="line.336"></a>
+<span class="sourceLineNo">337</span>      // get incremental backup file list and prepare parms for DistCp<a name="line.337"></a>
+<span class="sourceLineNo">338</span>      String[] strArr = new String[files.length + 1];<a name="line.338"></a>
+<span class="sourceLineNo">339</span>      System.arraycopy(files, 0, strArr, 0, files.length);<a name="line.339"></a>
+<span class="sourceLineNo">340</span>      strArr[strArr.length - 1] = backupDest;<a name="line.340"></a>
+<span class="sourceLineNo">341</span><a name="line.341"></a>
+<span class="sourceLineNo">342</span>      String jobname = "Incremental_Backup-HFileCopy-" + backupInfo.getBackupId();<a name="line.342"></a>
+<span class="sourceLineNo">343</span>      if (LOG.isDebugEnabled()) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>        LOG.debug("Setting incremental copy HFiles job name to : " + jobname);<a name="line.344"></a>
+<span class="sourceLineNo">345</span>      }<a name="line.345"></a>
+<span class="sourceLineNo">346</span>      conf.set(JOB_NAME_CONF_KEY, jobname);<a name="line.346"></a>
+<span class="sourceLineNo">347</span><a name="line.347"></a>
+<span class="sourceLineNo">348</span>      BackupCopyJob copyService = BackupRestoreFactory.getBackupCopyJob(conf);<a name="line.348"></a>
+<span class="sourceLineNo">349</span>      int res = copyService.copy(backupInfo, backupManager, conf, BackupType.INCREMENTAL, strArr);<a name="line.349"></a>
+<span class="sourceLineNo">350</span>      if (res != 0) {<a name="line.350"></a>
+<span class="sourceLineNo">351</span>        LOG.error("Copy incremental HFile files failed with return code: " + res + ".");<a name="line.351"></a>
+<span class="sourceLineNo">352</span>        throw new IOException("Failed copy from " + StringUtils.join(files, ',')<a name="line.352"></a>
+<span class="sourceLineNo">353</span>            + " to " + backupDest);<a name="line.353"></a>
+<span class="sourceLineNo">354</span>      }<a name="line.354"></a>
+<span class="sourceLineNo">355</span>      LOG.debug("Incremental copy HFiles from " + StringUtils.join(files, ',')<a name="line.355"></a>
+<span class="sourceLineNo">356</span>          + " to " + backupDest + " finished.");<a name="line.356"></a>
+<span class="sourceLineNo">357</span>    } finally {<a name="line.357"></a>
+<span class="sourceLineNo">358</span>      deleteBulkLoadDirectory();<a name="line.358"></a>
+<span class="sourceLineNo">359</span>    }<a name="line.359"></a>
+<span class="sourceLineNo">360</span>  }<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span>  protected void deleteBulkLoadDirectory() throws IOException {<a name="line.362"></a>
+<span class="sourceLineNo">363</span>    // delete original bulk load directory on method exit<a name="line.363"></a>
+<span class="sourceLineNo">364</span>    Path path = getBulkOutputDir();<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    boolean result = fs.delete(path, true);<a name="line.365"></a>
+<span class="sourceLineNo">366</span>    if (!result) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>      LOG.warn("Could not delete " + path);<a name="line.367"></a>
+<span class="sourceLineNo">368</span>    }<a name="line.368"></a>
+<span class="sourceLineNo">369</span><a name="line.369"></a>
+<span class="sourceLineNo">370</span>  }<a name="line.370"></a>
+<span class="sourceLineNo">371</span><a name="line.371"></a>
+<span class="sourceLineNo">372</span>  protected void convertWALsToHFiles() throws IOException {<a name="line.372"></a>
+<span class="sourceLineNo">373</span>    // get incremental backup file list and prepare parameters for DistCp<a name="line.373"></a>
+<span class="sourceLineNo">374</span>    List&lt;String&gt; incrBackupFileList = backupInfo.getIncrBackupFileList();<a name="line.374"></a>
+<span class="sourceLineNo">375</span>    // Get list of tables in incremental backup set<a name="line.375"></a>
+<span class="sourceLineNo">376</span>    Set&lt;TableName&gt; tableSet = backupManager.getIncrementalBackupTableSet();<a name="line.376"></a>
+<span class="sourceLineNo">377</span>    // filter missing files out (they have been copied by previous backups)<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    incrBackupFileList = filterMissingFiles(incrBackupFileList);<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    for (TableName table : tableSet) {<a name="line.379"></a>
+<span class="sourceLineNo">380</span>      // Check if table exists<a name="line.380"></a>
+<span class="sourceLineNo">381</span>      if (tableExists(table, conn)) {<a name="line.381"></a>
+<span class="sourceLineNo">382</span>        walToHFiles(incrBackupFileList, table);<a name="line.382"></a>
+<span class="sourceLineNo">383</span>      } else {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>        LOG.warn("Table " + table + " does not exists. Skipping in WAL converter");<a name="line.384"></a>
+<span class="sourceLineNo">385</span>      }<a name="line.385"></a>
 <span class="sourceLineNo">386</span>    }<a name="line.386"></a>
 <span class="sourceLineNo">387</span>  }<a name="line.387"></a>
 <span class="sourceLineNo">388</span><a name="line.388"></a>
-<span class="sourceLineNo">389</span>  protected Path getBulkOutputDirForTable(TableName table) {<a name="line.389"></a>
-<span class="sourceLineNo">390</span>    Path tablePath = getBulkOutputDir();<a name="line.390"></a>
-<span class="sourceLineNo">391</span>    tablePath = new Path(tablePath, table.getNamespaceAsString());<a name="line.391"></a>
-<span class="sourceLineNo">392</span>    tablePath = new Path(tablePath, table.getQualifierAsString());<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    return new Path(tablePath, "data");<a name="line.393"></a>
+<span class="sourceLineNo">389</span><a name="line.389"></a>
+<span class="sourceLineNo">390</span>  protected boolean tableExists(TableName table, Connection conn) throws IOException {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>    try (Admin admin = conn.getAdmin()) {<a name="line.391"></a>
+<span class="sourceLineNo">392</span>      return admin.tableExists(table);<a name="line.392"></a>
+<span class="sourceLineNo">393</span>    }<a name="line.393"></a>
 <span class="sourceLineNo">394</span>  }<a name="line.394"></a>
 <span class="sourceLineNo">395</span><a name="line.395"></a>
-<span class="sourceLineNo">396</span>  protected Path getBulkOutputDir() {<a name="line.396"></a>
-<span class="sourceLineNo">397</span>    String backupId = backupInfo.getBackupId();<a name="line.397"></a>
-<span class="sourceLineNo">398</span>    Path path = new Path(backupInfo.getBackupRootDir());<a name="line.398"></a>
-<span class="sourceLineNo">399</span>    path = new Path(path, ".tmp");<a name="line.399"></a>
-<span class="sourceLineNo">400</span>    path = new Path(path, backupId);<a name="line.400"></a>
-<span class="sourceLineNo">401</span>    return path;<a name="line.401"></a>
-<span class="sourceLineNo">402</span>  }<a name="line.402"></a>
-<span class="sourceLineNo">403</span><a name="line.403"></a>
-<span class="sourceLineNo">404</span>}<a name="line.404"></a>
+<span class="sourceLineNo">396</span>  protected void walToHFiles(List&lt;String&gt; dirPaths, TableName tableName) throws IOException {<a name="line.396"></a>
+<span class="sourceLineNo">397</span><a name="line.397"></a>
+<span class="sourceLineNo">398</span>    Tool player = new WALPlayer();<a name="line.398"></a>
+<span class="sourceLineNo">399</span><a name="line.399"></a>
+<span class="sourceLineNo">400</span>    // Player reads all files in arbitrary directory structure and creates<a name="line.400"></a>
+<span class="sourceLineNo">401</span>    // a Map task for each file. We use ';' as separator<a name="line.401"></a>
+<span class="sourceLineNo">402</span>    // because WAL file names contains ','<a name="line.402"></a>
+<span class="sourceLineNo">403</span>    String dirs = StringUtils.join(dirPaths, ';');<a name="line.403"></a>
+<span class="sourceLineNo">404</span>    String jobname = "Incremental_Backup-" + backupId + "-" + tableName.getNameAsString();<a name="line.404"></a>
+<span class="sourceLineNo">405</span><a name="line.405"></a>
+<span class="sourceLineNo">406</span>    Path bulkOutputPath = getBulkOutputDirForTable(tableName);<a name="line.406"></a>
+<span class="sourceLineNo">407</span>    conf.set(WALPlayer.BULK_OUTPUT_CONF_KEY, bulkOutputPath.toString());<a name="line.407"></a>
+<span class="sourceLineNo">408</span>    conf.set(WALPlayer.INPUT_FILES_SEPARATOR_KEY, ";");<a name="line.408"></a>
+<span class="sourceLineNo">409</span>    conf.set(JOB_NAME_CONF_KEY, jobname);<a name="line.409"></a>
+<span class="sourceLineNo">410</span>    String[] playerArgs = { dirs, tableName.getNameAsString() };<a name="line.410"></a>
+<span class="sourceLineNo">411</span><a name="line.411"></a>
+<span class="sourceLineNo">412</span>    try {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>      player.setConf(conf);<a name="line.413"></a>
+<span class="sourceLineNo">414</span>      int result = player.run(playerArgs);<a name="line.414"></a>
+<span class="sourceLineNo">415</span>      if(result != 0) {<a name="line.415"></a>
+<span class="sourceLineNo">416</span>        throw new IOException("WAL Player failed");<a name="line.416"></a>
+<span class="sourceLineNo">417</span>      }<a name="line.417"></a>
+<span class="sourceLineNo">418</span>      conf.unset(WALPlayer.INPUT_FILES_SEPARATOR_KEY);<a name="line.418"></a>
+<span class="sourceLineNo">419</span>      conf.unset(JOB_NAME_CONF_KEY);<a name="line.419"></a>
+<span class="sourceLineNo">420</span>    } catch (IOException e) {<a name="line.420"></a>
+<span class="sourceLineNo">421</span>      throw e;<a name="line.421"></a>
+<span class="sourceLineNo">422</span>    } catch (Exception ee) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>      throw new IOException("Can not convert from directory " + dirs<a name="line.423"></a>
+<span class="sourceLineNo">424</span>          + " (check Hadoop, HBase and WALPlayer M/R job logs) ", ee);<a name="line.424"></a>
+<span class="sourceLineNo">425</span>    }<a name="line.425"></a>
+<span class="sourceLineNo">426</span>  }<a name="line.426"></a>
+<span class="sourceLineNo">427</span><a name="line.427"></a>
+<span class="sourceLineNo">428</span>  protected Path getBulkOutputDirForTable(TableName table) {<a name="line.428"></a>
+<span class="sourceLineNo">429</span>    Path tablePath = getBulkOutputDir();<a name="line.429"></a>
+<span class="sourceLineNo">430</span>    tablePath = new Path(tablePath, table.getNamespaceAsString());<a name="line.430"></a>
+<span class="sourceLineNo">431</span>    tablePath = new Path(tablePath, table.getQualifierAsString());<a name="line.431"></a>
+<span class="sourceLineNo">432</span>    return new Path(tablePath, "data");<a name="line.432"></a>
+<span class="sourceLineNo">433</span>  }<a name="line.433"></a>
+<span class="sourceLineNo">434</span><a name="line.434"></a>
+<span class="sourceLineNo">435</span>  protected Path getBulkOutputDir() {<a name="line.435"></a>
+<span class="sourceLineNo">436</span>    String backupId = backupInfo.getBackupId();<a name="line.436"></a>
+<span class="sourceLineNo">437</span>    Path path = new Path(backupInfo.getBackupRootDir());<a name="line.437"></a>
+<span class="sourceLineNo">438</span>    path = new Path(path, ".tmp");<a name="line.438"></a>
+<span class="sourceLineNo">439</span>    path = new Path(path, backupId);<a name="line.439"></a>
+<span class="sourceLineNo">440</span>    return path;<a name="line.440"></a>
+<span class="sourceLineNo">441</span>  }<a name="line.441"></a>
+<span class="sourceLineNo">442</span><a name="line.442"></a>
+<span class="sourceLineNo">443</span>}<a name="line.443"></a>
 
 
 


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/org/apache/hadoop/hbase/backup/impl/FullTableBackupClient.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/backup/impl/FullTableBackupClient.html b/devapidocs/org/apache/hadoop/hbase/backup/impl/FullTableBackupClient.html
index 7f0b207..fb75405 100644
--- a/devapidocs/org/apache/hadoop/hbase/backup/impl/FullTableBackupClient.html
+++ b/devapidocs/org/apache/hadoop/hbase/backup/impl/FullTableBackupClient.html
@@ -161,7 +161,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBack
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.backup.impl.<a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBackupClient.html" title="class in org.apache.hadoop.hbase.backup.impl">TableBackupClient</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#BACKUP_CLIENT_IMPL_CLASS">BACKUP_CLIENT_IMPL_CLASS</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#BACKUP_TEST_MODE_STAGE">BACKUP_TEST_MODE_STAGE</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#backupId">backupId</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#backupInfo">backupInfo</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#backupManager">backupManager</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#conf">conf</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#conn">conn</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#newTimestamps">newTimestamps</a>, <a href="../../../../../../org/apache/hadoo
 p/hbase/backup/impl/TableBackupClient.html#tableList">tableList</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#BACKUP_CLIENT_IMPL_CLASS">BACKUP_CLIENT_IMPL_CLASS</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#BACKUP_TEST_MODE_STAGE">BACKUP_TEST_MODE_STAGE</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#backupId">backupId</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#backupInfo">backupInfo</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#backupManager">backupManager</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#conf">conf</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#conn">conn</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#fs">fs</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/Ta
 bleBackupClient.html#newTimestamps">newTimestamps</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#tableList">tableList</a></code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/org/apache/hadoop/hbase/backup/impl/IncrementalBackupManager.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/backup/impl/IncrementalBackupManager.html b/devapidocs/org/apache/hadoop/hbase/backup/impl/IncrementalBackupManager.html
index 01551ef..c7279d7 100644
--- a/devapidocs/org/apache/hadoop/hbase/backup/impl/IncrementalBackupManager.html
+++ b/devapidocs/org/apache/hadoop/hbase/backup/impl/IncrementalBackupManager.html
@@ -257,7 +257,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupMan
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.backup.impl.<a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupManager</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#addIncrementalBackupTableSet-java.util.Set-">addIncrementalBackupTableSet</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#close--">close</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#createBackupInfo-java.lang.String-org.apache.hadoop.hbase.backup.BackupType-java.util.List-java.lang.String-int-long-">createBackupInfo</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#decorateMasterConfiguration-org.apache.hadoop.conf.Configuration-">decorateMasterConfiguration</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#decorateRegionServerConfiguration-org.apache.hadoop.conf.Configuration-">decorateRegionServerConfiguration</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#finishBackupSession--">finishBackupSession</a>,
  <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#getAncestors-org.apache.hadoop.hbase.backup.BackupInfo-">getAncestors</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#getAncestors-org.apache.hadoop.hbase.backup.BackupInfo-org.apache.hadoop.hbase.TableName-">getAncestors</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#getBackupHistory--">getBackupHistory</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#getBackupHistory-boolean-">getBackupHistory</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#getBackupInfo--">getBackupInfo</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#getConf--">getConf</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#getConnection--">getConnection</a>, <a href="../../../../../../org/apache/hadoop/hbase/
 backup/impl/BackupManager.html#getIncrementalBackupTableSet--">getIncrementalBackupTableSet</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#getWALFilesFromBackupSystem--">getWALFilesFromBackupSystem</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#initialize--">initialize</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#isBackupEnabled-org.apache.hadoop.conf.Configuration-">isBackupEnabled</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#readBackupStartCode--">readBackupStartCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#readBulkloadRows-java.util.List-">readBulkloadRows</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#readLogTimestampMap--">readLogTimestampMap</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#read
 RegionServerLastLogRollResult--">readRegionServerLastLogRollResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#recordWALFiles-java.util.List-">recordWALFiles</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#removeBulkLoadedRows-java.util.List-java.util.List-">removeBulkLoadedRows</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#setBackupInfo-org.apache.hadoop.hbase.backup.BackupInfo-">setBackupInfo</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#startBackupSession--">startBackupSession</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#updateBackupInfo-org.apache.hadoop.hbase.backup.BackupInfo-">updateBackupInfo</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#writeBackupStartCode-java.lang.Long-">writeBackupStartCode</a>, <a href="../../../../../../org/a
 pache/hadoop/hbase/backup/impl/BackupManager.html#writeBulkLoadedFiles-java.util.List-java.util.Map:A-">writeBulkLoadedFiles</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#writeRegionServerLogTimestamp-java.util.Set-java.util.HashMap-">writeRegionServerLogTimestamp</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#addIncrementalBackupTableSet-java.util.Set-">addIncrementalBackupTableSet</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#close--">close</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#createBackupInfo-java.lang.String-org.apache.hadoop.hbase.backup.BackupType-java.util.List-java.lang.String-int-long-">createBackupInfo</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#decorateMasterConfiguration-org.apache.hadoop.conf.Configuration-">decorateMasterConfiguration</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#decorateRegionServerConfiguration-org.apache.hadoop.conf.Configuration-">decorateRegionServerConfiguration</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#deleteBulkLoadedRows-java.util.List-">deleteBul
 kLoadedRows</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#finishBackupSession--">finishBackupSession</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#getAncestors-org.apache.hadoop.hbase.backup.BackupInfo-">getAncestors</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#getAncestors-org.apache.hadoop.hbase.backup.BackupInfo-org.apache.hadoop.hbase.TableName-">getAncestors</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#getBackupHistory--">getBackupHistory</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#getBackupHistory-boolean-">getBackupHistory</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#getBackupInfo--">getBackupInfo</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#getConf--">getConf</a>, <a href="../../../../..
 /../org/apache/hadoop/hbase/backup/impl/BackupManager.html#getConnection--">getConnection</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#getIncrementalBackupTableSet--">getIncrementalBackupTableSet</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#getWALFilesFromBackupSystem--">getWALFilesFromBackupSystem</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#initialize--">initialize</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#isBackupEnabled-org.apache.hadoop.conf.Configuration-">isBackupEnabled</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#readBackupStartCode--">readBackupStartCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#readBulkloadRows-java.util.List-">readBulkloadRows</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupM
 anager.html#readLogTimestampMap--">readLogTimestampMap</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#readRegionServerLastLogRollResult--">readRegionServerLastLogRollResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#recordWALFiles-java.util.List-">recordWALFiles</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#setBackupInfo-org.apache.hadoop.hbase.backup.BackupInfo-">setBackupInfo</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#startBackupSession--">startBackupSession</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#updateBackupInfo-org.apache.hadoop.hbase.backup.BackupInfo-">updateBackupInfo</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#writeBackupStartCode-java.lang.Long-">writeBackupStartCode</a>, <a href="../../../../../../org/apache/hadoop/hb
 ase/backup/impl/BackupManager.html#writeRegionServerLogTimestamp-java.util.Set-java.util.HashMap-">writeRegionServerLogTimestamp</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html b/devapidocs/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html
index 64bf7bd..82d2f5c 100644
--- a/devapidocs/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html
+++ b/devapidocs/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":9,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":9,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":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";
@@ -162,7 +162,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBack
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.backup.impl.<a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBackupClient.html" title="class in org.apache.hadoop.hbase.backup.impl">TableBackupClient</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#BACKUP_CLIENT_IMPL_CLASS">BACKUP_CLIENT_IMPL_CLASS</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#BACKUP_TEST_MODE_STAGE">BACKUP_TEST_MODE_STAGE</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#backupId">backupId</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#backupInfo">backupInfo</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#backupManager">backupManager</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#conf">conf</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#conn">conn</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#newTimestamps">newTimestamps</a>, <a href="../../../../../../org/apache/hadoo
 p/hbase/backup/impl/TableBackupClient.html#tableList">tableList</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#BACKUP_CLIENT_IMPL_CLASS">BACKUP_CLIENT_IMPL_CLASS</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#BACKUP_TEST_MODE_STAGE">BACKUP_TEST_MODE_STAGE</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#backupId">backupId</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#backupInfo">backupInfo</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#backupManager">backupManager</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#conf">conf</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#conn">conn</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#fs">fs</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/Ta
 bleBackupClient.html#newTimestamps">newTimestamps</a>, <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#tableList">tableList</a></code></li>
 </ul>
 </li>
 </ul>
@@ -260,6 +260,11 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBack
            <a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;conn)</code>&nbsp;</td>
 </tr>
 <tr id="i12" class="altColor">
+<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html#updateFileLists-java.util.List-java.util.List-">updateFileLists</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;activeFiles,
+               <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;archiveFiles)</code>&nbsp;</td>
+</tr>
+<tr id="i13" class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html#walToHFiles-java.util.List-org.apache.hadoop.hbase.TableName-">walToHFiles</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;dirPaths,
            <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
@@ -363,7 +368,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBack
 <ul class="blockList">
 <li class="blockList">
 <h4>isActiveWalPath</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html#line.93">isActiveWalPath</a>(org.apache.hadoop.fs.Path&nbsp;p)</pre>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html#line.92">isActiveWalPath</a>(org.apache.hadoop.fs.Path&nbsp;p)</pre>
 <div class="block">Check if a given path is belongs to active WAL directory</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -379,7 +384,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBack
 <ul class="blockList">
 <li class="blockList">
 <h4>getIndex</h4>
-<pre>protected static&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html#line.97">getIndex</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tbl,
+<pre>protected static&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html#line.96">getIndex</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tbl,
                               <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/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;sTableList)</pre>
 </li>
 </ul>
@@ -403,7 +408,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBack
 <ul class="blockList">
 <li class="blockList">
 <h4>copyBulkLoadedFiles</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html#line.201">copyBulkLoadedFiles</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;activeFiles,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html#line.199">copyBulkLoadedFiles</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;activeFiles,
                                  <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;archiveFiles)
                           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>
@@ -412,13 +417,28 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBack
 </dl>
 </li>
 </ul>
+<a name="updateFileLists-java.util.List-java.util.List-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateFileLists</h4>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html#line.248">updateFileLists</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;activeFiles,
+                             <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;archiveFiles)
+                      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>
 <a name="execute--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>execute</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html#line.228">execute</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html#line.268">execute</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"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#execute--">TableBackupClient</a></code></span></div>
 <div class="block">Backup request execution</div>
@@ -436,7 +456,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBack
 <ul class="blockList">
 <li class="blockList">
 <h4>incrementalCopyHFiles</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html#line.291">incrementalCopyHFiles</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;files,
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html#line.331">incrementalCopyHFiles</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;files,
                                      <a href="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;backupDest)
                               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>
@@ -451,7 +471,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBack
 <ul class="blockList">
 <li class="blockList">
 <h4>deleteBulkLoadDirectory</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html#line.322">deleteBulkLoadDirectory</a>()
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html#line.362">deleteBulkLoadDirectory</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>
@@ -465,7 +485,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBack
 <ul class="blockList">
 <li class="blockList">
 <h4>convertWALsToHFiles</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html#line.333">convertWALsToHFiles</a>()
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html#line.372">convertWALsToHFiles</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>
@@ -479,7 +499,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBack
 <ul class="blockList">
 <li class="blockList">
 <h4>tableExists</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html#line.351">tableExists</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table,
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html#line.390">tableExists</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table,
                               <a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;conn)
                        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>
@@ -494,7 +514,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBack
 <ul class="blockList">
 <li class="blockList">
 <h4>walToHFiles</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html#line.357">walToHFiles</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;dirPaths,
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html#line.396">walToHFiles</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;dirPaths,
                            <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></pre>
 <dl>
@@ -509,7 +529,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBack
 <ul class="blockList">
 <li class="blockList">
 <h4>getBulkOutputDirForTable</h4>
-<pre>protected&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html#line.389">getBulkOutputDirForTable</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table)</pre>
+<pre>protected&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html#line.428">getBulkOutputDirForTable</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table)</pre>
 </li>
 </ul>
 <a name="getBulkOutputDir--">
@@ -518,7 +538,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBack
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getBulkOutputDir</h4>
-<pre>protected&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html#line.396">getBulkOutputDir</a>()</pre>
+<pre>protected&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html#line.435">getBulkOutputDir</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html b/devapidocs/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html
index b57a53d..3994725 100644
--- a/devapidocs/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html
+++ b/devapidocs/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":9,"i3":10,"i4":10,"i5":9};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":9,"i4":10,"i5":10,"i6":9};
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -110,7 +110,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Private
-public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html#line.57">RestoreTablesClient</a>
+public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html#line.55">RestoreTablesClient</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block">Restore table implementation</div>
 </li>
@@ -208,10 +208,14 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html#execute--">execute</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i2" class="altColor">
+<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;org.apache.hadoop.fs.Path&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html#getFilesRecursively-java.lang.String-">getFilesRecursively</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;fileBackupDir)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
 <td class="colFirst"><code>(package private) static long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html#getTsFromBackupId-java.lang.String-">getTsFromBackupId</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;backupId)</code>&nbsp;</td>
 </tr>
-<tr id="i3" class="rowColor">
+<tr id="i4" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html#restore-java.util.HashMap-org.apache.hadoop.hbase.TableName:A-org.apache.hadoop.hbase.TableName:A-boolean-">restore</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManifest.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupManifest</a>&gt;&nbsp;backupManifestMap,
        <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>[]&nbsp;sTableArray,
@@ -220,7 +224,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <div class="block">Restore operation.</div>
 </td>
 </tr>
-<tr id="i4" class="altColor">
+<tr id="i5" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html#restoreImages-org.apache.hadoop.hbase.backup.impl.BackupManifest.BackupImage:A-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.TableName-boolean-">restoreImages</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManifest.BackupImage.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupManifest.BackupImage</a>[]&nbsp;images,
              <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;sTable,
@@ -229,7 +233,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <div class="block">Restore operation handle each backupImage in array</div>
 </td>
 </tr>
-<tr id="i5" class="rowColor">
+<tr id="i6" class="altColor">
 <td class="colFirst"><code>(package private) static boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html#withinRange-long-long-long-">withinRange</a></span>(long&nbsp;a,
            long&nbsp;lower,
@@ -263,7 +267,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.slf4j.Logger <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html#line.58">LOG</a></pre>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html#line.56">LOG</a></pre>
 </li>
 </ul>
 <a name="conf">
@@ -272,7 +276,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>conf</h4>
-<pre>private&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html#line.60">conf</a></pre>
+<pre>private&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html#line.58">conf</a></pre>
 </li>
 </ul>
 <a name="conn">
@@ -281,7 +285,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>conn</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html#line.61">conn</a></pre>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html#line.59">conn</a></pre>
 </li>
 </ul>
 <a name="backupId">
@@ -290,7 +294,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>backupId</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/backup/impl/RestoreTablesClient.html#line.62">backupId</a></pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html#line.60">backupId</a></pre>
 </li>
 </ul>
 <a name="sTableArray">
@@ -299,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>sTableArray</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html#line.63">sTableArray</a></pre>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html#line.61">sTableArray</a></pre>
 </li>
 </ul>
 <a name="tTableArray">
@@ -308,7 +312,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>tTableArray</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html#line.64">tTableArray</a></pre>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html#line.62">tTableArray</a></pre>
 </li>
 </ul>
 <a name="targetRootDir">
@@ -317,7 +321,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>targetRootDir</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/backup/impl/RestoreTablesClient.html#line.65">targetRootDir</a></pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html#line.63">targetRootDir</a></pre>
 </li>
 </ul>
 <a name="isOverwrite">
@@ -326,7 +330,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>isOverwrite</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html#line.66">isOverwrite</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html#line.64">isOverwrite</a></pre>
 </li>
 </ul>
 </li>
@@ -343,7 +347,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RestoreTablesClient</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html#line.68">RestoreTablesClient</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;conn,
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html#line.66">RestoreTablesClient</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;conn,
                            <a href="../../../../../../org/apache/hadoop/hbase/backup/RestoreRequest.html" title="class in org.apache.hadoop.hbase.backup">RestoreRequest</a>&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>
@@ -366,7 +370,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>checkTargetTables</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html#line.90">checkTargetTables</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>[]&nbsp;tTableArray,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html#line.88">checkTargetTables</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>[]&nbsp;tTableArray,
                                boolean&nbsp;isOverwrite)
                         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">Validate target tables</div>
@@ -387,7 +391,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>restoreImages</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html#line.139">restoreImages</a>(<a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManifest.BackupImage.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupManifest.BackupImage</a>[]&nbsp;images,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html#line.137">restoreImages</a>(<a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManifest.BackupImage.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupManifest.BackupImage</a>[]&nbsp;images,
                            <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;sTable,
                            <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tTable,
                            boolean&nbsp;truncateIfExists)
@@ -405,13 +409,29 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 </dl>
 </li>
 </ul>
+<a name="getFilesRecursively-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFilesRecursively</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;org.apache.hadoop.fs.Path&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html#line.188">getFilesRecursively</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;fileBackupDir)
+                                                     throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a>,
+                                                            <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/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code></dd>
+<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>
 <a name="restore-java.util.HashMap-org.apache.hadoop.hbase.TableName:A-org.apache.hadoop.hbase.TableName:A-boolean-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>restore</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html#line.196">restore</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManifest.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupManifest</a>&gt;&nbsp;backupManifestMap,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html#line.210">restore</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManifest.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupManifest</a>&gt;&nbsp;backupManifestMap,
                      <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>[]&nbsp;sTableArray,
                      <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>[]&nbsp;tTableArray,
                      boolean&nbsp;isOverwrite)
@@ -433,7 +453,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getTsFromBackupId</h4>
-<pre>static&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html#line.253">getTsFromBackupId</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;backupId)</pre>
+<pre>static&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html#line.246">getTsFromBackupId</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;backupId)</pre>
 </li>
 </ul>
 <a name="withinRange-long-long-long-">
@@ -442,7 +462,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>withinRange</h4>
-<pre>static&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html#line.260">withinRange</a>(long&nbsp;a,
+<pre>static&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html#line.253">withinRange</a>(long&nbsp;a,
                            long&nbsp;lower,
                            long&nbsp;upper)</pre>
 </li>
@@ -453,7 +473,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>execute</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html#line.267">execute</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html#line.260">execute</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>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/org/apache/hadoop/hbase/backup/impl/TableBackupClient.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/backup/impl/TableBackupClient.html b/devapidocs/org/apache/hadoop/hbase/backup/impl/TableBackupClient.html
index cd08ce7..006a299 100644
--- a/devapidocs/org/apache/hadoop/hbase/backup/impl/TableBackupClient.html
+++ b/devapidocs/org/apache/hadoop/hbase/backup/impl/TableBackupClient.html
@@ -185,14 +185,18 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#conn">conn</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<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/backup/impl/TableBackupClient.html#fs">fs</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code>private static org.slf4j.Logger</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#LOG">LOG</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected <a href="http://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="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/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#newTimestamps">newTimestamps</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected <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/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#tableList">tableList</a></span></code>&nbsp;</td>
 </tr>
@@ -452,12 +456,21 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <a name="backupInfo">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>backupInfo</h4>
 <pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#line.71">backupInfo</a></pre>
 </li>
 </ul>
+<a name="fs">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>fs</h4>
+<pre>protected&nbsp;org.apache.hadoop.fs.FileSystem <a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#line.72">fs</a></pre>
+</li>
+</ul>
 </li>
 </ul>
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
@@ -472,7 +485,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>TableBackupClient</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#line.73">TableBackupClient</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#line.74">TableBackupClient</a>()</pre>
 </li>
 </ul>
 <a name="TableBackupClient-org.apache.hadoop.hbase.client.Connection-java.lang.String-org.apache.hadoop.hbase.backup.BackupRequest-">
@@ -481,7 +494,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TableBackupClient</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#line.76">TableBackupClient</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;conn,
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#line.77">TableBackupClient</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;conn,
                          <a href="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;backupId,
                          <a href="../../../../../../org/apache/hadoop/hbase/backup/BackupRequest.html" title="class in org.apache.hadoop.hbase.backup">BackupRequest</a>&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>
@@ -505,7 +518,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>init</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#line.81">init</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;conn,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#line.82">init</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;conn,
                  <a href="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;backupId,
                  <a href="../../../../../../org/apache/hadoop/hbase/backup/BackupRequest.html" title="class in org.apache.hadoop.hbase.backup">BackupRequest</a>&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>
@@ -521,7 +534,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>beginBackup</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#line.108">beginBackup</a>(<a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupManager</a>&nbsp;backupManager,
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#line.110">beginBackup</a>(<a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupManager</a>&nbsp;backupManager,
                            <a href="../../../../../../org/apache/hadoop/hbase/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a>&nbsp;backupInfo)
                     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">Begin the overall backup.</div>
@@ -539,7 +552,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getMessage</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>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#line.127">getMessage</a>(<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;e)</pre>
+<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>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#line.129">getMessage</a>(<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;e)</pre>
 </li>
 </ul>
 <a name="deleteSnapshots-org.apache.hadoop.hbase.client.Connection-org.apache.hadoop.hbase.backup.BackupInfo-org.apache.hadoop.conf.Configuration-">
@@ -548,7 +561,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>deleteSnapshots</h4>
-<pre>protected static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#line.140">deleteSnapshots</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;conn,
+<pre>protected static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#line.142">deleteSnapshots</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;conn,
                                       <a href="../../../../../../org/apache/hadoop/hbase/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a>&nbsp;backupInfo,
                                       org.apache.hadoop.conf.Configuration&nbsp;conf)
                                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>
@@ -568,7 +581,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>cleanupExportSnapshotLog</h4>
-<pre>protected static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#line.162">cleanupExportSnapshotLog</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)
+<pre>protected static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#line.164">cleanupExportSnapshotLog</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)
                                         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">Clean up directories with prefix "exportSnapshot-", which are generated when exporting
  snapshots.</div>
@@ -584,7 +597,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>cleanupTargetDir</h4>
-<pre>protected static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#line.185">cleanupTargetDir</a>(<a href="../../../../../../org/apache/hadoop/hbase/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a>&nbsp;backupInfo,
+<pre>protected static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#line.187">cleanupTargetDir</a>(<a href="../../../../../../org/apache/hadoop/hbase/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a>&nbsp;backupInfo,
                                        org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 <div class="block">Clean up the uncompleted data at target directory if the ongoing backup has already entered
  the copy phase.</div>
@@ -596,7 +609,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>failBackup</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#line.231">failBackup</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;conn,
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#line.233">failBackup</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;conn,
                           <a href="../../../../../../org/apache/hadoop/hbase/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a>&nbsp;backupInfo,
                           <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupManager</a>&nbsp;backupManager,
                           <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;e,
@@ -621,7 +634,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>cleanupAndRestoreBackupSystem</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#line.261">cleanupAndRestoreBackupSystem</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;conn,
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#line.263">cleanupAndRestoreBackupSystem</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;conn,
                                                  <a href="../../../../../../org/apache/hadoop/hbase/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a>&nbsp;backupInfo,
                                                  org.apache.hadoop.conf.Configuration&nbsp;conf)
                                           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>
@@ -637,7 +650,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>addManifest</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#line.287">addManifest</a>(<a href="../../../../../../org/apache/hadoop/hbase/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a>&nbsp;backupInfo,
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#line.288">addManifest</a>(<a href="../../../../../../org/apache/hadoop/hbase/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a>&nbsp;backupInfo,
                            <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupManager</a>&nbsp;backupManager,
                            <a href="../../../../../../org/apache/hadoop/hbase/backup/BackupType.html" title="enum in org.apache.hadoop.hbase.backup">BackupType</a>&nbsp;type,
                            org.apache.hadoop.conf.Configuration&nbsp;conf)
@@ -659,7 +672,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>obtainBackupMetaDataStr</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>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#line.337">obtainBackupMetaDataStr</a>(<a href="../../../../../../org/apache/hadoop/hbase/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a>&nbsp;backupInfo)</pre>
+<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>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#line.338">obtainBackupMetaDataStr</a>(<a href="../../../../../../org/apache/hadoop/hbase/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a>&nbsp;backupInfo)</pre>
 <div class="block">Get backup request meta data dir as string.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -675,7 +688,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>cleanupDistCpLog</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#line.356">cleanupDistCpLog</a>(<a href="../../../../../../org/apache/hadoop/hbase/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a>&nbsp;backupInfo,
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/TableBackupClient.html#line.357">cleanupDistCpLog</a>(<a href="../../../../../../org/apache/hadoop/hbase/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a>&nbsp;backupInfo,
                                 org.apache.hadoop.conf.Configuration&nbsp;conf)
                          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">Clean up directories with prefix "_distcp_logs-", which are generated when DistCp copying

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/org/apache/hadoop/hbase/class-use/HTableDescriptor.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/class-use/HTableDescriptor.html b/devapidocs/org/apache/hadoop/hbase/class-use/HTableDescriptor.html
index fd39a56..baf2acf 100644
--- a/devapidocs/org/apache/hadoop/hbase/class-use/HTableDescriptor.html
+++ b/devapidocs/org/apache/hadoop/hbase/class-use/HTableDescriptor.html
@@ -87,58 +87,54 @@
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="#org.apache.hadoop.hbase.backup.impl">org.apache.hadoop.hbase.backup.impl</a></td>
-<td class="colLast">&nbsp;</td>
-</tr>
-<tr class="altColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.client">org.apache.hadoop.hbase.client</a></td>
 <td class="colLast">
 <div class="block">Provides HBase Client</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.constraint">org.apache.hadoop.hbase.constraint</a></td>
 <td class="colLast">
 <div class="block">Restrict the domain of a data attribute, often times to fulfill business rules/requirements.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.mapred">org.apache.hadoop.hbase.mapred</a></td>
 <td class="colLast">
 <div class="block">Provides HBase <a href="http://wiki.apache.org/hadoop/HadoopMapReduce">MapReduce</a>
 Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.mapreduce">org.apache.hadoop.hbase.mapreduce</a></td>
 <td class="colLast">
 <div class="block">Provides HBase <a href="http://wiki.apache.org/hadoop/HadoopMapReduce">MapReduce</a>
 Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.quotas">org.apache.hadoop.hbase.quotas</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.rest">org.apache.hadoop.hbase.rest</a></td>
 <td class="colLast">
 <div class="block">HBase REST</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.rest.client">org.apache.hadoop.hbase.rest.client</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.rest.model">org.apache.hadoop.hbase.rest.model</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.rsgroup">org.apache.hadoop.hbase.rsgroup</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.tool">org.apache.hadoop.hbase.tool</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
@@ -398,26 +394,6 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </tbody>
 </table>
 </li>
-<li class="blockList"><a name="org.apache.hadoop.hbase.backup.impl">
-<!--   -->
-</a>
-<h3>Uses of <a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a> in <a href="../../../../../org/apache/hadoop/hbase/backup/impl/package-summary.html">org.apache.hadoop.hbase.backup.impl</a></h3>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../org/apache/hadoop/hbase/backup/impl/package-summary.html">org.apache.hadoop.hbase.backup.impl</a> that return <a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a></code></td>
-<td class="colLast"><span class="typeNameLabel">BackupSystemTable.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#getSystemTableDescriptor-org.apache.hadoop.conf.Configuration-">getSystemTableDescriptor</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>
-<div class="block">Get backup system table descriptor</div>
-</td>
-</tr>
-</tbody>
-</table>
-</li>
 <li class="blockList"><a name="org.apache.hadoop.hbase.client">
 <!--   -->
 </a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/org/apache/hadoop/hbase/class-use/ServerName.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/class-use/ServerName.html b/devapidocs/org/apache/hadoop/hbase/class-use/ServerName.html
index 0f98f5a..b092620 100644
--- a/devapidocs/org/apache/hadoop/hbase/class-use/ServerName.html
+++ b/devapidocs/org/apache/hadoop/hbase/class-use/ServerName.html
@@ -5952,7 +5952,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
                  org.apache.hbase.thirdparty.com.google.common.collect.ListMultimap&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;serverMap)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>private <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/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;</code></td>
+<td class="colFirst"><code><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/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">RSGroupBasedLoadBalancer.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#getMisplacedRegions-java.util.Map-">getMisplacedRegions</a></span>(<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="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>,<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;regions)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html b/devapidocs/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html
index 6c43308..623474a 100644
--- a/devapidocs/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html
+++ b/devapidocs/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html
@@ -167,26 +167,22 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#LOG">LOG</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html" title="interface in org.apache.hadoop.hbase.zookeeper">ZKMetricsListener</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#metrics">metrics</a></span></code>&nbsp;</td>
-</tr>
-<tr class="altColor">
 <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/zookeeper/RecoverableZooKeeper.html#quorumServers">quorumServers</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/util/RetryCounterFactory.html" title="class in org.apache.hadoop.hbase.util">RetryCounterFactory</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#retryCounterFactory">retryCounterFactory</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#sessionTimeout">sessionTimeout</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private org.apache.zookeeper.Watcher</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#watcher">watcher</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private org.apache.zookeeper.ZooKeeper</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#zk">zk</a></span></code>&nbsp;</td>
 </tr>
@@ -492,21 +488,12 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <a name="quorumServers">
 <!--   -->
 </a>
-<ul class="blockList">
+<ul class="blockListLast">
 <li class="blockList">
 <h4>quorumServers</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/zookeeper/RecoverableZooKeeper.html#line.84">quorumServers</a></pre>
 </li>
 </ul>
-<a name="metrics">
-<!--   -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>metrics</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html" title="interface in org.apache.hadoop.hbase.zookeeper">ZKMetricsListener</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.85">metrics</a></pre>
-</li>
-</ul>
 </li>
 </ul>
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
@@ -521,7 +508,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>RecoverableZooKeeper</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.87">RecoverableZooKeeper</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;quorumServers,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.86">RecoverableZooKeeper</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;quorumServers,
                             int&nbsp;sessionTimeout,
                             org.apache.zookeeper.Watcher&nbsp;watcher,
                             int&nbsp;maxRetries,
@@ -540,7 +527,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RecoverableZooKeeper</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.96">RecoverableZooKeeper</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;quorumServers,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.95">RecoverableZooKeeper</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;quorumServers,
                             int&nbsp;sessionTimeout,
                             org.apache.zookeeper.Watcher&nbsp;watcher,
                             int&nbsp;maxRetries,
@@ -568,7 +555,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>checkZk</h4>
-<pre>protected&nbsp;org.apache.zookeeper.ZooKeeper&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.130">checkZk</a>()
+<pre>protected&nbsp;org.apache.zookeeper.ZooKeeper&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.128">checkZk</a>()
                                           throws org.apache.zookeeper.KeeperException</pre>
 <div class="block">Try to create a ZooKeeper connection. Turns any exception encountered into a
  KeeperException.OperationTimeoutException so it can retried.</div>
@@ -586,7 +573,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>reconnectAfterExpiration</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.142">reconnectAfterExpiration</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.140">reconnectAfterExpiration</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>,
                                      org.apache.zookeeper.KeeperException,
                                      <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>
@@ -604,7 +591,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>delete</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.161">delete</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;path,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.159">delete</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;path,
                    int&nbsp;version)
             throws <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>,
                    org.apache.zookeeper.KeeperException</pre>
@@ -624,7 +611,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>exists</h4>
-<pre>public&nbsp;org.apache.zookeeper.data.Stat&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.207">exists</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;path,
+<pre>public&nbsp;org.apache.zookeeper.data.Stat&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.200">exists</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;path,
                                              org.apache.zookeeper.Watcher&nbsp;watcher)
                                       throws org.apache.zookeeper.KeeperException,
                                              <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>
@@ -644,7 +631,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>exists</h4>
-<pre>public&nbsp;org.apache.zookeeper.data.Stat&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.242">exists</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;path,
+<pre>public&nbsp;org.apache.zookeeper.data.Stat&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.230">exists</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;path,
                                              boolean&nbsp;watch)
                                       throws org.apache.zookeeper.KeeperException,
                                              <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>
@@ -664,7 +651,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>retryOrThrow</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.273">retryOrThrow</a>(<a href="../../../../../org/apache/hadoop/hbase/util/RetryCounter.html" title="class in org.apache.hadoop.hbase.util">RetryCounter</a>&nbsp;retryCounter,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.256">retryOrThrow</a>(<a href="../../../../../org/apache/hadoop/hbase/util/RetryCounter.html" title="class in org.apache.hadoop.hbase.util">RetryCounter</a>&nbsp;retryCounter,
                           org.apache.zookeeper.KeeperException&nbsp;e,
                           <a href="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;opName)
                    throws org.apache.zookeeper.KeeperException</pre>
@@ -680,7 +667,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getChildren</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/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.288">getChildren</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;path,
+<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/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.271">getChildren</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;path,
                                 org.apache.zookeeper.Watcher&nbsp;watcher)
                          throws org.apache.zookeeper.KeeperException,
                                 <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>
@@ -700,7 +687,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getChildren</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/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.324">getChildren</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;path,
+<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/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.302">getChildren</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;path,
                                 boolean&nbsp;watch)
                          throws org.apache.zookeeper.KeeperException,
                                 <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>
@@ -720,7 +707,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getData</h4>
-<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.360">getData</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;path,
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.333">getData</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;path,
                       org.apache.zookeeper.Watcher&nbsp;watcher,
                       org.apache.zookeeper.data.Stat&nbsp;stat)
                throws org.apache.zookeeper.KeeperException,
@@ -741,7 +728,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getData</h4>
-<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.396">getData</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;path,
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.364">getData</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;path,
                       boolean&nbsp;watch,
                       org.apache.zookeeper.data.Stat&nbsp;stat)
                throws org.apache.zookeeper.KeeperException,
@@ -762,7 +749,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>setData</h4>
-<pre>public&nbsp;org.apache.zookeeper.data.Stat&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.434">setData</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;path,
+<pre>public&nbsp;org.apache.zookeeper.data.Stat&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.397">setData</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;path,
                                               byte[]&nbsp;data,
                                               int&nbsp;version)
                                        throws org.apache.zookeeper.KeeperException,
@@ -785,7 +772,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getAcl</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;org.apache.zookeeper.data.ACL&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.493">getAcl</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;path,
+<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;org.apache.zookeeper.data.ACL&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.448">getAcl</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;path,
                                                   org.apache.zookeeper.data.Stat&nbsp;stat)
                                            throws org.apache.zookeeper.KeeperException,
                                                   <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>
@@ -805,7 +792,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>setAcl</h4>
-<pre>public&nbsp;org.apache.zookeeper.data.Stat&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.529">setAcl</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;path,
+<pre>public&nbsp;org.apache.zookeeper.data.Stat&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.479">setAcl</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;path,
                                              <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.zookeeper.data.ACL&gt;&nbsp;acls,
                                              int&nbsp;version)
                                       throws org.apache.zookeeper.KeeperException,
@@ -826,7 +813,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>create</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/zookeeper/RecoverableZooKeeper.html#line.576">create</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;path,
+<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/zookeeper/RecoverableZooKeeper.html#line.521">create</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;path,
                      byte[]&nbsp;data,
                      <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.zookeeper.data.ACL&gt;&nbsp;acl,
                      org.apache.zookeeper.CreateMode&nbsp;createMode)
@@ -858,7 +845,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>createNonSequential</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/zookeeper/RecoverableZooKeeper.html#line.597">createNonSequential</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;path,
+<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/zookeeper/RecoverableZooKeeper.html#line.542">createNonSequential</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;path,
                                    byte[]&nbsp;data,
                                    <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.zookeeper.data.ACL&gt;&nbsp;acl,
                                    org.apache.zookeeper.CreateMode&nbsp;createMode)
@@ -877,7 +864,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>createSequential</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/zookeeper/RecoverableZooKeeper.html#line.652">createSequential</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;path,
+<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/zookeeper/RecoverableZooKeeper.html#line.590">createSequential</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;path,
                                 byte[]&nbsp;data,
                                 <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.zookeeper.data.ACL&gt;&nbsp;acl,
                                 org.apache.zookeeper.CreateMode&nbsp;createMode)
@@ -896,7 +883,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>prepareZKMulti</h4>
-<pre>private&nbsp;<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.zookeeper.Op&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.696">prepareZKMulti</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.zookeeper.Op&gt;&nbsp;ops)
+<pre>private&nbsp;<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.zookeeper.Op&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.629">prepareZKMulti</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.zookeeper.Op&gt;&nbsp;ops)
                                                   throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></pre>
 <div class="block">Convert Iterable of <code>Op</code> we got into the ZooKeeper.Op
  instances to actually pass to multi (need to do this in order to appendMetaData).</div>
@@ -912,7 +899,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>multi</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;org.apache.zookeeper.OpResult&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.724">multi</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.zookeeper.Op&gt;&nbsp;ops)
+<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;org.apache.zookeeper.OpResult&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.657">multi</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.zookeeper.Op&gt;&nbsp;ops)
                                           throws org.apache.zookeeper.KeeperException,
                                                  <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>
 <div class="block">Run multiple operations in a transactional manner. Retry before throwing exception</div>
@@ -929,7 +916,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>findPreviousSequentialNode</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/zookeeper/RecoverableZooKeeper.html#line.757">findPreviousSequentialNode</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;path)
+<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/zookeeper/RecoverableZooKeeper.html#line.685">findPreviousSequentialNode</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;path)
                                    throws org.apache.zookeeper.KeeperException,
                                           <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>
@@ -945,7 +932,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getSessionId</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.781">getSessionId</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.705">getSessionId</a>()</pre>
 </li>
 </ul>
 <a name="close--">
@@ -954,7 +941,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>close</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.785">close</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.709">close</a>()
            throws <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>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -968,7 +955,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getState</h4>
-<pre>public&nbsp;org.apache.zookeeper.ZooKeeper.States&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.791">getState</a>()</pre>
+<pre>public&nbsp;org.apache.zookeeper.ZooKeeper.States&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.715">getState</a>()</pre>
 </li>
 </ul>
 <a name="getZooKeeper--">
@@ -977,7 +964,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getZooKeeper</h4>
-<pre>public&nbsp;org.apache.zookeeper.ZooKeeper&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.795">getZooKeeper</a>()</pre>
+<pre>public&nbsp;org.apache.zookeeper.ZooKeeper&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.719">getZooKeeper</a>()</pre>
 </li>
 </ul>
 <a name="getSessionPasswd--">
@@ -986,7 +973,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getSessionPasswd</h4>
-<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.799">getSessionPasswd</a>()</pre>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.723">getSessionPasswd</a>()</pre>
 </li>
 </ul>
 <a name="sync-java.lang.String-org.apache.zookeeper.AsyncCallback.VoidCallback-java.lang.Object-">
@@ -995,7 +982,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>sync</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.803">sync</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;path,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.727">sync</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;path,
                  org.apache.zookeeper.AsyncCallback.VoidCallback&nbsp;cb,
                  <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;ctx)
           throws org.apache.zookeeper.KeeperException</pre>
@@ -1011,7 +998,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>filterByPrefix</h4>
-<pre>private static&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/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.819">filterByPrefix</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;nodes,
+<pre>private static&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/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.html#line.741">filterByPrefix</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;nodes,
                                            <a href="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;prefixes)</pre>
 <div class="block">Filters the given node list by the given prefixes.
  This method is all-inclusive--if any element in the node list starts
@@ -1031,7 +1018,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getIdentifier</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/zookeeper/RecoverableZooKeeper.html#line.833">getIdentifier</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/zookeeper/RecoverableZooKeeper.html#line.755">getIdentifier</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/org/apache/hadoop/hbase/zookeeper/ZKMetadata.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/zookeeper/ZKMetadata.html b/devapidocs/org/apache/hadoop/hbase/zookeeper/ZKMetadata.html
index 1dbebd0..30f1c11 100644
--- a/devapidocs/org/apache/hadoop/hbase/zookeeper/ZKMetadata.html
+++ b/devapidocs/org/apache/hadoop/hbase/zookeeper/ZKMetadata.html
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMainServer.HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetrics.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKNodeTracker.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/zookeeper/ZKMetadata.html" target="_top">Frames</a></li>
@@ -337,7 +337,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMainServer.HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetrics.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKNodeTracker.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/zookeeper/ZKMetadata.html" target="_top">Frames</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/org/apache/hadoop/hbase/zookeeper/ZKMetrics.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/zookeeper/ZKMetrics.html b/devapidocs/org/apache/hadoop/hbase/zookeeper/ZKMetrics.html
deleted file mode 100644
index 974ab2e..0000000
--- a/devapidocs/org/apache/hadoop/hbase/zookeeper/ZKMetrics.html
+++ /dev/null
@@ -1,588 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!-- NewPage -->
-<html lang="en">
-<head>
-<!-- Generated by javadoc -->
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>ZKMetrics (Apache HBase 3.0.0-SNAPSHOT API)</title>
-<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
-<script type="text/javascript" src="../../../../../script.js"></script>
-</head>
-<body>
-<script type="text/javascript"><!--
-    try {
-        if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ZKMetrics (Apache HBase 3.0.0-SNAPSHOT API)";
-        }
-    }
-    catch(err) {
-    }
-//-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10};
-var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
-var altColor = "altColor";
-var rowColor = "rowColor";
-var tableTab = "tableTab";
-var activeTableTab = "activeTableTab";
-</script>
-<noscript>
-<div>JavaScript is disabled on your browser.</div>
-</noscript>
-<!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
-<!--   -->
-</a>
-<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
-<!--   -->
-</a>
-<ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
-<li><a href="package-summary.html">Package</a></li>
-<li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/ZKMetrics.html">Use</a></li>
-<li><a href="package-tree.html">Tree</a></li>
-<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../../index-all.html">Index</a></li>
-<li><a href="../../../../../help-doc.html">Help</a></li>
-</ul>
-</div>
-<div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetadata.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html" title="interface in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/hadoop/hbase/zookeeper/ZKMetrics.html" target="_top">Frames</a></li>
-<li><a href="ZKMetrics.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
-</ul>
-<div>
-<script type="text/javascript"><!--
-  allClassesLink = document.getElementById("allclasses_navbar_top");
-  if(window==top) {
-    allClassesLink.style.display = "block";
-  }
-  else {
-    allClassesLink.style.display = "none";
-  }
-  //-->
-</script>
-</div>
-<div>
-<ul class="subNavList">
-<li>Summary:&nbsp;</li>
-<li>Nested&nbsp;|&nbsp;</li>
-<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
-<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
-<li><a href="#method.summary">Method</a></li>
-</ul>
-<ul class="subNavList">
-<li>Detail:&nbsp;</li>
-<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
-<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
-<li><a href="#method.detail">Method</a></li>
-</ul>
-</div>
-<a name="skip.navbar.top">
-<!--   -->
-</a></div>
-<!-- ========= END OF TOP NAVBAR ========= -->
-<!-- ======== START OF CLASS DATA ======== -->
-<div class="header">
-<div class="subTitle">org.apache.hadoop.hbase.zookeeper</div>
-<h2 title="Class ZKMetrics" class="title">Class ZKMetrics</h2>
-</div>
-<div class="contentContainer">
-<ul class="inheritance">
-<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
-<li>
-<ul class="inheritance">
-<li>org.apache.hadoop.hbase.zookeeper.ZKMetrics</li>
-</ul>
-</li>
-</ul>
-<div class="description">
-<ul class="blockList">
-<li class="blockList">
-<dl>
-<dt>All Implemented Interfaces:</dt>
-<dd><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html" title="interface in org.apache.hadoop.hbase.zookeeper">ZKMetricsListener</a></dd>
-</dl>
-<hr>
-<br>
-<pre>@InterfaceAudience.Private
-public class <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#line.32">ZKMetrics</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 <a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html" title="interface in org.apache.hadoop.hbase.zookeeper">ZKMetricsListener</a></pre>
-<div class="block">Class used to push numbers about ZooKeeper into the metrics subsystem. This will take a
- single function call and turn it into multiple manipulations of the hadoop metrics system.</div>
-</li>
-</ul>
-</div>
-<div class="summary">
-<ul class="blockList">
-<li class="blockList">
-<!-- =========== FIELD SUMMARY =========== -->
-<ul class="blockList">
-<li class="blockList"><a name="field.summary">
-<!--   -->
-</a>
-<h3>Field Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
-<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Field and Description</th>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/zookeeper/MetricsZooKeeperSource.html" title="interface in org.apache.hadoop.hbase.zookeeper">MetricsZooKeeperSource</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#source">source</a></span></code>&nbsp;</td>
-</tr>
-</table>
-</li>
-</ul>
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<ul class="blockList">
-<li class="blockList"><a name="constructor.summary">
-<!--   -->
-</a>
-<h3>Constructor Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
-<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colOne" scope="col">Constructor and Description</th>
-</tr>
-<tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#ZKMetrics--">ZKMetrics</a></span>()</code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#ZKMetrics-org.apache.hadoop.hbase.zookeeper.MetricsZooKeeperSource-">ZKMetrics</a></span>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/MetricsZooKeeperSource.html" title="interface in org.apache.hadoop.hbase.zookeeper">MetricsZooKeeperSource</a>&nbsp;s)</code>&nbsp;</td>
-</tr>
-</table>
-</li>
-</ul>
-<!-- ========== METHOD SUMMARY =========== -->
-<ul class="blockList">
-<li class="blockList"><a name="method.summary">
-<!--   -->
-</a>
-<h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
-<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
-</tr>
-<tr id="i0" class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#registerAuthFailedException--">registerAuthFailedException</a></span>()</code>
-<div class="block">An AUTHFAILED Exception was seen.</div>
-</td>
-</tr>
-<tr id="i1" class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#registerConnectionLossException--">registerConnectionLossException</a></span>()</code>
-<div class="block">A CONNECTIONLOSS Exception was seen.</div>
-</td>
-</tr>
-<tr id="i2" class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#registerDataInconsistencyException--">registerDataInconsistencyException</a></span>()</code>
-<div class="block">A DATAINCONSISTENCY Exception was seen.</div>
-</td>
-</tr>
-<tr id="i3" class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#registerFailedZKCall--">registerFailedZKCall</a></span>()</code>
-<div class="block">A ZooKeeper API Call failed.</div>
-</td>
-</tr>
-<tr id="i4" class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#registerInvalidACLException--">registerInvalidACLException</a></span>()</code>
-<div class="block">An INVALIDACL Exception was seen.</div>
-</td>
-</tr>
-<tr id="i5" class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#registerNoAuthException--">registerNoAuthException</a></span>()</code>
-<div class="block">A NOAUTH Exception was seen.</div>
-</td>
-</tr>
-<tr id="i6" class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#registerOperationTimeoutException--">registerOperationTimeoutException</a></span>()</code>
-<div class="block">A OPERATIONTIMEOUT Exception was seen.</div>
-</td>
-</tr>
-<tr id="i7" class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#registerReadOperationLatency-long-">registerReadOperationLatency</a></span>(long&nbsp;latency)</code>
-<div class="block">Register the latency incurred for read operations.</div>
-</td>
-</tr>
-<tr id="i8" class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#registerRuntimeInconsistencyException--">registerRuntimeInconsistencyException</a></span>()</code>
-<div class="block">A RUNTIMEINCONSISTENCY Exception was seen.</div>
-</td>
-</tr>
-<tr id="i9" class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#registerSessionExpiredException--">registerSessionExpiredException</a></span>()</code>
-<div class="block">A SESSIONEXPIRED Exception was seen.</div>
-</td>
-</tr>
-<tr id="i10" class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#registerSyncOperationLatency-long-">registerSyncOperationLatency</a></span>(long&nbsp;latency)</code>
-<div class="block">Register the latency incurred for sync operations.</div>
-</td>
-</tr>
-<tr id="i11" class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#registerSystemErrorException--">registerSystemErrorException</a></span>()</code>
-<div class="block">A SYSTEMERROR Exception was seen.</div>
-</td>
-</tr>
-<tr id="i12" class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#registerWriteOperationLatency-long-">registerWriteOperationLatency</a></span>(long&nbsp;latency)</code>
-<div class="block">Register the latency incurred for write operations.</div>
-</td>
-</tr>
-</table>
-<ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
-<!--   -->
-</a>
-<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang
 /Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="details">
-<ul class="blockList">
-<li class="blockList">
-<!-- ============ FIELD DETAIL =========== -->
-<ul class="blockList">
-<li class="blockList"><a name="field.detail">
-<!--   -->
-</a>
-<h3>Field Detail</h3>
-<a name="source">
-<!--   -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>source</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/MetricsZooKeeperSource.html" title="interface in org.apache.hadoop.hbase.zookeeper">MetricsZooKeeperSource</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#line.33">source</a></pre>
-</li>
-</ul>
-</li>
-</ul>
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<ul class="blockList">
-<li class="blockList"><a name="constructor.detail">
-<!--   -->
-</a>
-<h3>Constructor Detail</h3>
-<a name="ZKMetrics--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>ZKMetrics</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#line.35">ZKMetrics</a>()</pre>
-</li>
-</ul>
-<a name="ZKMetrics-org.apache.hadoop.hbase.zookeeper.MetricsZooKeeperSource-">
-<!--   -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>ZKMetrics</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#line.40">ZKMetrics</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/MetricsZooKeeperSource.html" title="interface in org.apache.hadoop.hbase.zookeeper">MetricsZooKeeperSource</a>&nbsp;s)</pre>
-</li>
-</ul>
-</li>
-</ul>
-<!-- ============ METHOD DETAIL ========== -->
-<ul class="blockList">
-<li class="blockList"><a name="method.detail">
-<!--   -->
-</a>
-<h3>Method Detail</h3>
-<a name="registerAuthFailedException--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>registerAuthFailedException</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#line.45">registerAuthFailedException</a>()</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerAuthFailedException--">ZKMetricsListener</a></code></span></div>
-<div class="block">An AUTHFAILED Exception was seen.</div>
-<dl>
-<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerAuthFailedException--">registerAuthFailedException</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html" title="interface in org.apache.hadoop.hbase.zookeeper">ZKMetricsListener</a></code></dd>
-</dl>
-</li>
-</ul>
-<a name="registerConnectionLossException--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>registerConnectionLossException</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#line.50">registerConnectionLossException</a>()</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerConnectionLossException--">ZKMetricsListener</a></code></span></div>
-<div class="block">A CONNECTIONLOSS Exception was seen.</div>
-<dl>
-<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerConnectionLossException--">registerConnectionLossException</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html" title="interface in org.apache.hadoop.hbase.zookeeper">ZKMetricsListener</a></code></dd>
-</dl>
-</li>
-</ul>
-<a name="registerDataInconsistencyException--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>registerDataInconsistencyException</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#line.55">registerDataInconsistencyException</a>()</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerDataInconsistencyException--">ZKMetricsListener</a></code></span></div>
-<div class="block">A DATAINCONSISTENCY Exception was seen.</div>
-<dl>
-<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerDataInconsistencyException--">registerDataInconsistencyException</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html" title="interface in org.apache.hadoop.hbase.zookeeper">ZKMetricsListener</a></code></dd>
-</dl>
-</li>
-</ul>
-<a name="registerInvalidACLException--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>registerInvalidACLException</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#line.60">registerInvalidACLException</a>()</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerInvalidACLException--">ZKMetricsListener</a></code></span></div>
-<div class="block">An INVALIDACL Exception was seen.</div>
-<dl>
-<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerInvalidACLException--">registerInvalidACLException</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html" title="interface in org.apache.hadoop.hbase.zookeeper">ZKMetricsListener</a></code></dd>
-</dl>
-</li>
-</ul>
-<a name="registerNoAuthException--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>registerNoAuthException</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#line.65">registerNoAuthException</a>()</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerNoAuthException--">ZKMetricsListener</a></code></span></div>
-<div class="block">A NOAUTH Exception was seen.</div>
-<dl>
-<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerNoAuthException--">registerNoAuthException</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html" title="interface in org.apache.hadoop.hbase.zookeeper">ZKMetricsListener</a></code></dd>
-</dl>
-</li>
-</ul>
-<a name="registerOperationTimeoutException--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>registerOperationTimeoutException</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#line.70">registerOperationTimeoutException</a>()</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerOperationTimeoutException--">ZKMetricsListener</a></code></span></div>
-<div class="block">A OPERATIONTIMEOUT Exception was seen.</div>
-<dl>
-<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerOperationTimeoutException--">registerOperationTimeoutException</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html" title="interface in org.apache.hadoop.hbase.zookeeper">ZKMetricsListener</a></code></dd>
-</dl>
-</li>
-</ul>
-<a name="registerRuntimeInconsistencyException--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>registerRuntimeInconsistencyException</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#line.75">registerRuntimeInconsistencyException</a>()</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerRuntimeInconsistencyException--">ZKMetricsListener</a></code></span></div>
-<div class="block">A RUNTIMEINCONSISTENCY Exception was seen.</div>
-<dl>
-<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerRuntimeInconsistencyException--">registerRuntimeInconsistencyException</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html" title="interface in org.apache.hadoop.hbase.zookeeper">ZKMetricsListener</a></code></dd>
-</dl>
-</li>
-</ul>
-<a name="registerSessionExpiredException--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>registerSessionExpiredException</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#line.80">registerSessionExpiredException</a>()</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerSessionExpiredException--">ZKMetricsListener</a></code></span></div>
-<div class="block">A SESSIONEXPIRED Exception was seen.</div>
-<dl>
-<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerSessionExpiredException--">registerSessionExpiredException</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html" title="interface in org.apache.hadoop.hbase.zookeeper">ZKMetricsListener</a></code></dd>
-</dl>
-</li>
-</ul>
-<a name="registerSystemErrorException--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>registerSystemErrorException</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#line.85">registerSystemErrorException</a>()</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerSystemErrorException--">ZKMetricsListener</a></code></span></div>
-<div class="block">A SYSTEMERROR Exception was seen.</div>
-<dl>
-<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerSystemErrorException--">registerSystemErrorException</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html" title="interface in org.apache.hadoop.hbase.zookeeper">ZKMetricsListener</a></code></dd>
-</dl>
-</li>
-</ul>
-<a name="registerFailedZKCall--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>registerFailedZKCall</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#line.90">registerFailedZKCall</a>()</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerFailedZKCall--">ZKMetricsListener</a></code></span></div>
-<div class="block">A ZooKeeper API Call failed.</div>
-<dl>
-<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerFailedZKCall--">registerFailedZKCall</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html" title="interface in org.apache.hadoop.hbase.zookeeper">ZKMetricsListener</a></code></dd>
-</dl>
-</li>
-</ul>
-<a name="registerReadOperationLatency-long-">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>registerReadOperationLatency</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#line.95">registerReadOperationLatency</a>(long&nbsp;latency)</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerReadOperationLatency-long-">ZKMetricsListener</a></code></span></div>
-<div class="block">Register the latency incurred for read operations.</div>
-<dl>
-<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerReadOperationLatency-long-">registerReadOperationLatency</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html" title="interface in org.apache.hadoop.hbase.zookeeper">ZKMetricsListener</a></code></dd>
-</dl>
-</li>
-</ul>
-<a name="registerWriteOperationLatency-long-">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>registerWriteOperationLatency</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#line.100">registerWriteOperationLatency</a>(long&nbsp;latency)</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerWriteOperationLatency-long-">ZKMetricsListener</a></code></span></div>
-<div class="block">Register the latency incurred for write operations.</div>
-<dl>
-<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerWriteOperationLatency-long-">registerWriteOperationLatency</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html" title="interface in org.apache.hadoop.hbase.zookeeper">ZKMetricsListener</a></code></dd>
-</dl>
-</li>
-</ul>
-<a name="registerSyncOperationLatency-long-">
-<!--   -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>registerSyncOperationLatency</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#line.105">registerSyncOperationLatency</a>(long&nbsp;latency)</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerSyncOperationLatency-long-">ZKMetricsListener</a></code></span></div>
-<div class="block">Register the latency incurred for sync operations.</div>
-<dl>
-<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerSyncOperationLatency-long-">registerSyncOperationLatency</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html" title="interface in org.apache.hadoop.hbase.zookeeper">ZKMetricsListener</a></code></dd>
-</dl>
-</li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-</div>
-</div>
-<!-- ========= END OF CLASS DATA ========= -->
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
-<!--   -->
-</a>
-<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
-<!--   -->
-</a>
-<ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
-<li><a href="package-summary.html">Package</a></li>
-<li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/ZKMetrics.html">Use</a></li>
-<li><a href="package-tree.html">Tree</a></li>
-<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../../index-all.html">Index</a></li>
-<li><a href="../../../../../help-doc.html">Help</a></li>
-</ul>
-</div>
-<div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetadata.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html" title="interface in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/hadoop/hbase/zookeeper/ZKMetrics.html" target="_top">Frames</a></li>
-<li><a href="ZKMetrics.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
-</ul>
-<div>
-<script type="text/javascript"><!--
-  allClassesLink = document.getElementById("allclasses_navbar_bottom");
-  if(window==top) {
-    allClassesLink.style.display = "block";
-  }
-  else {
-    allClassesLink.style.display = "none";
-  }
-  //-->
-</script>
-</div>
-<div>
-<ul class="subNavList">
-<li>Summary:&nbsp;</li>
-<li>Nested&nbsp;|&nbsp;</li>
-<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
-<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
-<li><a href="#method.summary">Method</a></li>
-</ul>
-<ul class="subNavList">
-<li>Detail:&nbsp;</li>
-<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
-<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
-<li><a href="#method.detail">Method</a></li>
-</ul>
-</div>
-<a name="skip.navbar.bottom">
-<!--   -->
-</a></div>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
-</body>
-</html>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/src-html/org/apache/hadoop/hbase/backup/TestIncrementalBackupWithBulkLoad.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/backup/TestIncrementalBackupWithBulkLoad.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/backup/TestIncrementalBackupWithBulkLoad.html
index b9d20b3..4f3dda3 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/backup/TestIncrementalBackupWithBulkLoad.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/backup/TestIncrementalBackupWithBulkLoad.html
@@ -121,35 +121,49 @@
 <span class="sourceLineNo">113</span>    request = createBackupRequest(BackupType.INCREMENTAL, tables, BACKUP_ROOT_DIR);<a name="line.113"></a>
 <span class="sourceLineNo">114</span>    String backupIdIncMultiple = client.backupTables(request);<a name="line.114"></a>
 <span class="sourceLineNo">115</span>    assertTrue(checkSucceeded(backupIdIncMultiple));<a name="line.115"></a>
-<span class="sourceLineNo">116</span><a name="line.116"></a>
-<span class="sourceLineNo">117</span>    // #5.1 - check tables for full restore */<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    HBaseAdmin hAdmin = TEST_UTIL.getHBaseAdmin();<a name="line.118"></a>
-<span class="sourceLineNo">119</span><a name="line.119"></a>
-<span class="sourceLineNo">120</span>    // #6 - restore incremental backup for table1<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    TableName[] tablesRestoreIncMultiple = new TableName[] { table1 };<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    TableName[] tablesMapIncMultiple = new TableName[] { table1_restore };<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    client.restore(BackupUtils.createRestoreRequest(BACKUP_ROOT_DIR, backupIdIncMultiple,<a name="line.123"></a>
-<span class="sourceLineNo">124</span>      false, tablesRestoreIncMultiple, tablesMapIncMultiple, true));<a name="line.124"></a>
-<span class="sourceLineNo">125</span><a name="line.125"></a>
-<span class="sourceLineNo">126</span>    HTable hTable = (HTable) conn.getTable(table1_restore);<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    Assert.assertEquals(TEST_UTIL.countRows(hTable), NB_ROWS_IN_BATCH * 2+actual);<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    request = createBackupRequest(BackupType.FULL, tables, BACKUP_ROOT_DIR);<a name="line.128"></a>
-<span class="sourceLineNo">129</span><a name="line.129"></a>
-<span class="sourceLineNo">130</span>    backupIdFull = client.backupTables(request);<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    try (final BackupSystemTable table = new BackupSystemTable(conn)) {<a name="line.131"></a>
-<span class="sourceLineNo">132</span>      Pair&lt;Map&lt;TableName, Map&lt;String, Map&lt;String, List&lt;Pair&lt;String, Boolean&gt;&gt;&gt;&gt;&gt;, List&lt;byte[]&gt;&gt; pair<a name="line.132"></a>
-<span class="sourceLineNo">133</span>      = table.readBulkloadRows(tables);<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      assertTrue("map still has " + pair.getSecond().size() + " entries",<a name="line.134"></a>
-<span class="sourceLineNo">135</span>          pair.getSecond().isEmpty());<a name="line.135"></a>
-<span class="sourceLineNo">136</span>    }<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    assertTrue(checkSucceeded(backupIdFull));<a name="line.137"></a>
-<span class="sourceLineNo">138</span><a name="line.138"></a>
-<span class="sourceLineNo">139</span>    hTable.close();<a name="line.139"></a>
-<span class="sourceLineNo">140</span>    admin.close();<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    conn.close();<a name="line.141"></a>
-<span class="sourceLineNo">142</span>  }<a name="line.142"></a>
+<span class="sourceLineNo">116</span>    // #4 bulk load again<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    LOG.debug("bulk loading into " + testName);<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    int actual1 = TestLoadIncrementalHFiles.loadHFiles(testName, table1Desc, TEST_UTIL, famName,<a name="line.118"></a>
+<span class="sourceLineNo">119</span>      qualName, false, null,<a name="line.119"></a>
+<span class="sourceLineNo">120</span>      new byte[][][] { new byte[][] { Bytes.toBytes("ppp"), Bytes.toBytes("qqq") },<a name="line.120"></a>
+<span class="sourceLineNo">121</span>          new byte[][] { Bytes.toBytes("rrr"), Bytes.toBytes("sss") }, },<a name="line.121"></a>
+<span class="sourceLineNo">122</span>      true, false, true, NB_ROWS_IN_BATCH * 2 + actual, NB_ROWS2);<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span>    // #5 - incremental backup for table1<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    tables = Lists.newArrayList(table1);<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    request = createBackupRequest(BackupType.INCREMENTAL, tables, BACKUP_ROOT_DIR);<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    String backupIdIncMultiple1 = client.backupTables(request);<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    assertTrue(checkSucceeded(backupIdIncMultiple1));<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    // Delete all data in table1<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    TEST_UTIL.deleteTableData(table1);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    // #5.1 - check tables for full restore */<a name="line.131"></a>
+<span class="sourceLineNo">132</span>    HBaseAdmin hAdmin = TEST_UTIL.getHBaseAdmin();<a name="line.132"></a>
+<span class="sourceLineNo">133</span><a name="line.133"></a>
+<span class="sourceLineNo">134</span>    // #6 - restore incremental backup for table1<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    TableName[] tablesRestoreIncMultiple = new TableName[] { table1 };<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    //TableName[] tablesMapIncMultiple = new TableName[] { table1_restore };<a name="line.136"></a>
+<span class="sourceLineNo">137</span>    client.restore(BackupUtils.createRestoreRequest(BACKUP_ROOT_DIR, backupIdIncMultiple1,<a name="line.137"></a>
+<span class="sourceLineNo">138</span>      false, tablesRestoreIncMultiple, tablesRestoreIncMultiple, true));<a name="line.138"></a>
+<span class="sourceLineNo">139</span><a name="line.139"></a>
+<span class="sourceLineNo">140</span>    HTable hTable = (HTable) conn.getTable(table1);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    Assert.assertEquals(TEST_UTIL.countRows(hTable), NB_ROWS_IN_BATCH * 2 + actual + actual1);<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    request = createBackupRequest(BackupType.FULL, tables, BACKUP_ROOT_DIR);<a name="line.142"></a>
 <span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span>}<a name="line.144"></a>
+<span class="sourceLineNo">144</span>    backupIdFull = client.backupTables(request);<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    try (final BackupSystemTable table = new BackupSystemTable(conn)) {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>      Pair&lt;Map&lt;TableName, Map&lt;String, Map&lt;String, List&lt;Pair&lt;String, Boolean&gt;&gt;&gt;&gt;&gt;, List&lt;byte[]&gt;&gt; pair<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      = table.readBulkloadRows(tables);<a name="line.147"></a>
+<span class="sourceLineNo">148</span>      assertTrue("map still has " + pair.getSecond().size() + " entries",<a name="line.148"></a>
+<span class="sourceLineNo">149</span>          pair.getSecond().isEmpty());<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    }<a name="line.150"></a>
+<span class="sourceLineNo">151</span>    assertTrue(checkSucceeded(backupIdFull));<a name="line.151"></a>
+<span class="sourceLineNo">152</span><a name="line.152"></a>
+<span class="sourceLineNo">153</span>    hTable.close();<a name="line.153"></a>
+<span class="sourceLineNo">154</span>    admin.close();<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    conn.close();<a name="line.155"></a>
+<span class="sourceLineNo">156</span>  }<a name="line.156"></a>
+<span class="sourceLineNo">157</span><a name="line.157"></a>
+<span class="sourceLineNo">158</span>}<a name="line.158"></a>
 
 
 


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/org/apache/hadoop/hbase/master/HMasterCommandLine.LocalHMaster.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/HMasterCommandLine.LocalHMaster.html b/devapidocs/org/apache/hadoop/hbase/master/HMasterCommandLine.LocalHMaster.html
index eaa815a..9ddd838 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/HMasterCommandLine.LocalHMaster.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/HMasterCommandLine.LocalHMaster.html
@@ -198,7 +198,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" tit
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#cacheConfig">cacheConfig</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#cacheFlusher">cacheFlusher</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#clusterConnection">clusterConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#clusterStatusTracker">clusterStatusTracker</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#compactSplitThread">compactSplitThread</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#conf">conf</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#configurationManager">configurationManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#csm">csm</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.ht
 ml#executorService">executorService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#fs">fs</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#fsOk">fsOk</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#fsUtilizationChore">fsUtilizationChore</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#hMemManager">hMemManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#infoServer">infoServer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#leases">leases</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#lock">lock</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#MASTER_HOSTNAME_KEY">MASTER_HOSTNAME_KEY</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#metaTableLocator">metaTa
 bleLocator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#movedRegions">movedRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#msgInterval">msgInterval</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#numRegionsToReport">numRegionsToReport</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#onlineRegions">onlineRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#regionFavoredNodesMap">regionFavoredNodesMap</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#REGIONSERVER">REGIONSERVER</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#regionsInTransitionInRS">regionsInTransitionInRS</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#replicationSinkHandler">replicationSinkHandler</a>, <a href="../.
 ./../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#replicationSourceHandler">replicationSourceHandler</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#rpcServices">rpcServices</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#secureBulkLoadManager">secureBulkLoadManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#serverName">serverName</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#sleeper">sleeper</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#startcode">startcode</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#tableDescriptors">tableDescriptors</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#TEST_SKIP_REPORTING_TRANSITION">TEST_SKIP_REPORTING_TRANSITION</a>, <a href="../../../../../org/apache/hadoop/hbase/re
 gionserver/HRegionServer.html#threadWakeFrequency">threadWakeFrequency</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#useThisHostnameInstead">useThisHostnameInstead</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#walFactory">walFactory</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#walFs">walFs</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#walRoller">walRoller</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#zooKeeper">zooKeeper</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#cacheConfig">cacheConfig</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#cacheFlusher">cacheFlusher</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#clusterConnection">clusterConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#clusterId">clusterId</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#clusterStatusTracker">clusterStatusTracker</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#compactSplitThread">compactSplitThread</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#conf">conf</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#configurationManager">configurationManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HReg
 ionServer.html#csm">csm</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#executorService">executorService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#fs">fs</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#fsOk">fsOk</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#fsUtilizationChore">fsUtilizationChore</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#hMemManager">hMemManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#infoServer">infoServer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#leases">leases</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#lock">lock</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#MASTER_HOSTNAME_KEY">MASTER_HOSTNAME_KEY</a>
 , <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#metaTableLocator">metaTableLocator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#movedRegions">movedRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#msgInterval">msgInterval</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#numRegionsToReport">numRegionsToReport</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#onlineRegions">onlineRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#regionFavoredNodesMap">regionFavoredNodesMap</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#REGIONSERVER">REGIONSERVER</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#regionsInTransitionInRS">regionsInTransitionInRS</a>, <a href="../../../../../org/apache/hado
 op/hbase/regionserver/HRegionServer.html#replicationSinkHandler">replicationSinkHandler</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#replicationSourceHandler">replicationSourceHandler</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#rpcServices">rpcServices</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#secureBulkLoadManager">secureBulkLoadManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#serverName">serverName</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#sleeper">sleeper</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#startcode">startcode</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#tableDescriptors">tableDescriptors</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#TEST_SKIP_RE
 PORTING_TRANSITION">TEST_SKIP_REPORTING_TRANSITION</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#threadWakeFrequency">threadWakeFrequency</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#useThisHostnameInstead">useThisHostnameInstead</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#walFactory">walFactory</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#walFs">walFs</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#walRoller">walRoller</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#zooKeeper">zooKeeper</a></code></li>
 </ul>
 </li>
 </ul>
@@ -247,14 +247,14 @@ extends <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" tit
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master">HMaster</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#abort-java.lang.String-java.lang.Throwable-">abort</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#abortProcedure-long-boolean-">abortProcedure</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#addColumn-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.ColumnFamilyDescriptor-long-long-">addColumn</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#addReplicationPeer-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-boolean-">addReplicationPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#balance--">balance</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#balance-boolean-">balance</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#balanceSwitch-boolean-">balanceSwitch</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMa
 ster.html#canCreateBaseZNode--">canCreateBaseZNode</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#canUpdateTableDescriptor--">canUpdateTableDescriptor</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#checkIfShouldMoveSystemRegionAsync--">checkIfShouldMoveSystemRegionAsync</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#checkInitialized--">checkInitialized</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#checkServiceStarted--">checkServiceStarted</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#checkTableModifiable-org.apache.hadoop.hbase.TableName-">checkTableModifiable</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#configureInfoServer--">configureInfoServer</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#constructMaster-java.lang.Class-org.apache.hadoop.conf.Configuration-">constructMaster</a>, <a href="../../.
 ./../../org/apache/hadoop/hbase/master/HMaster.html#createMetaBootstrap-org.apache.hadoop.hbase.master.HMaster-org.apache.hadoop.hbase.monitoring.MonitoredTask-">createMetaBootstrap</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#createNamespace-org.apache.hadoop.hbase.NamespaceDescriptor-long-long-">createNamespace</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#createQuotaSnapshotNotifier--">createQuotaSnapshotNotifier</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#createRpcServices--">createRpcServices</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#createServerManager-org.apache.hadoop.hbase.master.MasterServices-">createServerManager</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#createSystemTable-org.apache.hadoop.hbase.client.TableDescriptor-">createSystemTable</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#createTable-org.ap
 ache.hadoop.hbase.client.TableDescriptor-byte:A:A-long-long-">createTable</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#decommissionRegionServers-java.util.List-boolean-">decommissionRegionServers</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#deleteColumn-org.apache.hadoop.hbase.TableName-byte:A-long-long-">deleteColumn</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#deleteNamespace-java.lang.String-long-long-">deleteNamespace</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#deleteTable-org.apache.hadoop.hbase.TableName-long-long-">deleteTable</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#disableReplicationPeer-java.lang.String-">disableReplicationPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#disableTable-org.apache.hadoop.hbase.TableName-long-long-">disableTable</a>, <a href="../../../../../org/apache/hadoop/hbase/master/H
 Master.html#enableReplicationPeer-java.lang.String-">enableReplicationPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#enableTable-org.apache.hadoop.hbase.TableName-long-long-">enableTable</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getAssignmentManager--">getAssignmentManager</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getAverageLoad--">getAverageLoad</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getCatalogJanitor--">getCatalogJanitor</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getClientIdAuditPrefix--">getClientIdAuditPrefix</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getClusterMetrics--">getClusterMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getClusterMetrics-java.util.EnumSet-">getClusterMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getClus
 terMetricsWithoutCoprocessor--">getClusterMetricsWithoutCoprocessor</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getClusterMetricsWithoutCoprocessor-java.util.EnumSet-">getClusterMetricsWithoutCoprocessor</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getClusterSchema--">getClusterSchema</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getDumpServlet--">getDumpServlet</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getFavoredNodesManager--">getFavoredNodesManager</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getHFileCleaner--">getHFileCleaner</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getInitializedEvent--">getInitializedEvent</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getLastMajorCompactionTimestamp-org.apache.hadoop.hbase.TableName-">getLastMajorCompactionTimestamp</a>, <a href="../../../../../
 org/apache/hadoop/hbase/master/HMaster.html#getLastMajorCompactionTimestampForRegion-byte:A-">getLastMajorCompactionTimestampForRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getLoadBalancer--">getLoadBalancer</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getLoadBalancerClassName--">getLoadBalancerClassName</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getLoadedCoprocessors--">getLoadedCoprocessors</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getLockManager--">getLockManager</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getLocks--">getLocks</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getLogCleaner--">getLogCleaner</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getMasterActiveTime--">getMasterActiveTime</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getMasterCoproc
 essorHost--">getMasterCoprocessorHost</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getMasterCoprocessors--">getMasterCoprocessors</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getMasterFileSystem--">getMasterFileSystem</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getMasterFinishedInitializationTime--">getMasterFinishedInitializationTime</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getMasterMetrics--">getMasterMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getMasterProcedureExecutor--">getMasterProcedureExecutor</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getMasterProcedureManagerHost--">getMasterProcedureManagerHost</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getMasterQuotaManager--">getMasterQuotaManager</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getMas
 terRpcServices--">getMasterRpcServices</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getMasterStartTime--">getMasterStartTime</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getMasterWalManager--">getMasterWalManager</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getMergePlanCount--">getMergePlanCount</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getMetaTableObserver--">getMetaTableObserver</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getMobCompactionState-org.apache.hadoop.hbase.TableName-">getMobCompactionState</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getNamespace-java.lang.String-">getNamespace</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getNamespaces--">getNamespaces</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getNumWALFiles--">getNumWALFiles</a>, <a href="../
 ../../../../org/apache/hadoop/hbase/master/HMaster.html#getProcedures--">getProcedures</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getProcessName--">getProcessName</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getQuotaObserverChore--">getQuotaObserverChore</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getRegionNormalizer--">getRegionNormalizer</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getRegionNormalizerTracker--">getRegionNormalizerTracker</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getRegionServerFatalLogBuffer--">getRegionServerFatalLogBuffer</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getRegionServerInfoPort-org.apache.hadoop.hbase.ServerName-">getRegionServerInfoPort</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getRegionServerVersion-org.apache.hadoop.hbase.ServerName-">getRegionSe
 rverVersion</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getRemoteInetAddress-int-long-">getRemoteInetAddress</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getReplicationPeerConfig-java.lang.String-">getReplicationPeerConfig</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getReplicationPeerManager--">getReplicationPeerManager</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getServerCrashProcessingEnabledEvent--">getServerCrashProcessingEnabledEvent</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getServerManager--">getServerManager</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getServerName--">getServerName</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getSnapshotManager--">getSnapshotManager</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getSpaceQuotaSnapshotNotifier--">getSp
 aceQuotaSnapshotNotifier</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getSplitOrMergeTracker--">getSplitOrMergeTracker</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getSplitPlanCount--">getSplitPlanCount</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getTableDescriptors--">getTableDescriptors</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getTableRegionForRow-org.apache.hadoop.hbase.TableName-byte:A-">getTableRegionForRow</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getTableStateManager--">getTableStateManager</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getWalProcedureStore--">getWalProcedureStore</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getZooKeeper--">getZooKeeper</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#initClusterSchemaService--">initClusterSchemaService<
 /a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#initializeZKBasedSystemTrackers--">initializeZKBasedSystemTrackers</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#initQuotaManager--">initQuotaManager</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#isActiveMaster--">isActiveMaster</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#isBalancerOn--">isBalancerOn</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#isCatalogJanitorEnabled--">isCatalogJanitorEnabled</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#isCleanerChoreEnabled--">isCleanerChoreEnabled</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#isInitialized--">isInitialized</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#isInMaintenanceMode--">isInMaintenanceMode</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#is
 NormalizerOn--">isNormalizerOn</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#isServerCrashProcessingEnabled--">isServerCrashProcessingEnabled</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#isSplitOrMergeEnabled-org.apache.hadoop.hbase.client.MasterSwitchType-">isSplitOrMergeEnabled</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#listDecommissionedRegionServers--">listDecommissionedRegionServers</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#listReplicationPeers-java.lang.String-">listReplicationPeers</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#listTableDescriptors-java.lang.String-java.lang.String-java.util.List-boolean-">listTableDescriptors</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#listTableDescriptorsByNamespace-java.lang.String-">listTableDescriptorsByNamespace</a>, <a href="../../../../../org/apache/hadoop/hbase/mast
 er/HMaster.html#listTableNames-java.lang.String-java.lang.String-boolean-">listTableNames</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#listTableNamesByNamespace-java.lang.String-">listTableNamesByNamespace</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#login-org.apache.hadoop.hbase.security.UserProvider-java.lang.String-">login</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#main-java.lang.String:A-">main</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#mergeRegions-org.apache.hadoop.hbase.client.RegionInfo:A-boolean-long-long-">mergeRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#modifyColumn-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.ColumnFamilyDescriptor-long-long-">modifyColumn</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#modifyNamespace-org.apache.hadoop.hbase.NamespaceDescriptor-long-long-">mo
 difyNamespace</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#modifyTable-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-long-long-">modifyTable</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#move-byte:A-byte:A-">move</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#normalizeRegions--">normalizeRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#recommissionRegionServer-org.apache.hadoop.hbase.ServerName-java.util.List-">recommissionRegionServer</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#recoverMeta--">recoverMeta</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#registerService-com.google.protobuf.Service-">registerService</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#remoteProcedureCompleted-long-">remoteProcedureCompleted</a>, <a href="../../../../../org/apache/hado
 op/hbase/master/HMaster.html#remoteProcedureFailed-long-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">remoteProcedureFailed</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#removeReplicationPeer-java.lang.String-">removeReplicationPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#reportMobCompactionEnd-org.apache.hadoop.hbase.TableName-">reportMobCompactionEnd</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#reportMobCompactionStart-org.apache.hadoop.hbase.TableName-">reportMobCompactionStart</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#requestMobCompaction-org.apache.hadoop.hbase.TableName-java.util.List-boolean-">requestMobCompaction</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#restoreSnapshot-org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription-long-long-boolean-">restoreSnapshot</a>, <a href="../../../
 ../../org/apache/hadoop/hbase/master/HMaster.html#setCatalogJanitorEnabled-boolean-">setCatalogJanitorEnabled</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#setInitialized-boolean-">setInitialized</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#setServerCrashProcessingEnabled-boolean-">setServerCrashProcessingEnabled</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#shutdown--">shutdown</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#splitRegion-org.apache.hadoop.hbase.client.RegionInfo-byte:A-long-long-">splitRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#stopMaster--">stopMaster</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#stopServiceThreads--">stopServiceThreads</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#truncateTable-org.apache.hadoop.hbase.TableName-boolean-long-long-">truncateTable</a>, <a 
 href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#updateConfigurationForSpaceQuotaObserver-org.apache.hadoop.conf.Configuration-">updateConfigurationForSpaceQuotaObserver</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#updateReplicationPeerConfig-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">updateReplicationPeerConfig</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#waitForMasterActive--">waitForMasterActive</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#abort-java.lang.String-java.lang.Throwable-">abort</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#abortProcedure-long-boolean-">abortProcedure</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#addColumn-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.ColumnFamilyDescriptor-long-long-">addColumn</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#addReplicationPeer-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-boolean-">addReplicationPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#balance--">balance</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#balance-boolean-">balance</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#balanceSwitch-boolean-">balanceSwitch</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMa
 ster.html#canCreateBaseZNode--">canCreateBaseZNode</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#canUpdateTableDescriptor--">canUpdateTableDescriptor</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#checkIfShouldMoveSystemRegionAsync--">checkIfShouldMoveSystemRegionAsync</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#checkInitialized--">checkInitialized</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#checkServiceStarted--">checkServiceStarted</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#checkTableModifiable-org.apache.hadoop.hbase.TableName-">checkTableModifiable</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#configureInfoServer--">configureInfoServer</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#constructMaster-java.lang.Class-org.apache.hadoop.conf.Configuration-">constructMaster</a>, <a href="../../.
 ./../../org/apache/hadoop/hbase/master/HMaster.html#createMetaBootstrap-org.apache.hadoop.hbase.master.HMaster-org.apache.hadoop.hbase.monitoring.MonitoredTask-">createMetaBootstrap</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#createNamespace-org.apache.hadoop.hbase.NamespaceDescriptor-long-long-">createNamespace</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#createQuotaSnapshotNotifier--">createQuotaSnapshotNotifier</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#createRpcServices--">createRpcServices</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#createServerManager-org.apache.hadoop.hbase.master.MasterServices-">createServerManager</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#createSystemTable-org.apache.hadoop.hbase.client.TableDescriptor-">createSystemTable</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#createTable-org.ap
 ache.hadoop.hbase.client.TableDescriptor-byte:A:A-long-long-">createTable</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#decommissionRegionServers-java.util.List-boolean-">decommissionRegionServers</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#deleteColumn-org.apache.hadoop.hbase.TableName-byte:A-long-long-">deleteColumn</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#deleteNamespace-java.lang.String-long-long-">deleteNamespace</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#deleteTable-org.apache.hadoop.hbase.TableName-long-long-">deleteTable</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#disableReplicationPeer-java.lang.String-">disableReplicationPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#disableTable-org.apache.hadoop.hbase.TableName-long-long-">disableTable</a>, <a href="../../../../../org/apache/hadoop/hbase/master/H
 Master.html#enableReplicationPeer-java.lang.String-">enableReplicationPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#enableTable-org.apache.hadoop.hbase.TableName-long-long-">enableTable</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getAssignmentManager--">getAssignmentManager</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getAverageLoad--">getAverageLoad</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getCatalogJanitor--">getCatalogJanitor</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getClientIdAuditPrefix--">getClientIdAuditPrefix</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getClusterMetrics--">getClusterMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getClusterMetrics-java.util.EnumSet-">getClusterMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getClus
 terMetricsWithoutCoprocessor--">getClusterMetricsWithoutCoprocessor</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getClusterMetricsWithoutCoprocessor-java.util.EnumSet-">getClusterMetricsWithoutCoprocessor</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getClusterSchema--">getClusterSchema</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getDumpServlet--">getDumpServlet</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getFavoredNodesManager--">getFavoredNodesManager</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getHFileCleaner--">getHFileCleaner</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getInitializedEvent--">getInitializedEvent</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getLastMajorCompactionTimestamp-org.apache.hadoop.hbase.TableName-">getLastMajorCompactionTimestamp</a>, <a href="../../../../../
 org/apache/hadoop/hbase/master/HMaster.html#getLastMajorCompactionTimestampForRegion-byte:A-">getLastMajorCompactionTimestampForRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getLoadBalancer--">getLoadBalancer</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getLoadBalancerClassName--">getLoadBalancerClassName</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getLoadedCoprocessors--">getLoadedCoprocessors</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getLockManager--">getLockManager</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getLocks--">getLocks</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getLogCleaner--">getLogCleaner</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getMasterActiveTime--">getMasterActiveTime</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getMasterCoproc
 essorHost--">getMasterCoprocessorHost</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getMasterCoprocessors--">getMasterCoprocessors</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getMasterFileSystem--">getMasterFileSystem</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getMasterFinishedInitializationTime--">getMasterFinishedInitializationTime</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getMasterMetrics--">getMasterMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getMasterProcedureExecutor--">getMasterProcedureExecutor</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getMasterProcedureManagerHost--">getMasterProcedureManagerHost</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getMasterQuotaManager--">getMasterQuotaManager</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getMas
 terRpcServices--">getMasterRpcServices</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getMasterStartTime--">getMasterStartTime</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getMasterWalManager--">getMasterWalManager</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getMergePlanCount--">getMergePlanCount</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getMetaTableObserver--">getMetaTableObserver</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getMobCompactionState-org.apache.hadoop.hbase.TableName-">getMobCompactionState</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getNamespace-java.lang.String-">getNamespace</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getNamespaces--">getNamespaces</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getNumWALFiles--">getNumWALFiles</a>, <a href="../
 ../../../../org/apache/hadoop/hbase/master/HMaster.html#getProcedures--">getProcedures</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getProcessName--">getProcessName</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getQuotaObserverChore--">getQuotaObserverChore</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getRegionNormalizer--">getRegionNormalizer</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getRegionNormalizerTracker--">getRegionNormalizerTracker</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getRegionServerFatalLogBuffer--">getRegionServerFatalLogBuffer</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getRegionServerInfoPort-org.apache.hadoop.hbase.ServerName-">getRegionServerInfoPort</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getRegionServerVersion-org.apache.hadoop.hbase.ServerName-">getRegionSe
 rverVersion</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getRemoteInetAddress-int-long-">getRemoteInetAddress</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getReplicationPeerConfig-java.lang.String-">getReplicationPeerConfig</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getReplicationPeerManager--">getReplicationPeerManager</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getServerCrashProcessingEnabledEvent--">getServerCrashProcessingEnabledEvent</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getServerManager--">getServerManager</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getServerName--">getServerName</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getSnapshotManager--">getSnapshotManager</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getSpaceQuotaSnapshotNotifier--">getSp
 aceQuotaSnapshotNotifier</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getSplitOrMergeTracker--">getSplitOrMergeTracker</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getSplitPlanCount--">getSplitPlanCount</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getTableDescriptors--">getTableDescriptors</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getTableRegionForRow-org.apache.hadoop.hbase.TableName-byte:A-">getTableRegionForRow</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getTableStateManager--">getTableStateManager</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getWalProcedureStore--">getWalProcedureStore</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#getZooKeeper--">getZooKeeper</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#initClusterSchemaService--">initClusterSchemaService<
 /a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#initializeZKBasedSystemTrackers--">initializeZKBasedSystemTrackers</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#initQuotaManager--">initQuotaManager</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#isActiveMaster--">isActiveMaster</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#isBalancerOn--">isBalancerOn</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#isCatalogJanitorEnabled--">isCatalogJanitorEnabled</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#isCleanerChoreEnabled--">isCleanerChoreEnabled</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#isInitialized--">isInitialized</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#isInMaintenanceMode--">isInMaintenanceMode</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#is
 NormalizerOn--">isNormalizerOn</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#isServerCrashProcessingEnabled--">isServerCrashProcessingEnabled</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#isSplitOrMergeEnabled-org.apache.hadoop.hbase.client.MasterSwitchType-">isSplitOrMergeEnabled</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#listDecommissionedRegionServers--">listDecommissionedRegionServers</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#listReplicationPeers-java.lang.String-">listReplicationPeers</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#listTableDescriptors-java.lang.String-java.lang.String-java.util.List-boolean-">listTableDescriptors</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#listTableDescriptorsByNamespace-java.lang.String-">listTableDescriptorsByNamespace</a>, <a href="../../../../../org/apache/hadoop/hbase/mast
 er/HMaster.html#listTableNames-java.lang.String-java.lang.String-boolean-">listTableNames</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#listTableNamesByNamespace-java.lang.String-">listTableNamesByNamespace</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#login-org.apache.hadoop.hbase.security.UserProvider-java.lang.String-">login</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#main-java.lang.String:A-">main</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#mergeRegions-org.apache.hadoop.hbase.client.RegionInfo:A-boolean-long-long-">mergeRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#modifyColumn-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.ColumnFamilyDescriptor-long-long-">modifyColumn</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#modifyNamespace-org.apache.hadoop.hbase.NamespaceDescriptor-long-long-">mo
 difyNamespace</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#modifyTable-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-long-long-">modifyTable</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#move-byte:A-byte:A-">move</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#normalizeRegions--">normalizeRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#recommissionRegionServer-org.apache.hadoop.hbase.ServerName-java.util.List-">recommissionRegionServer</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#recoverMeta--">recoverMeta</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#registerService-com.google.protobuf.Service-">registerService</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#remoteProcedureCompleted-long-">remoteProcedureCompleted</a>, <a href="../../../../../org/apache/hado
 op/hbase/master/HMaster.html#remoteProcedureFailed-long-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">remoteProcedureFailed</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#removeReplicationPeer-java.lang.String-">removeReplicationPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#reportMobCompactionEnd-org.apache.hadoop.hbase.TableName-">reportMobCompactionEnd</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#reportMobCompactionStart-org.apache.hadoop.hbase.TableName-">reportMobCompactionStart</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#requestMobCompaction-org.apache.hadoop.hbase.TableName-java.util.List-boolean-">requestMobCompaction</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#restoreSnapshot-org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription-long-long-boolean-">restoreSnapshot</a>, <a href="../../../
 ../../org/apache/hadoop/hbase/master/HMaster.html#setCatalogJanitorEnabled-boolean-">setCatalogJanitorEnabled</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#setInitialized-boolean-">setInitialized</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#setServerCrashProcessingEnabled-boolean-">setServerCrashProcessingEnabled</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#shutdown--">shutdown</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#splitRegion-org.apache.hadoop.hbase.client.RegionInfo-byte:A-long-long-">splitRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#stop-java.lang.String-">stop</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#stopMaster--">stopMaster</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#stopServiceThreads--">stopServiceThreads</a>, <a href="../../../../../org/apache/hadoop/hbase/master/H
 Master.html#truncateTable-org.apache.hadoop.hbase.TableName-boolean-long-long-">truncateTable</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#updateConfigurationForSpaceQuotaObserver-org.apache.hadoop.conf.Configuration-">updateConfigurationForSpaceQuotaObserver</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#updateReplicationPeerConfig-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">updateReplicationPeerConfig</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#waitForMasterActive--">waitForMasterActive</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.regionserver.HRegionServer">
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#abort-java.lang.String-">abort</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#addRegion-org.apache.hadoop.hbase.regionserver.HRegion-">addRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#addToMovedRegions-java.lang.String-org.apache.hadoop.hbase.ServerName-long-">addToMovedRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#checkFileSystem--">checkFileSystem</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#cleanMovedRegions--">cleanMovedRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#clearRegionBlockCache-org.apache.hadoop.hbase.regionserver.Region-">clearRegionBlockCache</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#closeAllRegions-boolean-">closeAllRegions</a
 >, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#closeAndOfflineRegionForSplitOrMerge-java.util.List-">closeAndOfflineRegionForSplitOrMerge</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#closeRegion-java.lang.String-boolean-org.apache.hadoop.hbase.ServerName-">closeRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#constructRegionServer-java.lang.Class-org.apache.hadoop.conf.Configuration-">constructRegionServer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#convertThrowableToIOE-java.lang.Throwable-java.lang.String-">convertThrowableToIOE</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createClusterConnection--">createClusterConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createConnection-org.apache.hadoop.conf.Configuration-">createConnection</a>, <
 a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createRegionLoad-java.lang.String-">createRegionLoad</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createRegionServerStatusStub--">createRegionServerStatusStub</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createRegionServerStatusStub-boolean-">createRegionServerStatusStub</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#execRegionServerService-org.apache.hbase.thirdparty.com.google.protobuf.RpcController-org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceRequest-">execRegionServerService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#executeProcedure-long-org.apache.hadoop.hbase.procedure2.RSProcedureCallable-">executeProcedure</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCacheConfig
 --">getCacheConfig</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getChoreService--">getChoreService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getClusterConnection--">getClusterConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getClusterId--">getClusterId</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCompactionPressure--">getCompactionPressure</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCompactionRequestor--">getCompactionRequestor</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCompactSplitThread--">getCompactSplitThread</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getConfiguration--">getConfiguration</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getConfig
 urationManager--">getConfigurationManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getConnection--">getConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCoordinatedStateManager--">getCoordinatedStateManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getEventLoopGroupConfig--">getEventLoopGroupConfig</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getExecutorService--">getExecutorService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFavoredNodesForRegion-java.lang.String-">getFavoredNodesForRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFileSystem--">getFileSystem</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFlushPressure--">getFlushPressure</a>, <a href="../../../../../org/apache/had
 oop/hbase/regionserver/HRegionServer.html#getFlushRequester--">getFlushRequester</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFlushThroughputController--">getFlushThroughputController</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFsTableDescriptors--">getFsTableDescriptors</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getHeapMemoryManager--">getHeapMemoryManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getInfoServer--">getInfoServer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getLastSequenceId-byte:A-">getLastSequenceId</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getLeases--">getLeases</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMasterAddressTracker--">getMasterAddressTracker</a>, <a href="../.
 ./../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMetaTableLocator--">getMetaTableLocator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMetrics--">getMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMostLoadedRegions--">getMostLoadedRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getNonceManager--">getNonceManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getNumberOfOnlineRegions--">getNumberOfOnlineRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getOnlineRegion-byte:A-">getOnlineRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getOnlineRegionsLocalContext--">getOnlineRegionsLocalContext</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getOnlineTables--">getOnlineTabl
 es</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegion-byte:A-">getRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegion-java.lang.String-">getRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionBlockLocations-java.lang.String-">getRegionBlockLocations</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionByEncodedName-byte:A-java.lang.String-">getRegionByEncodedName</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionByEncodedName-java.lang.String-">getRegionByEncodedName</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegions--">getRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegions-org.apache.hadoop.hbase.TableName-">getRegions</a>, <a href="../../../../../org/apache/hado
 op/hbase/regionserver/HRegionServer.html#getRegionServerAccounting--">getRegionServerAccounting</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerCoprocessorHost--">getRegionServerCoprocessorHost</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerCoprocessors--">getRegionServerCoprocessors</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerMetrics--">getRegionServerMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerRpcQuotaManager--">getRegionServerRpcQuotaManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerSpaceQuotaManager--">getRegionServerSpaceQuotaManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionsInTransitionInRS--">getRegionsInTransitionInRS</a>, <a href="../../../../.
 ./org/apache/hadoop/hbase/regionserver/HRegionServer.html#getReplicationSourceService--">getReplicationSourceService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRootDir--">getRootDir</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRpcServer--">getRpcServer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRSRpcServices--">getRSRpcServices</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getSecureBulkLoadManager--">getSecureBulkLoadManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getStartcode--">getStartcode</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getThreadWakeFrequency--">getThreadWakeFrequency</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWAL-org.apache.hadoop.hbase.client.RegionInfo-">getWAL</a>, 
 <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWALFileSystem--">getWALFileSystem</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWalRoller--">getWalRoller</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWALRootDir--">getWALRootDir</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWALs--">getWALs</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#handleReportForDutyResponse-org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupResponse-">handleReportForDutyResponse</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#initializeMemStoreChunkCreator--">initializeMemStoreChunkCreator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isAborted--">isAborted</a>, <a href="../../../../../org/apache/ha
 doop/hbase/regionserver/HRegionServer.html#isOnline--">isOnline</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isStopped--">isStopped</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isStopping--">isStopping</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#kill--">kill</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#movedRegionCleanerPeriod--">movedRegionCleanerPeriod</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#onConfigurationChange-org.apache.hadoop.conf.Configuration-">onConfigurationChange</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#postOpenDeployTasks-org.apache.hadoop.hbase.regionserver.RegionServerServices.PostOpenDeployContext-">postOpenDeployTasks</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#regionLock-java.uti
 l.List-java.lang.String-org.apache.hadoop.hbase.Abortable-">regionLock</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#remoteProcedureComplete-long-java.lang.Throwable-">remoteProcedureComplete</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#removeRegion-org.apache.hadoop.hbase.regionserver.HRegion-org.apache.hadoop.hbase.ServerName-">removeRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#reportRegionSizesForQuotas-java.util.Map-">reportRegionSizesForQuotas</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#reportRegionStateTransition-org.apache.hadoop.hbase.regionserver.RegionServerServices.RegionStateTransitionContext-">reportRegionStateTransition</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#sendShutdownInterrupt--">sendShutdownInterrupt</a>, <a href="../../../../../org/apache/hadoop/hbase/reg
 ionserver/HRegionServer.html#setupClusterConnection--">setupClusterConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#shouldUseThisHostnameInstead--">shouldUseThisHostnameInstead</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#stop-java.lang.String-">stop</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#stop-java.lang.String-boolean-org.apache.hadoop.hbase.security.User-">stop</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#toString--">toString</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#tryRegionServerReport-long-long-">tryRegionServerReport</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#unassign-byte:A-">unassign</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#updateConfiguration--">updateConfiguration</a>, <a href
 ="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#updateRegionFavoredNodesMapping-java.lang.String-java.util.List-">updateRegionFavoredNodesMapping</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#waitForServerOnline--">waitForServerOnline</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#walRollRequestFinished--">walRollRequestFinished</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#abort-java.lang.String-">abort</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#addRegion-org.apache.hadoop.hbase.regionserver.HRegion-">addRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#addToMovedRegions-java.lang.String-org.apache.hadoop.hbase.ServerName-long-">addToMovedRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#checkFileSystem--">checkFileSystem</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#cleanMovedRegions--">cleanMovedRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#clearRegionBlockCache-org.apache.hadoop.hbase.regionserver.Region-">clearRegionBlockCache</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#closeAllRegions-boolean-">closeAllRegions</a
 >, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#closeAndOfflineRegionForSplitOrMerge-java.util.List-">closeAndOfflineRegionForSplitOrMerge</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#closeRegion-java.lang.String-boolean-org.apache.hadoop.hbase.ServerName-">closeRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#constructRegionServer-java.lang.Class-org.apache.hadoop.conf.Configuration-">constructRegionServer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#convertThrowableToIOE-java.lang.Throwable-java.lang.String-">convertThrowableToIOE</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createClusterConnection--">createClusterConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createConnection-org.apache.hadoop.conf.Configuration-">createConnection</a>, <
 a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createRegionLoad-java.lang.String-">createRegionLoad</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createRegionServerStatusStub--">createRegionServerStatusStub</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createRegionServerStatusStub-boolean-">createRegionServerStatusStub</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#execRegionServerService-org.apache.hbase.thirdparty.com.google.protobuf.RpcController-org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceRequest-">execRegionServerService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#executeProcedure-long-org.apache.hadoop.hbase.procedure2.RSProcedureCallable-">executeProcedure</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCacheConfig
 --">getCacheConfig</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getChoreService--">getChoreService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getClusterConnection--">getClusterConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getClusterId--">getClusterId</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCompactionPressure--">getCompactionPressure</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCompactionRequestor--">getCompactionRequestor</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCompactSplitThread--">getCompactSplitThread</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getConfiguration--">getConfiguration</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getConfig
 urationManager--">getConfigurationManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getConnection--">getConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCoordinatedStateManager--">getCoordinatedStateManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getEventLoopGroupConfig--">getEventLoopGroupConfig</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getExecutorService--">getExecutorService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFavoredNodesForRegion-java.lang.String-">getFavoredNodesForRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFileSystem--">getFileSystem</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFlushPressure--">getFlushPressure</a>, <a href="../../../../../org/apache/had
 oop/hbase/regionserver/HRegionServer.html#getFlushRequester--">getFlushRequester</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFlushThroughputController--">getFlushThroughputController</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFsTableDescriptors--">getFsTableDescriptors</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getHeapMemoryManager--">getHeapMemoryManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getInfoServer--">getInfoServer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getLastSequenceId-byte:A-">getLastSequenceId</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getLeases--">getLeases</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMasterAddressTracker--">getMasterAddressTracker</a>, <a href="../.
 ./../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMetaTableLocator--">getMetaTableLocator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMetrics--">getMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMostLoadedRegions--">getMostLoadedRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getNonceManager--">getNonceManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getNumberOfOnlineRegions--">getNumberOfOnlineRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getOnlineRegion-byte:A-">getOnlineRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getOnlineRegionsLocalContext--">getOnlineRegionsLocalContext</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getOnlineTables--">getOnlineTabl
 es</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegion-byte:A-">getRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegion-java.lang.String-">getRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionBlockLocations-java.lang.String-">getRegionBlockLocations</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionByEncodedName-byte:A-java.lang.String-">getRegionByEncodedName</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionByEncodedName-java.lang.String-">getRegionByEncodedName</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegions--">getRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegions-org.apache.hadoop.hbase.TableName-">getRegions</a>, <a href="../../../../../org/apache/hado
 op/hbase/regionserver/HRegionServer.html#getRegionServerAccounting--">getRegionServerAccounting</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerCoprocessorHost--">getRegionServerCoprocessorHost</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerCoprocessors--">getRegionServerCoprocessors</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerMetrics--">getRegionServerMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerRpcQuotaManager--">getRegionServerRpcQuotaManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerSpaceQuotaManager--">getRegionServerSpaceQuotaManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionsInTransitionInRS--">getRegionsInTransitionInRS</a>, <a href="../../../../.
 ./org/apache/hadoop/hbase/regionserver/HRegionServer.html#getReplicationSourceService--">getReplicationSourceService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRootDir--">getRootDir</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRpcServer--">getRpcServer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRSRpcServices--">getRSRpcServices</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getSecureBulkLoadManager--">getSecureBulkLoadManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getStartcode--">getStartcode</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getThreadWakeFrequency--">getThreadWakeFrequency</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWAL-org.apache.hadoop.hbase.client.RegionInfo-">getWAL</a>, 
 <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWALFileSystem--">getWALFileSystem</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWalRoller--">getWalRoller</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWALRootDir--">getWALRootDir</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWALs--">getWALs</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#handleReportForDutyResponse-org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupResponse-">handleReportForDutyResponse</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#initializeMemStoreChunkCreator--">initializeMemStoreChunkCreator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isAborted--">isAborted</a>, <a href="../../../../../org/apache/ha
 doop/hbase/regionserver/HRegionServer.html#isOnline--">isOnline</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isStopped--">isStopped</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isStopping--">isStopping</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#kill--">kill</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#movedRegionCleanerPeriod--">movedRegionCleanerPeriod</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#onConfigurationChange-org.apache.hadoop.conf.Configuration-">onConfigurationChange</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#postOpenDeployTasks-org.apache.hadoop.hbase.regionserver.RegionServerServices.PostOpenDeployContext-">postOpenDeployTasks</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#regionLock-java.uti
 l.List-java.lang.String-org.apache.hadoop.hbase.Abortable-">regionLock</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#remoteProcedureComplete-long-java.lang.Throwable-">remoteProcedureComplete</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#removeRegion-org.apache.hadoop.hbase.regionserver.HRegion-org.apache.hadoop.hbase.ServerName-">removeRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#reportRegionSizesForQuotas-java.util.Map-">reportRegionSizesForQuotas</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#reportRegionStateTransition-org.apache.hadoop.hbase.regionserver.RegionServerServices.RegionStateTransitionContext-">reportRegionStateTransition</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#sendShutdownInterrupt--">sendShutdownInterrupt</a>, <a href="../../../../../org/apache/hadoop/hbase/reg
 ionserver/HRegionServer.html#setupClusterConnection--">setupClusterConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#shouldUseThisHostnameInstead--">shouldUseThisHostnameInstead</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#stop-java.lang.String-boolean-org.apache.hadoop.hbase.security.User-">stop</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#toString--">toString</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#tryRegionServerReport-long-long-">tryRegionServerReport</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#unassign-byte:A-">unassign</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#updateConfiguration--">updateConfiguration</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#updateRegionFavoredNodesMapping-java.lang
 .String-java.util.List-">updateRegionFavoredNodesMapping</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#waitForServerOnline--">waitForServerOnline</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#walRollRequestFinished--">walRollRequestFinished</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.util.HasThread">
@@ -296,7 +296,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" tit
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.<a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/Stoppable.html#isStopped--">isStopped</a>, <a href="../../../../../org/apache/hadoop/hbase/Stoppable.html#stop-java.lang.String-">stop</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/Stoppable.html#isStopped--">isStopped</a></code></li>
 </ul>
 </li>
 </ul>

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/org/apache/hadoop/hbase/monitoring/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/monitoring/package-tree.html b/devapidocs/org/apache/hadoop/hbase/monitoring/package-tree.html
index e8a0b1b..27b2798 100644
--- a/devapidocs/org/apache/hadoop/hbase/monitoring/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/monitoring/package-tree.html
@@ -125,8 +125,8 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.monitoring.<a href="../../../../../org/apache/hadoop/hbase/monitoring/TaskMonitor.TaskFilter.TaskType.html" title="enum in org.apache.hadoop.hbase.monitoring"><span class="typeNameLink">TaskMonitor.TaskFilter.TaskType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.monitoring.<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.State.html" title="enum in org.apache.hadoop.hbase.monitoring"><span class="typeNameLink">MonitoredTask.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.monitoring.<a href="../../../../../org/apache/hadoop/hbase/monitoring/TaskMonitor.TaskFilter.TaskType.html" title="enum in org.apache.hadoop.hbase.monitoring"><span class="typeNameLink">TaskMonitor.TaskFilter.TaskType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/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 6ff3250..5e42a07 100644
--- a/devapidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/package-tree.html
@@ -444,20 +444,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.<a href="../../../../org/apache/hadoop/hbase/HealthChecker.HealthCheckerExitStatus.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HealthChecker.HealthCheckerExitStatus</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Cell.Type.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Cell.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/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/CellBuilderType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CellBuilderType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HConstants.OperationStatusCode.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HConstants.OperationStatusCode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MemoryCompactionPolicy.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MemoryCompactionPolicy</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CompareOperator.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompareOperator</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/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/Size.Unit.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Size.Unit</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Coprocessor.State.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Coprocessor.State</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MetaTableAccessor.QueryType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MetaTableAccessor.QueryType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ClusterMetrics.Option.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClusterMetrics.Option</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/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/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/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/Cell.Type.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Cell.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/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/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/CompatibilitySingletonFactory.SingletonStorage.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompatibilitySingletonFactory.SingletonStorage</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HConstants.OperationStatusCode.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HConstants.OperationStatusCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Size.Unit.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Size.Unit</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CellBuilderType</span></a></li>
 </ul>
 </li>
 </ul>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/org/apache/hadoop/hbase/TestJMXConnectorServer.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/TestJMXConnectorServer.html b/testdevapidocs/org/apache/hadoop/hbase/TestJMXConnectorServer.html
index 433486f..3148d86 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/TestJMXConnectorServer.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/TestJMXConnectorServer.html
@@ -109,7 +109,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a href="../../../../src-html/org/apache/hadoop/hbase/TestJMXConnectorServer.html#line.49">TestJMXConnectorServer</a>
+<pre>public class <a href="../../../../src-html/org/apache/hadoop/hbase/TestJMXConnectorServer.html#line.51">TestJMXConnectorServer</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block">Test case for JMX Connector Server.</div>
 </li>
@@ -260,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.slf4j.Logger <a href="../../../../src-html/org/apache/hadoop/hbase/TestJMXConnectorServer.html#line.50">LOG</a></pre>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../src-html/org/apache/hadoop/hbase/TestJMXConnectorServer.html#line.52">LOG</a></pre>
 </li>
 </ul>
 <a name="UTIL">
@@ -269,7 +269,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>UTIL</h4>
-<pre>private static&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/TestJMXConnectorServer.html#line.51">UTIL</a></pre>
+<pre>private static&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/TestJMXConnectorServer.html#line.53">UTIL</a></pre>
 </li>
 </ul>
 <a name="conf">
@@ -278,7 +278,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>conf</h4>
-<pre>private static&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../src-html/org/apache/hadoop/hbase/TestJMXConnectorServer.html#line.53">conf</a></pre>
+<pre>private static&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../src-html/org/apache/hadoop/hbase/TestJMXConnectorServer.html#line.55">conf</a></pre>
 </li>
 </ul>
 <a name="admin">
@@ -287,7 +287,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>admin</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.client.Admin <a href="../../../../src-html/org/apache/hadoop/hbase/TestJMXConnectorServer.html#line.54">admin</a></pre>
+<pre>private static&nbsp;org.apache.hadoop.hbase.client.Admin <a href="../../../../src-html/org/apache/hadoop/hbase/TestJMXConnectorServer.html#line.56">admin</a></pre>
 </li>
 </ul>
 <a name="rmiRegistryPort">
@@ -296,7 +296,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>rmiRegistryPort</h4>
-<pre>private static&nbsp;int <a href="../../../../src-html/org/apache/hadoop/hbase/TestJMXConnectorServer.html#line.56">rmiRegistryPort</a></pre>
+<pre>private static&nbsp;int <a href="../../../../src-html/org/apache/hadoop/hbase/TestJMXConnectorServer.html#line.58">rmiRegistryPort</a></pre>
 </li>
 </ul>
 <a name="hasAccess">
@@ -305,7 +305,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>hasAccess</h4>
-<pre>static&nbsp;boolean <a href="../../../../src-html/org/apache/hadoop/hbase/TestJMXConnectorServer.html#line.58">hasAccess</a></pre>
+<pre>static&nbsp;boolean <a href="../../../../src-html/org/apache/hadoop/hbase/TestJMXConnectorServer.html#line.60">hasAccess</a></pre>
 </li>
 </ul>
 </li>
@@ -322,7 +322,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestJMXConnectorServer</h4>
-<pre>public&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestJMXConnectorServer.html#line.49">TestJMXConnectorServer</a>()</pre>
+<pre>public&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestJMXConnectorServer.html#line.51">TestJMXConnectorServer</a>()</pre>
 </li>
 </ul>
 </li>
@@ -339,7 +339,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>setUp</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestJMXConnectorServer.html#line.61">setUp</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestJMXConnectorServer.html#line.63">setUp</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>
@@ -353,7 +353,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>tearDown</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestJMXConnectorServer.html#line.67">tearDown</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestJMXConnectorServer.html#line.69">tearDown</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>
@@ -367,7 +367,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testHMConnectorServerWhenStopMaster</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestJMXConnectorServer.html#line.78">testHMConnectorServerWhenStopMaster</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestJMXConnectorServer.html#line.80">testHMConnectorServerWhenStopMaster</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>
 <div class="block">This tests to validate the HMaster's ConnectorServer after unauthorised stopMaster call.</div>
 <dl>
@@ -382,7 +382,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testRSConnectorServerWhenStopRegionServer</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestJMXConnectorServer.html#line.116">testRSConnectorServerWhenStopRegionServer</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestJMXConnectorServer.html#line.118">testRSConnectorServerWhenStopRegionServer</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>
 <div class="block">This tests to validate the RegionServer's ConnectorServer after unauthorised stopRegionServer
  call.</div>
@@ -398,7 +398,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>testHMConnectorServerWhenShutdownCluster</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestJMXConnectorServer.html#line.146">testHMConnectorServerWhenShutdownCluster</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestJMXConnectorServer.html#line.148">testHMConnectorServerWhenShutdownCluster</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>
 <div class="block">This tests to validate the HMaster's ConnectorServer after unauthorised shutdown call.</div>
 <dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/org/apache/hadoop/hbase/TestLocalHBaseCluster.MyHMaster.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/TestLocalHBaseCluster.MyHMaster.html b/testdevapidocs/org/apache/hadoop/hbase/TestLocalHBaseCluster.MyHMaster.html
index 5ff1abd..e45e8b8 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/TestLocalHBaseCluster.MyHMaster.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/TestLocalHBaseCluster.MyHMaster.html
@@ -189,7 +189,7 @@ extends org.apache.hadoop.hbase.master.HMaster</pre>
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.HRegionServer</h3>
-<code>cacheConfig, cacheFlusher, clusterConnection, clusterStatusTracker, compactSplitThread, conf, configurationManager, csm, executorService, fs, fsOk, fsUtilizationChore, hMemManager, infoServer, leases, lock, MASTER_HOSTNAME_KEY, metaTableLocator, movedRegions, msgInterval, numRegionsToReport, onlineRegions, regionFavoredNodesMap, REGIONSERVER, regionsInTransitionInRS, replicationSinkHandler, replicationSourceHandler, rpcServices, secureBulkLoadManager, serverName, sleeper, startcode, tableDescriptors, TEST_SKIP_REPORTING_TRANSITION, threadWakeFrequency, useThisHostnameInstead, walFactory, walFs, walRoller, zooKeeper</code></li>
+<code>cacheConfig, cacheFlusher, clusterConnection, clusterId, clusterStatusTracker, compactSplitThread, conf, configurationManager, csm, executorService, fs, fsOk, fsUtilizationChore, hMemManager, infoServer, leases, lock, MASTER_HOSTNAME_KEY, metaTableLocator, movedRegions, msgInterval, numRegionsToReport, onlineRegions, regionFavoredNodesMap, REGIONSERVER, regionsInTransitionInRS, replicationSinkHandler, replicationSourceHandler, rpcServices, secureBulkLoadManager, serverName, sleeper, startcode, tableDescriptors, TEST_SKIP_REPORTING_TRANSITION, threadWakeFrequency, useThisHostnameInstead, walFactory, walFs, walRoller, zooKeeper</code></li>
 </ul>
 </li>
 </ul>
@@ -232,14 +232,14 @@ extends org.apache.hadoop.hbase.master.HMaster</pre>
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.master.HMaster</h3>
-<code>abort, abortProcedure, addColumn, addReplicationPeer, balance, balance, balanceSwitch, canCreateBaseZNode, canUpdateTableDescriptor, checkIfShouldMoveSystemRegionAsync, checkTableModifiable, configureInfoServer, constructMaster, createRpcServices, createSystemTable, createTable, decommissionRegionServers, deleteColumn, deleteTable, disableReplicationPeer, disableTable, enableReplicationPeer, enableTable, getAssignmentManager, getAverageLoad, getCatalogJanitor, getClientIdAuditPrefix, getClusterMetrics, getClusterMetrics, getClusterMetricsWithoutCoprocessor, getClusterMetricsWithoutCoprocessor, getClusterSchema, getDumpServlet, getFavoredNodesManager, getHFileCleaner, getInitializedEvent, getLastMajorCompactionTimestamp, getLastMajorCompactionTimestampForRegion, getLoadBalancer, getLoadBalancerClassName, getLoadedCoprocessors, getLockManager, getLocks, getLogCleaner, getMasterActiveTime, getMasterCoprocessorHost, getMasterCoprocessors, getMasterFileSystem, getMasterFinishedInit
 ializationTime, getMasterMetrics, getMasterProcedureExecutor, getMasterProcedureManagerHost, getMasterQuotaManager, getMasterRpcServices, getMasterStartTime, getMasterWalManager, getMergePlanCount, getMetaTableObserver, getMobCompactionState, getNumWALFiles, getProcedures, getProcessName, getQuotaObserverChore, getRegionNormalizer, getRegionNormalizerTracker, getRegionServerFatalLogBuffer, getRegionServerInfoPort, getRegionServerVersion, getReplicationPeerConfig, getReplicationPeerManager, getServerCrashProcessingEnabledEvent, getServerManager, getServerName, getSnapshotManager, getSpaceQuotaSnapshotNotifier, getSplitOrMergeTracker, getSplitPlanCount, getTableDescriptors, getTableStateManager, getWalProcedureStore, getZooKeeper, isActiveMaster, isBalancerOn, isInitialized, isInMaintenanceMode, isNormalizerOn, isServerCrashProcessingEnabled, isSplitOrMergeEnabled, listDecommissionedRegionServers, listReplicationPeers, listTableDescriptors, listTableDescriptorsByNamespace, listTableNa
 mes, listTableNamesByNamespace, login, main, mergeRegions, modifyColumn, modifyTable, move, normalizeRegions, recommissionRegionServer, recoverMeta, registerService, remoteProcedureCompleted, remoteProcedureFailed, removeReplicationPeer, reportMobCompactionEnd, reportMobCompactionStart, requestMobCompaction, restoreSnapshot, run, setCatalogJanitorEnabled, setInitialized, setServerCrashProcessingEnabled, shutdown, splitRegion, stopMaster, stopServiceThreads, truncateTable, updateConfigurationForSpaceQuotaObserver, updateReplicationPeerConfig, waitForMasterActive</code></li>
+<code>abort, abortProcedure, addColumn, addReplicationPeer, balance, balance, balanceSwitch, canCreateBaseZNode, canUpdateTableDescriptor, checkIfShouldMoveSystemRegionAsync, checkTableModifiable, configureInfoServer, constructMaster, createRpcServices, createSystemTable, createTable, decommissionRegionServers, deleteColumn, deleteTable, disableReplicationPeer, disableTable, enableReplicationPeer, enableTable, getAssignmentManager, getAverageLoad, getCatalogJanitor, getClientIdAuditPrefix, getClusterMetrics, getClusterMetrics, getClusterMetricsWithoutCoprocessor, getClusterMetricsWithoutCoprocessor, getClusterSchema, getDumpServlet, getFavoredNodesManager, getHFileCleaner, getInitializedEvent, getLastMajorCompactionTimestamp, getLastMajorCompactionTimestampForRegion, getLoadBalancer, getLoadBalancerClassName, getLoadedCoprocessors, getLockManager, getLocks, getLogCleaner, getMasterActiveTime, getMasterCoprocessorHost, getMasterCoprocessors, getMasterFileSystem, getMasterFinishedInit
 ializationTime, getMasterMetrics, getMasterProcedureExecutor, getMasterProcedureManagerHost, getMasterQuotaManager, getMasterRpcServices, getMasterStartTime, getMasterWalManager, getMergePlanCount, getMetaTableObserver, getMobCompactionState, getNumWALFiles, getProcedures, getProcessName, getQuotaObserverChore, getRegionNormalizer, getRegionNormalizerTracker, getRegionServerFatalLogBuffer, getRegionServerInfoPort, getRegionServerVersion, getReplicationPeerConfig, getReplicationPeerManager, getServerCrashProcessingEnabledEvent, getServerManager, getServerName, getSnapshotManager, getSpaceQuotaSnapshotNotifier, getSplitOrMergeTracker, getSplitPlanCount, getTableDescriptors, getTableStateManager, getWalProcedureStore, getZooKeeper, isActiveMaster, isBalancerOn, isInitialized, isInMaintenanceMode, isNormalizerOn, isServerCrashProcessingEnabled, isSplitOrMergeEnabled, listDecommissionedRegionServers, listReplicationPeers, listTableDescriptors, listTableDescriptorsByNamespace, listTableNa
 mes, listTableNamesByNamespace, login, main, mergeRegions, modifyColumn, modifyTable, move, normalizeRegions, recommissionRegionServer, recoverMeta, registerService, remoteProcedureCompleted, remoteProcedureFailed, removeReplicationPeer, reportMobCompactionEnd, reportMobCompactionStart, requestMobCompaction, restoreSnapshot, run, setCatalogJanitorEnabled, setInitialized, setServerCrashProcessingEnabled, shutdown, splitRegion, stop, stopMaster, stopServiceThreads, truncateTable, updateConfigurationForSpaceQuotaObserver, updateReplicationPeerConfig, waitForMasterActive</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.regionserver.HRegionServer">
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.HRegionServer</h3>
-<code>abort, addRegion, addToMovedRegions, checkFileSystem, cleanMovedRegions, clearRegionBlockCache, closeAllRegions, closeAndOfflineRegionForSplitOrMerge, closeRegion, constructRegionServer, convertThrowableToIOE, createClusterConnection, createConnection, createRegionLoad, createRegionServerStatusStub, createRegionServerStatusStub, execRegionServerService, executeProcedure, getCacheConfig, getChoreService, getClusterConnection, getClusterId, getCompactionPressure, getCompactionRequestor, getCompactSplitThread, getConfiguration, getConfigurationManager, getConnection, getCoordinatedStateManager, getEventLoopGroupConfig, getExecutorService, getFavoredNodesForRegion, getFileSystem, getFlushPressure, getFlushRequester, getFlushThroughputController, getFsTableDescriptors, getHeapMemoryManager, getInfoServer, getLastSequenceId, getLeases, getMasterAddressTracker, getMetaTableLocator, getMetrics, getMostLoadedRegions, getNonceManager, getNumberOfOnlineRegions, getOnlineRegion, getOnline
 RegionsLocalContext, getOnlineTables, getRegion, getRegion, getRegionBlockLocations, getRegionByEncodedName, getRegionByEncodedName, getRegions, getRegions, getRegionServerAccounting, getRegionServerCoprocessorHost, getRegionServerCoprocessors, getRegionServerMetrics, getRegionServerRpcQuotaManager, getRegionServerSpaceQuotaManager, getRegionsInTransitionInRS, getReplicationSourceService, getRootDir, getRpcServer, getRSRpcServices, getSecureBulkLoadManager, getStartcode, getThreadWakeFrequency, getWAL, getWALFileSystem, getWalRoller, getWALRootDir, getWALs, handleReportForDutyResponse, initializeMemStoreChunkCreator, isAborted, isOnline, isStopped, isStopping, kill, movedRegionCleanerPeriod, onConfigurationChange, postOpenDeployTasks, regionLock, remoteProcedureComplete, removeRegion, reportRegionSizesForQuotas, reportRegionStateTransition, sendShutdownInterrupt, setupClusterConnection, shouldUseThisHostnameInstead, stop, stop, toString, tryRegionServerReport, unassign, updateConfig
 uration, updateRegionFavoredNodesMapping, waitForServerOnline, walRollRequestFinished</code></li>
+<code>abort, addRegion, addToMovedRegions, checkFileSystem, cleanMovedRegions, clearRegionBlockCache, closeAllRegions, closeAndOfflineRegionForSplitOrMerge, closeRegion, constructRegionServer, convertThrowableToIOE, createClusterConnection, createConnection, createRegionLoad, createRegionServerStatusStub, createRegionServerStatusStub, execRegionServerService, executeProcedure, getCacheConfig, getChoreService, getClusterConnection, getClusterId, getCompactionPressure, getCompactionRequestor, getCompactSplitThread, getConfiguration, getConfigurationManager, getConnection, getCoordinatedStateManager, getEventLoopGroupConfig, getExecutorService, getFavoredNodesForRegion, getFileSystem, getFlushPressure, getFlushRequester, getFlushThroughputController, getFsTableDescriptors, getHeapMemoryManager, getInfoServer, getLastSequenceId, getLeases, getMasterAddressTracker, getMetaTableLocator, getMetrics, getMostLoadedRegions, getNonceManager, getNumberOfOnlineRegions, getOnlineRegion, getOnline
 RegionsLocalContext, getOnlineTables, getRegion, getRegion, getRegionBlockLocations, getRegionByEncodedName, getRegionByEncodedName, getRegions, getRegions, getRegionServerAccounting, getRegionServerCoprocessorHost, getRegionServerCoprocessors, getRegionServerMetrics, getRegionServerRpcQuotaManager, getRegionServerSpaceQuotaManager, getRegionsInTransitionInRS, getReplicationSourceService, getRootDir, getRpcServer, getRSRpcServices, getSecureBulkLoadManager, getStartcode, getThreadWakeFrequency, getWAL, getWALFileSystem, getWalRoller, getWALRootDir, getWALs, handleReportForDutyResponse, initializeMemStoreChunkCreator, isAborted, isOnline, isStopped, isStopping, kill, movedRegionCleanerPeriod, onConfigurationChange, postOpenDeployTasks, regionLock, remoteProcedureComplete, removeRegion, reportRegionSizesForQuotas, reportRegionStateTransition, sendShutdownInterrupt, setupClusterConnection, shouldUseThisHostnameInstead, stop, toString, tryRegionServerReport, unassign, updateConfiguratio
 n, updateRegionFavoredNodesMapping, waitForServerOnline, walRollRequestFinished</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.util.HasThread">
@@ -281,7 +281,7 @@ extends org.apache.hadoop.hbase.master.HMaster</pre>
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.Stoppable</h3>
-<code>isStopped, stop</code></li>
+<code>isStopped</code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/org/apache/hadoop/hbase/TestLocalHBaseCluster.MyHRegionServer.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/TestLocalHBaseCluster.MyHRegionServer.html b/testdevapidocs/org/apache/hadoop/hbase/TestLocalHBaseCluster.MyHRegionServer.html
index a98cdd4..65ce07d 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/TestLocalHBaseCluster.MyHRegionServer.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/TestLocalHBaseCluster.MyHRegionServer.html
@@ -181,7 +181,7 @@ extends <a href="../../../../org/apache/hadoop/hbase/MiniHBaseCluster.MiniHBaseC
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.HRegionServer</h3>
-<code>cacheConfig, cacheFlusher, clusterConnection, clusterStatusTracker, compactSplitThread, conf, configurationManager, csm, executorService, fs, fsOk, fsUtilizationChore, hMemManager, infoServer, leases, lock, MASTER_HOSTNAME_KEY, metaTableLocator, movedRegions, msgInterval, numRegionsToReport, onlineRegions, regionFavoredNodesMap, REGIONSERVER, regionsInTransitionInRS, replicationSinkHandler, replicationSourceHandler, rpcServices, secureBulkLoadManager, serverName, sleeper, startcode, tableDescriptors, TEST_SKIP_REPORTING_TRANSITION, threadWakeFrequency, useThisHostnameInstead, walFactory, walFs, walRoller, zooKeeper</code></li>
+<code>cacheConfig, cacheFlusher, clusterConnection, clusterId, clusterStatusTracker, compactSplitThread, conf, configurationManager, csm, executorService, fs, fsOk, fsUtilizationChore, hMemManager, infoServer, leases, lock, MASTER_HOSTNAME_KEY, metaTableLocator, movedRegions, msgInterval, numRegionsToReport, onlineRegions, regionFavoredNodesMap, REGIONSERVER, regionsInTransitionInRS, replicationSinkHandler, replicationSourceHandler, rpcServices, secureBulkLoadManager, serverName, sleeper, startcode, tableDescriptors, TEST_SKIP_REPORTING_TRANSITION, threadWakeFrequency, useThisHostnameInstead, walFactory, walFs, walRoller, zooKeeper</code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/org/apache/hadoop/hbase/TestMovedRegionsCleaner.TestMockRegionServer.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/TestMovedRegionsCleaner.TestMockRegionServer.html b/testdevapidocs/org/apache/hadoop/hbase/TestMovedRegionsCleaner.TestMockRegionServer.html
index d5b9f50..4b01177 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/TestMovedRegionsCleaner.TestMockRegionServer.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/TestMovedRegionsCleaner.TestMockRegionServer.html
@@ -180,7 +180,7 @@ extends <a href="../../../../org/apache/hadoop/hbase/MiniHBaseCluster.MiniHBaseC
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.HRegionServer</h3>
-<code>cacheConfig, cacheFlusher, clusterConnection, clusterStatusTracker, compactSplitThread, conf, configurationManager, csm, executorService, fs, fsOk, fsUtilizationChore, hMemManager, infoServer, leases, lock, MASTER_HOSTNAME_KEY, metaTableLocator, movedRegions, msgInterval, numRegionsToReport, onlineRegions, regionFavoredNodesMap, REGIONSERVER, regionsInTransitionInRS, replicationSinkHandler, replicationSourceHandler, rpcServices, secureBulkLoadManager, serverName, sleeper, startcode, tableDescriptors, TEST_SKIP_REPORTING_TRANSITION, threadWakeFrequency, useThisHostnameInstead, walFactory, walFs, walRoller, zooKeeper</code></li>
+<code>cacheConfig, cacheFlusher, clusterConnection, clusterId, clusterStatusTracker, compactSplitThread, conf, configurationManager, csm, executorService, fs, fsOk, fsUtilizationChore, hMemManager, infoServer, leases, lock, MASTER_HOSTNAME_KEY, metaTableLocator, movedRegions, msgInterval, numRegionsToReport, onlineRegions, regionFavoredNodesMap, REGIONSERVER, regionsInTransitionInRS, replicationSinkHandler, replicationSourceHandler, rpcServices, secureBulkLoadManager, serverName, sleeper, startcode, tableDescriptors, TEST_SKIP_REPORTING_TRANSITION, threadWakeFrequency, useThisHostnameInstead, walFactory, walFs, walRoller, zooKeeper</code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/org/apache/hadoop/hbase/backup/TestBackupBase.FullTableBackupClientForTest.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/backup/TestBackupBase.FullTableBackupClientForTest.html b/testdevapidocs/org/apache/hadoop/hbase/backup/TestBackupBase.FullTableBackupClientForTest.html
index d0a704d..5c2d754 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/backup/TestBackupBase.FullTableBackupClientForTest.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/backup/TestBackupBase.FullTableBackupClientForTest.html
@@ -123,7 +123,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.182">TestBackupBase.FullTableBackupClientForTest</a>
+<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.181">TestBackupBase.FullTableBackupClientForTest</a>
 extends org.apache.hadoop.hbase.backup.impl.FullTableBackupClient</pre>
 </li>
 </ul>
@@ -157,7 +157,7 @@ extends org.apache.hadoop.hbase.backup.impl.FullTableBackupClient</pre>
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.backup.impl.TableBackupClient</h3>
-<code>BACKUP_CLIENT_IMPL_CLASS, BACKUP_TEST_MODE_STAGE, backupId, backupInfo, backupManager, conf, conn, newTimestamps, tableList</code></li>
+<code>BACKUP_CLIENT_IMPL_CLASS, BACKUP_TEST_MODE_STAGE, backupId, backupInfo, backupManager, conf, conn, fs, newTimestamps, tableList</code></li>
 </ul>
 </li>
 </ul>
@@ -241,7 +241,7 @@ extends org.apache.hadoop.hbase.backup.impl.FullTableBackupClient</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>FullTableBackupClientForTest</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.FullTableBackupClientForTest.html#line.186">FullTableBackupClientForTest</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.FullTableBackupClientForTest.html#line.185">FullTableBackupClientForTest</a>()</pre>
 </li>
 </ul>
 <a name="FullTableBackupClientForTest-org.apache.hadoop.hbase.client.Connection-java.lang.String-org.apache.hadoop.hbase.backup.BackupRequest-">
@@ -250,7 +250,7 @@ extends org.apache.hadoop.hbase.backup.impl.FullTableBackupClient</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>FullTableBackupClientForTest</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.FullTableBackupClientForTest.html#line.189">FullTableBackupClientForTest</a>(org.apache.hadoop.hbase.client.Connection&nbsp;conn,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.FullTableBackupClientForTest.html#line.188">FullTableBackupClientForTest</a>(org.apache.hadoop.hbase.client.Connection&nbsp;conn,
                                     <a href="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;backupId,
                                     org.apache.hadoop.hbase.backup.BackupRequest&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>
@@ -274,7 +274,7 @@ extends org.apache.hadoop.hbase.backup.impl.FullTableBackupClient</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>execute</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.FullTableBackupClientForTest.html#line.195">execute</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.FullTableBackupClientForTest.html#line.194">execute</a>()
              throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/org/apache/hadoop/hbase/backup/TestBackupBase.IncrementalTableBackupClientForTest.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/backup/TestBackupBase.IncrementalTableBackupClientForTest.html b/testdevapidocs/org/apache/hadoop/hbase/backup/TestBackupBase.IncrementalTableBackupClientForTest.html
index 2e29085..c135327 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/backup/TestBackupBase.IncrementalTableBackupClientForTest.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/backup/TestBackupBase.IncrementalTableBackupClientForTest.html
@@ -123,7 +123,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.112">TestBackupBase.IncrementalTableBackupClientForTest</a>
+<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.111">TestBackupBase.IncrementalTableBackupClientForTest</a>
 extends org.apache.hadoop.hbase.backup.impl.IncrementalTableBackupClient</pre>
 </li>
 </ul>
@@ -157,7 +157,7 @@ extends org.apache.hadoop.hbase.backup.impl.IncrementalTableBackupClient</pre>
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.backup.impl.TableBackupClient</h3>
-<code>BACKUP_CLIENT_IMPL_CLASS, BACKUP_TEST_MODE_STAGE, backupId, backupInfo, backupManager, conf, conn, newTimestamps, tableList</code></li>
+<code>BACKUP_CLIENT_IMPL_CLASS, BACKUP_TEST_MODE_STAGE, backupId, backupInfo, backupManager, conf, conn, fs, newTimestamps, tableList</code></li>
 </ul>
 </li>
 </ul>
@@ -241,7 +241,7 @@ extends org.apache.hadoop.hbase.backup.impl.IncrementalTableBackupClient</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>IncrementalTableBackupClientForTest</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.IncrementalTableBackupClientForTest.html#line.115">IncrementalTableBackupClientForTest</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.IncrementalTableBackupClientForTest.html#line.114">IncrementalTableBackupClientForTest</a>()</pre>
 </li>
 </ul>
 <a name="IncrementalTableBackupClientForTest-org.apache.hadoop.hbase.client.Connection-java.lang.String-org.apache.hadoop.hbase.backup.BackupRequest-">
@@ -250,7 +250,7 @@ extends org.apache.hadoop.hbase.backup.impl.IncrementalTableBackupClient</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>IncrementalTableBackupClientForTest</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.IncrementalTableBackupClientForTest.html#line.118">IncrementalTableBackupClientForTest</a>(org.apache.hadoop.hbase.client.Connection&nbsp;conn,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.IncrementalTableBackupClientForTest.html#line.117">IncrementalTableBackupClientForTest</a>(org.apache.hadoop.hbase.client.Connection&nbsp;conn,
                                            <a href="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;backupId,
                                            org.apache.hadoop.hbase.backup.BackupRequest&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>
@@ -274,7 +274,7 @@ extends org.apache.hadoop.hbase.backup.impl.IncrementalTableBackupClient</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>execute</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.IncrementalTableBackupClientForTest.html#line.124">execute</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.IncrementalTableBackupClientForTest.html#line.123">execute</a>()
              throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/org/apache/hadoop/hbase/backup/TestBackupBase.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/backup/TestBackupBase.html b/testdevapidocs/org/apache/hadoop/hbase/backup/TestBackupBase.html
index 8239185..6c8952c 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/backup/TestBackupBase.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/backup/TestBackupBase.html
@@ -113,7 +113,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.78">TestBackupBase</a>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.77">TestBackupBase</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block">This class is only a base for other integration-level backup tests. Do not add tests here.
  TestBackupSmallTests is where tests that don't require bring machines up/down should go All other
@@ -390,7 +390,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.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.80">LOG</a></pre>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.79">LOG</a></pre>
 </li>
 </ul>
 <a name="TEST_UTIL">
@@ -399,7 +399,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>TEST_UTIL</h4>
-<pre>protected static&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/backup/TestBackupBase.html#line.82">TEST_UTIL</a></pre>
+<pre>protected static&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/backup/TestBackupBase.html#line.81">TEST_UTIL</a></pre>
 </li>
 </ul>
 <a name="TEST_UTIL2">
@@ -408,7 +408,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>TEST_UTIL2</h4>
-<pre>protected static&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/backup/TestBackupBase.html#line.83">TEST_UTIL2</a></pre>
+<pre>protected static&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/backup/TestBackupBase.html#line.82">TEST_UTIL2</a></pre>
 </li>
 </ul>
 <a name="conf1">
@@ -417,7 +417,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>conf1</h4>
-<pre>protected static&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.84">conf1</a></pre>
+<pre>protected static&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.83">conf1</a></pre>
 </li>
 </ul>
 <a name="conf2">
@@ -426,7 +426,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>conf2</h4>
-<pre>protected static&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.85">conf2</a></pre>
+<pre>protected static&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.84">conf2</a></pre>
 </li>
 </ul>
 <a name="table1">
@@ -435,7 +435,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>table1</h4>
-<pre>protected static&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.87">table1</a></pre>
+<pre>protected static&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.86">table1</a></pre>
 </li>
 </ul>
 <a name="table1Desc">
@@ -444,7 +444,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>table1Desc</h4>
-<pre>protected static&nbsp;org.apache.hadoop.hbase.HTableDescriptor <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.88">table1Desc</a></pre>
+<pre>protected static&nbsp;org.apache.hadoop.hbase.HTableDescriptor <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.87">table1Desc</a></pre>
 </li>
 </ul>
 <a name="table2">
@@ -453,7 +453,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>table2</h4>
-<pre>protected static&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.89">table2</a></pre>
+<pre>protected static&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.88">table2</a></pre>
 </li>
 </ul>
 <a name="table3">
@@ -462,7 +462,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>table3</h4>
-<pre>protected static&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.90">table3</a></pre>
+<pre>protected static&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.89">table3</a></pre>
 </li>
 </ul>
 <a name="table4">
@@ -471,7 +471,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>table4</h4>
-<pre>protected static&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.91">table4</a></pre>
+<pre>protected static&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.90">table4</a></pre>
 </li>
 </ul>
 <a name="table1_restore">
@@ -480,7 +480,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>table1_restore</h4>
-<pre>protected static&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.93">table1_restore</a></pre>
+<pre>protected static&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.92">table1_restore</a></pre>
 </li>
 </ul>
 <a name="table2_restore">
@@ -489,7 +489,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>table2_restore</h4>
-<pre>protected static&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.94">table2_restore</a></pre>
+<pre>protected static&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.93">table2_restore</a></pre>
 </li>
 </ul>
 <a name="table3_restore">
@@ -498,7 +498,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>table3_restore</h4>
-<pre>protected static&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.95">table3_restore</a></pre>
+<pre>protected static&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.94">table3_restore</a></pre>
 </li>
 </ul>
 <a name="table4_restore">
@@ -507,7 +507,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>table4_restore</h4>
-<pre>protected static&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.96">table4_restore</a></pre>
+<pre>protected static&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.95">table4_restore</a></pre>
 </li>
 </ul>
 <a name="NB_ROWS_IN_BATCH">
@@ -516,7 +516,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>NB_ROWS_IN_BATCH</h4>
-<pre>protected static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.98">NB_ROWS_IN_BATCH</a></pre>
+<pre>protected static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.97">NB_ROWS_IN_BATCH</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.backup.TestBackupBase.NB_ROWS_IN_BATCH">Constant Field Values</a></dd>
@@ -529,7 +529,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>qualName</h4>
-<pre>protected static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.99">qualName</a></pre>
+<pre>protected static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.98">qualName</a></pre>
 </li>
 </ul>
 <a name="famName">
@@ -538,7 +538,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>famName</h4>
-<pre>protected static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.100">famName</a></pre>
+<pre>protected static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.99">famName</a></pre>
 </li>
 </ul>
 <a name="BACKUP_ROOT_DIR">
@@ -547,7 +547,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>BACKUP_ROOT_DIR</h4>
-<pre>protected 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> <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.102">BACKUP_ROOT_DIR</a></pre>
+<pre>protected 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> <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.101">BACKUP_ROOT_DIR</a></pre>
 </li>
 </ul>
 <a name="BACKUP_REMOTE_ROOT_DIR">
@@ -556,7 +556,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>BACKUP_REMOTE_ROOT_DIR</h4>
-<pre>protected 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> <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.103">BACKUP_REMOTE_ROOT_DIR</a></pre>
+<pre>protected 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> <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.102">BACKUP_REMOTE_ROOT_DIR</a></pre>
 </li>
 </ul>
 <a name="provider">
@@ -565,7 +565,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>provider</h4>
-<pre>protected 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> <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.104">provider</a></pre>
+<pre>protected 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> <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.103">provider</a></pre>
 </li>
 </ul>
 <a name="secure">
@@ -574,7 +574,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>secure</h4>
-<pre>protected static&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.105">secure</a></pre>
+<pre>protected static&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.104">secure</a></pre>
 </li>
 </ul>
 <a name="autoRestoreOnFailure">
@@ -583,7 +583,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>autoRestoreOnFailure</h4>
-<pre>protected static&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.107">autoRestoreOnFailure</a></pre>
+<pre>protected static&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.106">autoRestoreOnFailure</a></pre>
 </li>
 </ul>
 <a name="setupIsDone">
@@ -592,7 +592,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>setupIsDone</h4>
-<pre>protected static&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.108">setupIsDone</a></pre>
+<pre>protected static&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.107">setupIsDone</a></pre>
 </li>
 </ul>
 <a name="useSecondCluster">
@@ -601,7 +601,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>useSecondCluster</h4>
-<pre>protected static&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.109">useSecondCluster</a></pre>
+<pre>protected static&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.108">useSecondCluster</a></pre>
 </li>
 </ul>
 </li>
@@ -618,7 +618,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestBackupBase</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.78">TestBackupBase</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.77">TestBackupBase</a>()</pre>
 </li>
 </ul>
 </li>
@@ -635,7 +635,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>setUp</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.289">setUp</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.288">setUp</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>
@@ -649,7 +649,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>populateFromMasterConfig</h4>
-<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.336">populateFromMasterConfig</a>(org.apache.hadoop.conf.Configuration&nbsp;masterConf,
+<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.332">populateFromMasterConfig</a>(org.apache.hadoop.conf.Configuration&nbsp;masterConf,
                                              org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 </li>
 </ul>
@@ -659,7 +659,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>tearDown</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.348">tearDown</a>()
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.344">tearDown</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>
@@ -673,7 +673,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>insertIntoTable</h4>
-<pre>org.apache.hadoop.hbase.client.HTable&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.361">insertIntoTable</a>(org.apache.hadoop.hbase.client.Connection&nbsp;conn,
+<pre>org.apache.hadoop.hbase.client.HTable&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.357">insertIntoTable</a>(org.apache.hadoop.hbase.client.Connection&nbsp;conn,
                                                       org.apache.hadoop.hbase.TableName&nbsp;table,
                                                       byte[]&nbsp;family,
                                                       int&nbsp;id,
@@ -691,7 +691,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>createBackupRequest</h4>
-<pre>protected&nbsp;org.apache.hadoop.hbase.backup.BackupRequest&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.374">createBackupRequest</a>(org.apache.hadoop.hbase.backup.BackupType&nbsp;type,
+<pre>protected&nbsp;org.apache.hadoop.hbase.backup.BackupRequest&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.370">createBackupRequest</a>(org.apache.hadoop.hbase.backup.BackupType&nbsp;type,
                                                                            <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.TableName&gt;&nbsp;tables,
                                                                            <a href="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;path)</pre>
 </li>
@@ -702,7 +702,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>backupTables</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>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.383">backupTables</a>(org.apache.hadoop.hbase.backup.BackupType&nbsp;type,
+<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>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.379">backupTables</a>(org.apache.hadoop.hbase.backup.BackupType&nbsp;type,
                               <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.TableName&gt;&nbsp;tables,
                               <a href="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;path)
                        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>
@@ -718,7 +718,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>fullTableBackup</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>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.404">fullTableBackup</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.TableName&gt;&nbsp;tables)
+<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>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.400">fullTableBackup</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.TableName&gt;&nbsp;tables)
                           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>
@@ -732,7 +732,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>incrementalTableBackup</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>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.408">incrementalTableBackup</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.TableName&gt;&nbsp;tables)
+<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>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.404">incrementalTableBackup</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.TableName&gt;&nbsp;tables)
                                  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>
@@ -746,7 +746,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>loadTable</h4>
-<pre>protected static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.412">loadTable</a>(org.apache.hadoop.hbase.client.Table&nbsp;table)
+<pre>protected static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.408">loadTable</a>(org.apache.hadoop.hbase.client.Table&nbsp;table)
                          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>
@@ -760,7 +760,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>createTables</h4>
-<pre>protected static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.423">createTables</a>()
+<pre>protected static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.419">createTables</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>
@@ -774,7 +774,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>checkSucceeded</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.466">checkSucceeded</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;backupId)
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.462">checkSucceeded</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;backupId)
                           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>
@@ -788,7 +788,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>checkFailed</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.472">checkFailed</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;backupId)
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.468">checkFailed</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;backupId)
                        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>
@@ -802,7 +802,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getBackupInfo</h4>
-<pre>private&nbsp;org.apache.hadoop.hbase.backup.BackupInfo&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.478">getBackupInfo</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;backupId)
+<pre>private&nbsp;org.apache.hadoop.hbase.backup.BackupInfo&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.474">getBackupInfo</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;backupId)
                                                          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>
@@ -816,7 +816,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getBackupAdmin</h4>
-<pre>protected&nbsp;org.apache.hadoop.hbase.backup.BackupAdmin&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.485">getBackupAdmin</a>()
+<pre>protected&nbsp;org.apache.hadoop.hbase.backup.BackupAdmin&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.481">getBackupAdmin</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>
@@ -830,7 +830,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>toList</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;org.apache.hadoop.hbase.TableName&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.492">toList</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>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;org.apache.hadoop.hbase.TableName&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.488">toList</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>
 <div class="block">Helper method</div>
 </li>
 </ul>
@@ -840,7 +840,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>dumpBackupDir</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.500">dumpBackupDir</a>()
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html#line.496">dumpBackupDir</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>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/org/apache/hadoop/hbase/backup/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/backup/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/backup/package-tree.html
index dc2a8e8..3630ba9 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/backup/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/backup/package-tree.html
@@ -143,8 +143,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.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/TestBackupDeleteWithFailures.Failure.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">TestBackupDeleteWithFailures.Failure</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/TestIncrementalBackupMergeWithFailures.FailurePhase.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">TestIncrementalBackupMergeWithFailures.FailurePhase</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/TestBackupDeleteWithFailures.Failure.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">TestBackupDeleteWithFailures.Failure</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/org/apache/hadoop/hbase/client/TestClientScannerRPCTimeout.RegionServerWithScanTimeout.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestClientScannerRPCTimeout.RegionServerWithScanTimeout.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestClientScannerRPCTimeout.RegionServerWithScanTimeout.html
index 2dcd034..f6f2fd1 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestClientScannerRPCTimeout.RegionServerWithScanTimeout.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestClientScannerRPCTimeout.RegionServerWithScanTimeout.html
@@ -173,7 +173,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.MiniHBa
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.HRegionServer</h3>
-<code>cacheConfig, cacheFlusher, clusterConnection, clusterStatusTracker, compactSplitThread, conf, configurationManager, csm, executorService, fs, fsOk, fsUtilizationChore, hMemManager, infoServer, leases, lock, MASTER_HOSTNAME_KEY, metaTableLocator, movedRegions, msgInterval, numRegionsToReport, onlineRegions, regionFavoredNodesMap, REGIONSERVER, regionsInTransitionInRS, replicationSinkHandler, replicationSourceHandler, rpcServices, secureBulkLoadManager, serverName, sleeper, startcode, tableDescriptors, TEST_SKIP_REPORTING_TRANSITION, threadWakeFrequency, useThisHostnameInstead, walFactory, walFs, walRoller, zooKeeper</code></li>
+<code>cacheConfig, cacheFlusher, clusterConnection, clusterId, clusterStatusTracker, compactSplitThread, conf, configurationManager, csm, executorService, fs, fsOk, fsUtilizationChore, hMemManager, infoServer, leases, lock, MASTER_HOSTNAME_KEY, metaTableLocator, movedRegions, msgInterval, numRegionsToReport, onlineRegions, regionFavoredNodesMap, REGIONSERVER, regionsInTransitionInRS, replicationSinkHandler, replicationSourceHandler, rpcServices, secureBulkLoadManager, serverName, sleeper, startcode, tableDescriptors, TEST_SKIP_REPORTING_TRANSITION, threadWakeFrequency, useThisHostnameInstead, walFactory, walFs, walRoller, zooKeeper</code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/org/apache/hadoop/hbase/client/TestMetaCache.RegionServerWithFakeRpcServices.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestMetaCache.RegionServerWithFakeRpcServices.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestMetaCache.RegionServerWithFakeRpcServices.html
index 57e21e6..a0a346e 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestMetaCache.RegionServerWithFakeRpcServices.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestMetaCache.RegionServerWithFakeRpcServices.html
@@ -179,7 +179,7 @@ extends org.apache.hadoop.hbase.regionserver.HRegionServer</pre>
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.HRegionServer</h3>
-<code>cacheConfig, cacheFlusher, clusterConnection, clusterStatusTracker, compactSplitThread, conf, configurationManager, csm, executorService, fs, fsOk, fsUtilizationChore, hMemManager, infoServer, leases, lock, MASTER_HOSTNAME_KEY, metaTableLocator, movedRegions, msgInterval, numRegionsToReport, onlineRegions, regionFavoredNodesMap, REGIONSERVER, regionsInTransitionInRS, replicationSinkHandler, replicationSourceHandler, rpcServices, secureBulkLoadManager, serverName, sleeper, startcode, tableDescriptors, TEST_SKIP_REPORTING_TRANSITION, threadWakeFrequency, useThisHostnameInstead, walFactory, walFs, walRoller, zooKeeper</code></li>
+<code>cacheConfig, cacheFlusher, clusterConnection, clusterId, clusterStatusTracker, compactSplitThread, conf, configurationManager, csm, executorService, fs, fsOk, fsUtilizationChore, hMemManager, infoServer, leases, lock, MASTER_HOSTNAME_KEY, metaTableLocator, movedRegions, msgInterval, numRegionsToReport, onlineRegions, regionFavoredNodesMap, REGIONSERVER, regionsInTransitionInRS, replicationSinkHandler, replicationSourceHandler, rpcServices, secureBulkLoadManager, serverName, sleeper, startcode, tableDescriptors, TEST_SKIP_REPORTING_TRANSITION, threadWakeFrequency, useThisHostnameInstead, walFactory, walFs, walRoller, zooKeeper</code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/org/apache/hadoop/hbase/client/TestMultiParallel.MyMasterObserver.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestMultiParallel.MyMasterObserver.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestMultiParallel.MyMasterObserver.html
index ad68384..5a70dec 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestMultiParallel.MyMasterObserver.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestMultiParallel.MyMasterObserver.html
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.803">TestMultiParallel.MyMasterObserver</a>
+<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.805">TestMultiParallel.MyMasterObserver</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.coprocessor.MasterObserver, org.apache.hadoop.hbase.coprocessor.MasterCoprocessor</pre>
 </li>
@@ -255,7 +255,7 @@ implements org.apache.hadoop.hbase.coprocessor.MasterObserver, org.apache.hadoop
 <ul class="blockList">
 <li class="blockList">
 <h4>postBalanceCount</h4>
-<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.MyMasterObserver.html#line.804">postBalanceCount</a></pre>
+<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.MyMasterObserver.html#line.806">postBalanceCount</a></pre>
 </li>
 </ul>
 <a name="start">
@@ -264,7 +264,7 @@ implements org.apache.hadoop.hbase.coprocessor.MasterObserver, org.apache.hadoop
 <ul class="blockListLast">
 <li class="blockList">
 <h4>start</h4>
-<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.MyMasterObserver.html#line.805">start</a></pre>
+<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.MyMasterObserver.html#line.807">start</a></pre>
 </li>
 </ul>
 </li>
@@ -281,7 +281,7 @@ implements org.apache.hadoop.hbase.coprocessor.MasterObserver, org.apache.hadoop
 <ul class="blockListLast">
 <li class="blockList">
 <h4>MyMasterObserver</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.MyMasterObserver.html#line.803">MyMasterObserver</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.MyMasterObserver.html#line.805">MyMasterObserver</a>()</pre>
 </li>
 </ul>
 </li>
@@ -298,7 +298,7 @@ implements org.apache.hadoop.hbase.coprocessor.MasterObserver, org.apache.hadoop
 <ul class="blockList">
 <li class="blockList">
 <h4>start</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.MyMasterObserver.html#line.808">start</a>(org.apache.hadoop.hbase.CoprocessorEnvironment&nbsp;env)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.MyMasterObserver.html#line.810">start</a>(org.apache.hadoop.hbase.CoprocessorEnvironment&nbsp;env)
            throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -314,7 +314,7 @@ implements org.apache.hadoop.hbase.coprocessor.MasterObserver, org.apache.hadoop
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterObserver</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;org.apache.hadoop.hbase.coprocessor.MasterObserver&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.MyMasterObserver.html#line.813">getMasterObserver</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;org.apache.hadoop.hbase.coprocessor.MasterObserver&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.MyMasterObserver.html#line.815">getMasterObserver</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getMasterObserver</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.coprocessor.MasterCoprocessor</code></dd>
@@ -327,7 +327,7 @@ implements org.apache.hadoop.hbase.coprocessor.MasterObserver, org.apache.hadoop
 <ul class="blockListLast">
 <li class="blockList">
 <h4>postBalance</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.MyMasterObserver.html#line.818">postBalance</a>(org.apache.hadoop.hbase.coprocessor.ObserverContext&lt;org.apache.hadoop.hbase.coprocessor.MasterCoprocessorEnvironment&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.MyMasterObserver.html#line.820">postBalance</a>(org.apache.hadoop.hbase.coprocessor.ObserverContext&lt;org.apache.hadoop.hbase.coprocessor.MasterCoprocessorEnvironment&gt;&nbsp;ctx,
                         <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.master.RegionPlan&gt;&nbsp;plans)
                  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>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html b/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html
index 514ad87..3f74159 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html
@@ -50,17 +50,17 @@
 <span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.Cell;<a name="line.42"></a>
 <span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.CellUtil;<a name="line.43"></a>
 <span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.HBaseConfiguration;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.ServerName;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.TableName;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.backup.BackupInfo;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.backup.BackupInfo.BackupState;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.backup.BackupRestoreConstants;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.backup.BackupType;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.backup.util.BackupUtils;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.client.Admin;<a name="line.55"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.ServerName;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.TableName;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.backup.BackupInfo;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.backup.BackupInfo.BackupState;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.backup.BackupRestoreConstants;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.backup.BackupType;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.backup.util.BackupUtils;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.client.Admin;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;<a name="line.55"></a>
 <span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.client.Connection;<a name="line.56"></a>
 <span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.client.Delete;<a name="line.57"></a>
 <span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.client.Get;<a name="line.58"></a>
@@ -70,1955 +70,2008 @@
 <span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.client.Scan;<a name="line.62"></a>
 <span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.client.SnapshotDescription;<a name="line.63"></a>
 <span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.client.Table;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.slf4j.Logger;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.slf4j.LoggerFactory;<a name="line.70"></a>
-<span class="sourceLineNo">071</span><a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.BackupProtos;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;<a name="line.73"></a>
-<span class="sourceLineNo">074</span><a name="line.74"></a>
-<span class="sourceLineNo">075</span>/**<a name="line.75"></a>
-<span class="sourceLineNo">076</span> * This class provides API to access backup system table&lt;br&gt;<a name="line.76"></a>
-<span class="sourceLineNo">077</span> *<a name="line.77"></a>
-<span class="sourceLineNo">078</span> * Backup system table schema:&lt;br&gt;<a name="line.78"></a>
-<span class="sourceLineNo">079</span> * &lt;p&gt;&lt;ul&gt;<a name="line.79"></a>
-<span class="sourceLineNo">080</span> * &lt;li&gt;1. Backup sessions rowkey= "session:"+backupId; value =serialized BackupInfo&lt;/li&gt;<a name="line.80"></a>
-<span class="sourceLineNo">081</span> * &lt;li&gt;2. Backup start code rowkey = "startcode:"+backupRoot; value = startcode&lt;/li&gt;<a name="line.81"></a>
-<span class="sourceLineNo">082</span> * &lt;li&gt;3. Incremental backup set rowkey="incrbackupset:"+backupRoot; value=[list of tables]&lt;/li&gt;<a name="line.82"></a>
-<span class="sourceLineNo">083</span> * &lt;li&gt;4. Table-RS-timestamp map rowkey="trslm:"+backupRoot+table_name;<a name="line.83"></a>
-<span class="sourceLineNo">084</span> * value = map[RS-&gt; last WAL timestamp]&lt;/li&gt;<a name="line.84"></a>
-<span class="sourceLineNo">085</span> * &lt;li&gt;5. RS - WAL ts map rowkey="rslogts:"+backupRoot +server; value = last WAL timestamp&lt;/li&gt;<a name="line.85"></a>
-<span class="sourceLineNo">086</span> * &lt;li&gt;6. WALs recorded rowkey="wals:"+WAL unique file name;<a name="line.86"></a>
-<span class="sourceLineNo">087</span> * value = backupId and full WAL file name&lt;/li&gt;<a name="line.87"></a>
-<span class="sourceLineNo">088</span> * &lt;/ul&gt;&lt;/p&gt;<a name="line.88"></a>
-<span class="sourceLineNo">089</span> */<a name="line.89"></a>
-<span class="sourceLineNo">090</span><a name="line.90"></a>
-<span class="sourceLineNo">091</span>@InterfaceAudience.Private<a name="line.91"></a>
-<span class="sourceLineNo">092</span>public final class BackupSystemTable implements Closeable {<a name="line.92"></a>
-<span class="sourceLineNo">093</span>  private static final Logger LOG = LoggerFactory.getLogger(BackupSystemTable.class);<a name="line.93"></a>
-<span class="sourceLineNo">094</span><a name="line.94"></a>
-<span class="sourceLineNo">095</span>  static class WALItem {<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    String backupId;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    String walFile;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>    String backupRoot;<a name="line.98"></a>
-<span class="sourceLineNo">099</span><a name="line.99"></a>
-<span class="sourceLineNo">100</span>    WALItem(String backupId, String walFile, String backupRoot) {<a name="line.100"></a>
-<span class="sourceLineNo">101</span>      this.backupId = backupId;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>      this.walFile = walFile;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>      this.backupRoot = backupRoot;<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>    public String getBackupId() {<a name="line.106"></a>
-<span class="sourceLineNo">107</span>      return backupId;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    }<a name="line.108"></a>
-<span class="sourceLineNo">109</span><a name="line.109"></a>
-<span class="sourceLineNo">110</span>    public String getWalFile() {<a name="line.110"></a>
-<span class="sourceLineNo">111</span>      return walFile;<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>    public String getBackupRoot() {<a name="line.114"></a>
-<span class="sourceLineNo">115</span>      return backupRoot;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    }<a name="line.116"></a>
-<span class="sourceLineNo">117</span><a name="line.117"></a>
-<span class="sourceLineNo">118</span>    @Override<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    public String toString() {<a name="line.119"></a>
-<span class="sourceLineNo">120</span>      return Path.SEPARATOR + backupRoot + Path.SEPARATOR + backupId + Path.SEPARATOR + walFile;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    }<a name="line.121"></a>
-<span class="sourceLineNo">122</span><a name="line.122"></a>
-<span class="sourceLineNo">123</span>  }<a name="line.123"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.client.TableDescriptor;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.client.TableDescriptorBuilder;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.slf4j.Logger;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.slf4j.LoggerFactory;<a name="line.72"></a>
+<span class="sourceLineNo">073</span><a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.BackupProtos;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;<a name="line.75"></a>
+<span class="sourceLineNo">076</span><a name="line.76"></a>
+<span class="sourceLineNo">077</span>/**<a name="line.77"></a>
+<span class="sourceLineNo">078</span> * This class provides API to access backup system table&lt;br&gt;<a name="line.78"></a>
+<span class="sourceLineNo">079</span> *<a name="line.79"></a>
+<span class="sourceLineNo">080</span> * Backup system table schema:&lt;br&gt;<a name="line.80"></a>
+<span class="sourceLineNo">081</span> * &lt;p&gt;&lt;ul&gt;<a name="line.81"></a>
+<span class="sourceLineNo">082</span> * &lt;li&gt;1. Backup sessions rowkey= "session:"+backupId; value =serialized BackupInfo&lt;/li&gt;<a name="line.82"></a>
+<span class="sourceLineNo">083</span> * &lt;li&gt;2. Backup start code rowkey = "startcode:"+backupRoot; value = startcode&lt;/li&gt;<a name="line.83"></a>
+<span class="sourceLineNo">084</span> * &lt;li&gt;3. Incremental backup set rowkey="incrbackupset:"+backupRoot; value=[list of tables]&lt;/li&gt;<a name="line.84"></a>
+<span class="sourceLineNo">085</span> * &lt;li&gt;4. Table-RS-timestamp map rowkey="trslm:"+backupRoot+table_name;<a name="line.85"></a>
+<span class="sourceLineNo">086</span> * value = map[RS-&gt; last WAL timestamp]&lt;/li&gt;<a name="line.86"></a>
+<span class="sourceLineNo">087</span> * &lt;li&gt;5. RS - WAL ts map rowkey="rslogts:"+backupRoot +server; value = last WAL timestamp&lt;/li&gt;<a name="line.87"></a>
+<span class="sourceLineNo">088</span> * &lt;li&gt;6. WALs recorded rowkey="wals:"+WAL unique file name;<a name="line.88"></a>
+<span class="sourceLineNo">089</span> * value = backupId and full WAL file name&lt;/li&gt;<a name="line.89"></a>
+<span class="sourceLineNo">090</span> * &lt;/ul&gt;&lt;/p&gt;<a name="line.90"></a>
+<span class="sourceLineNo">091</span> */<a name="line.91"></a>
+<span class="sourceLineNo">092</span><a name="line.92"></a>
+<span class="sourceLineNo">093</span>@InterfaceAudience.Private<a name="line.93"></a>
+<span class="sourceLineNo">094</span>public final class BackupSystemTable implements Closeable {<a name="line.94"></a>
+<span class="sourceLineNo">095</span>  private static final Logger LOG = LoggerFactory.getLogger(BackupSystemTable.class);<a name="line.95"></a>
+<span class="sourceLineNo">096</span><a name="line.96"></a>
+<span class="sourceLineNo">097</span>  static class WALItem {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    String backupId;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    String walFile;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    String backupRoot;<a name="line.100"></a>
+<span class="sourceLineNo">101</span><a name="line.101"></a>
+<span class="sourceLineNo">102</span>    WALItem(String backupId, String walFile, String backupRoot) {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>      this.backupId = backupId;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>      this.walFile = walFile;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>      this.backupRoot = backupRoot;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    }<a name="line.106"></a>
+<span class="sourceLineNo">107</span><a name="line.107"></a>
+<span class="sourceLineNo">108</span>    public String getBackupId() {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>      return backupId;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    }<a name="line.110"></a>
+<span class="sourceLineNo">111</span><a name="line.111"></a>
+<span class="sourceLineNo">112</span>    public String getWalFile() {<a name="line.112"></a>
+<span class="sourceLineNo">113</span>      return walFile;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    }<a name="line.114"></a>
+<span class="sourceLineNo">115</span><a name="line.115"></a>
+<span class="sourceLineNo">116</span>    public String getBackupRoot() {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>      return backupRoot;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    }<a name="line.118"></a>
+<span class="sourceLineNo">119</span><a name="line.119"></a>
+<span class="sourceLineNo">120</span>    @Override<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    public String toString() {<a name="line.121"></a>
+<span class="sourceLineNo">122</span>      return Path.SEPARATOR + backupRoot + Path.SEPARATOR + backupId + Path.SEPARATOR + walFile;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    }<a name="line.123"></a>
 <span class="sourceLineNo">124</span><a name="line.124"></a>
-<span class="sourceLineNo">125</span>  private TableName tableName;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>  /**<a name="line.126"></a>
-<span class="sourceLineNo">127</span>   * Stores backup sessions (contexts)<a name="line.127"></a>
-<span class="sourceLineNo">128</span>   */<a name="line.128"></a>
-<span class="sourceLineNo">129</span>  final static byte[] SESSIONS_FAMILY = "session".getBytes();<a name="line.129"></a>
-<span class="sourceLineNo">130</span>  /**<a name="line.130"></a>
-<span class="sourceLineNo">131</span>   * Stores other meta<a name="line.131"></a>
-<span class="sourceLineNo">132</span>   */<a name="line.132"></a>
-<span class="sourceLineNo">133</span>  final static byte[] META_FAMILY = "meta".getBytes();<a name="line.133"></a>
-<span class="sourceLineNo">134</span>  final static byte[] BULK_LOAD_FAMILY = "bulk".getBytes();<a name="line.134"></a>
-<span class="sourceLineNo">135</span>  /**<a name="line.135"></a>
-<span class="sourceLineNo">136</span>   * Connection to HBase cluster, shared among all instances<a name="line.136"></a>
-<span class="sourceLineNo">137</span>   */<a name="line.137"></a>
-<span class="sourceLineNo">138</span>  private final Connection connection;<a name="line.138"></a>
+<span class="sourceLineNo">125</span>  }<a name="line.125"></a>
+<span class="sourceLineNo">126</span><a name="line.126"></a>
+<span class="sourceLineNo">127</span>  /**<a name="line.127"></a>
+<span class="sourceLineNo">128</span>   * Backup system table (main) name<a name="line.128"></a>
+<span class="sourceLineNo">129</span>   */<a name="line.129"></a>
+<span class="sourceLineNo">130</span>  private TableName tableName;<a name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span>  /**<a name="line.132"></a>
+<span class="sourceLineNo">133</span>   * Backup System table name for bulk loaded files.<a name="line.133"></a>
+<span class="sourceLineNo">134</span>   * We keep all bulk loaded file references in a separate table<a name="line.134"></a>
+<span class="sourceLineNo">135</span>   * because we have to isolate general backup operations: create, merge etc<a name="line.135"></a>
+<span class="sourceLineNo">136</span>   * from activity of RegionObserver, which controls process of a bulk loading<a name="line.136"></a>
+<span class="sourceLineNo">137</span>   * {@link org.apache.hadoop.hbase.backup.BackupObserver}<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>  private final static String BACKUP_INFO_PREFIX = "session:";<a name="line.140"></a>
-<span class="sourceLineNo">141</span>  private final static String START_CODE_ROW = "startcode:";<a name="line.141"></a>
-<span class="sourceLineNo">142</span>  private final static byte[] ACTIVE_SESSION_ROW = "activesession:".getBytes();<a name="line.142"></a>
-<span class="sourceLineNo">143</span>  private final static byte[] ACTIVE_SESSION_COL = "c".getBytes();<a name="line.143"></a>
-<span class="sourceLineNo">144</span><a name="line.144"></a>
-<span class="sourceLineNo">145</span>  private final static byte[] ACTIVE_SESSION_YES = "yes".getBytes();<a name="line.145"></a>
-<span class="sourceLineNo">146</span>  private final static byte[] ACTIVE_SESSION_NO = "no".getBytes();<a name="line.146"></a>
-<span class="sourceLineNo">147</span><a name="line.147"></a>
-<span class="sourceLineNo">148</span>  private final static String INCR_BACKUP_SET = "incrbackupset:";<a name="line.148"></a>
-<span class="sourceLineNo">149</span>  private final static String TABLE_RS_LOG_MAP_PREFIX = "trslm:";<a name="line.149"></a>
-<span class="sourceLineNo">150</span>  private final static String RS_LOG_TS_PREFIX = "rslogts:";<a name="line.150"></a>
-<span class="sourceLineNo">151</span><a name="line.151"></a>
-<span class="sourceLineNo">152</span>  private final static String BULK_LOAD_PREFIX = "bulk:";<a name="line.152"></a>
-<span class="sourceLineNo">153</span>  private final static byte[] BULK_LOAD_PREFIX_BYTES = BULK_LOAD_PREFIX.getBytes();<a name="line.153"></a>
-<span class="sourceLineNo">154</span>  private final static byte[] DELETE_OP_ROW = "delete_op_row".getBytes();<a name="line.154"></a>
-<span class="sourceLineNo">155</span>  private final static byte[] MERGE_OP_ROW = "merge_op_row".getBytes();<a name="line.155"></a>
-<span class="sourceLineNo">156</span><a name="line.156"></a>
-<span class="sourceLineNo">157</span>  final static byte[] TBL_COL = Bytes.toBytes("tbl");<a name="line.157"></a>
-<span class="sourceLineNo">158</span>  final static byte[] FAM_COL = Bytes.toBytes("fam");<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  final static byte[] PATH_COL = Bytes.toBytes("path");<a name="line.159"></a>
-<span class="sourceLineNo">160</span>  final static byte[] STATE_COL = Bytes.toBytes("state");<a name="line.160"></a>
-<span class="sourceLineNo">161</span>  // the two states a bulk loaded file can be<a name="line.161"></a>
-<span class="sourceLineNo">162</span>  final static byte[] BL_PREPARE = Bytes.toBytes("R");<a name="line.162"></a>
-<span class="sourceLineNo">163</span>  final static byte[] BL_COMMIT = Bytes.toBytes("D");<a name="line.163"></a>
-<span class="sourceLineNo">164</span><a name="line.164"></a>
-<span class="sourceLineNo">165</span>  private final static String WALS_PREFIX = "wals:";<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  private final static String SET_KEY_PREFIX = "backupset:";<a name="line.166"></a>
+<span class="sourceLineNo">140</span>  private TableName bulkLoadTableName;<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>   * Stores backup sessions (contexts)<a name="line.143"></a>
+<span class="sourceLineNo">144</span>   */<a name="line.144"></a>
+<span class="sourceLineNo">145</span>  final static byte[] SESSIONS_FAMILY = "session".getBytes();<a name="line.145"></a>
+<span class="sourceLineNo">146</span>  /**<a name="line.146"></a>
+<span class="sourceLineNo">147</span>   * Stores other meta<a name="line.147"></a>
+<span class="sourceLineNo">148</span>   */<a name="line.148"></a>
+<span class="sourceLineNo">149</span>  final static byte[] META_FAMILY = "meta".getBytes();<a name="line.149"></a>
+<span class="sourceLineNo">150</span>  final static byte[] BULK_LOAD_FAMILY = "bulk".getBytes();<a name="line.150"></a>
+<span class="sourceLineNo">151</span>  /**<a name="line.151"></a>
+<span class="sourceLineNo">152</span>   * Connection to HBase cluster, shared among all instances<a name="line.152"></a>
+<span class="sourceLineNo">153</span>   */<a name="line.153"></a>
+<span class="sourceLineNo">154</span>  private final Connection connection;<a name="line.154"></a>
+<span class="sourceLineNo">155</span><a name="line.155"></a>
+<span class="sourceLineNo">156</span>  private final static String BACKUP_INFO_PREFIX = "session:";<a name="line.156"></a>
+<span class="sourceLineNo">157</span>  private final static String START_CODE_ROW = "startcode:";<a name="line.157"></a>
+<span class="sourceLineNo">158</span>  private final static byte[] ACTIVE_SESSION_ROW = "activesession:".getBytes();<a name="line.158"></a>
+<span class="sourceLineNo">159</span>  private final static byte[] ACTIVE_SESSION_COL = "c".getBytes();<a name="line.159"></a>
+<span class="sourceLineNo">160</span><a name="line.160"></a>
+<span class="sourceLineNo">161</span>  private final static byte[] ACTIVE_SESSION_YES = "yes".getBytes();<a name="line.161"></a>
+<span class="sourceLineNo">162</span>  private final static byte[] ACTIVE_SESSION_NO = "no".getBytes();<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>  private final static String INCR_BACKUP_SET = "incrbackupset:";<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  private final static String TABLE_RS_LOG_MAP_PREFIX = "trslm:";<a name="line.165"></a>
+<span class="sourceLineNo">166</span>  private final static String RS_LOG_TS_PREFIX = "rslogts:";<a name="line.166"></a>
 <span class="sourceLineNo">167</span><a name="line.167"></a>
-<span class="sourceLineNo">168</span>  // separator between BULK_LOAD_PREFIX and ordinals<a name="line.168"></a>
-<span class="sourceLineNo">169</span>  protected final static String BLK_LD_DELIM = ":";<a name="line.169"></a>
-<span class="sourceLineNo">170</span>  private final static byte[] EMPTY_VALUE = new byte[] {};<a name="line.170"></a>
-<span class="sourceLineNo">171</span><a name="line.171"></a>
-<span class="sourceLineNo">172</span>  // Safe delimiter in a string<a name="line.172"></a>
-<span class="sourceLineNo">173</span>  private final static String NULL = "\u0000";<a name="line.173"></a>
-<span class="sourceLineNo">174</span><a name="line.174"></a>
-<span class="sourceLineNo">175</span>  public BackupSystemTable(Connection conn) throws IOException {<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    this.connection = conn;<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    tableName = BackupSystemTable.getTableName(conn.getConfiguration());<a name="line.177"></a>
-<span class="sourceLineNo">178</span>    checkSystemTable();<a name="line.178"></a>
-<span class="sourceLineNo">179</span>  }<a name="line.179"></a>
+<span class="sourceLineNo">168</span>  private final static String BULK_LOAD_PREFIX = "bulk:";<a name="line.168"></a>
+<span class="sourceLineNo">169</span>  private final static byte[] BULK_LOAD_PREFIX_BYTES = BULK_LOAD_PREFIX.getBytes();<a name="line.169"></a>
+<span class="sourceLineNo">170</span>  private final static byte[] DELETE_OP_ROW = "delete_op_row".getBytes();<a name="line.170"></a>
+<span class="sourceLineNo">171</span>  private final static byte[] MERGE_OP_ROW = "merge_op_row".getBytes();<a name="line.171"></a>
+<span class="sourceLineNo">172</span><a name="line.172"></a>
+<span class="sourceLineNo">173</span>  final static byte[] TBL_COL = Bytes.toBytes("tbl");<a name="line.173"></a>
+<span class="sourceLineNo">174</span>  final static byte[] FAM_COL = Bytes.toBytes("fam");<a name="line.174"></a>
+<span class="sourceLineNo">175</span>  final static byte[] PATH_COL = Bytes.toBytes("path");<a name="line.175"></a>
+<span class="sourceLineNo">176</span>  final static byte[] STATE_COL = Bytes.toBytes("state");<a name="line.176"></a>
+<span class="sourceLineNo">177</span>  // the two states a bulk loaded file can be<a name="line.177"></a>
+<span class="sourceLineNo">178</span>  final static byte[] BL_PREPARE = Bytes.toBytes("R");<a name="line.178"></a>
+<span class="sourceLineNo">179</span>  final static byte[] BL_COMMIT = Bytes.toBytes("D");<a name="line.179"></a>
 <span class="sourceLineNo">180</span><a name="line.180"></a>
-<span class="sourceLineNo">181</span>  private void checkSystemTable() throws IOException {<a name="line.181"></a>
-<span class="sourceLineNo">182</span>    try (Admin admin = connection.getAdmin()) {<a name="line.182"></a>
-<span class="sourceLineNo">183</span>      verifyNamespaceExists(admin);<a name="line.183"></a>
-<span class="sourceLineNo">184</span><a name="line.184"></a>
-<span class="sourceLineNo">185</span>      if (!admin.tableExists(tableName)) {<a name="line.185"></a>
-<span class="sourceLineNo">186</span>        HTableDescriptor backupHTD =<a name="line.186"></a>
-<span class="sourceLineNo">187</span>            BackupSystemTable.getSystemTableDescriptor(connection.getConfiguration());<a name="line.187"></a>
-<span class="sourceLineNo">188</span>        admin.createTable(backupHTD);<a name="line.188"></a>
-<span class="sourceLineNo">189</span>      }<a name="line.189"></a>
-<span class="sourceLineNo">190</span>      waitForSystemTable(admin);<a name="line.190"></a>
-<span class="sourceLineNo">191</span>    }<a name="line.191"></a>
-<span class="sourceLineNo">192</span>  }<a name="line.192"></a>
-<span class="sourceLineNo">193</span><a name="line.193"></a>
-<span class="sourceLineNo">194</span>  private void verifyNamespaceExists(Admin admin) throws IOException {<a name="line.194"></a>
-<span class="sourceLineNo">195</span>    String namespaceName = tableName.getNamespaceAsString();<a name="line.195"></a>
-<span class="sourceLineNo">196</span>    NamespaceDescriptor ns = NamespaceDescriptor.create(namespaceName).build();<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    NamespaceDescriptor[] list = admin.listNamespaceDescriptors();<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    boolean exists = false;<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    for (NamespaceDescriptor nsd : list) {<a name="line.199"></a>
-<span class="sourceLineNo">200</span>      if (nsd.getName().equals(ns.getName())) {<a name="line.200"></a>
-<span class="sourceLineNo">201</span>        exists = true;<a name="line.201"></a>
-<span class="sourceLineNo">202</span>        break;<a name="line.202"></a>
-<span class="sourceLineNo">203</span>      }<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    }<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    if (!exists) {<a name="line.205"></a>
-<span class="sourceLineNo">206</span>      admin.createNamespace(ns);<a name="line.206"></a>
-<span class="sourceLineNo">207</span>    }<a name="line.207"></a>
-<span class="sourceLineNo">208</span>  }<a name="line.208"></a>
-<span class="sourceLineNo">209</span><a name="line.209"></a>
-<span class="sourceLineNo">210</span>  private void waitForSystemTable(Admin admin) throws IOException {<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    long TIMEOUT = 60000;<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    long startTime = EnvironmentEdgeManager.currentTime();<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    while (!admin.tableExists(tableName) || !admin.isTableAvailable(tableName)) {<a name="line.213"></a>
-<span class="sourceLineNo">214</span>      try {<a name="line.214"></a>
-<span class="sourceLineNo">215</span>        Thread.sleep(100);<a name="line.215"></a>
-<span class="sourceLineNo">216</span>      } catch (InterruptedException e) {<a name="line.216"></a>
-<span class="sourceLineNo">217</span>      }<a name="line.217"></a>
-<span class="sourceLineNo">218</span>      if (EnvironmentEdgeManager.currentTime() - startTime &gt; TIMEOUT) {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>        throw new IOException("Failed to create backup system table after " + TIMEOUT + "ms");<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>    LOG.debug("Backup table exists and available");<a name="line.222"></a>
-<span class="sourceLineNo">223</span><a name="line.223"></a>
-<span class="sourceLineNo">224</span>  }<a name="line.224"></a>
-<span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>  @Override<a name="line.226"></a>
-<span class="sourceLineNo">227</span>  public void close() {<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    // do nothing<a name="line.228"></a>
-<span class="sourceLineNo">229</span>  }<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span>  /**<a name="line.231"></a>
-<span class="sourceLineNo">232</span>   * Updates status (state) of a backup session in backup system table table<a name="line.232"></a>
-<span class="sourceLineNo">233</span>   * @param info backup info<a name="line.233"></a>
-<span class="sourceLineNo">234</span>   * @throws IOException exception<a name="line.234"></a>
-<span class="sourceLineNo">235</span>   */<a name="line.235"></a>
-<span class="sourceLineNo">236</span>  public void updateBackupInfo(BackupInfo info) throws IOException {<a name="line.236"></a>
-<span class="sourceLineNo">237</span><a name="line.237"></a>
-<span class="sourceLineNo">238</span>    if (LOG.isTraceEnabled()) {<a name="line.238"></a>
-<span class="sourceLineNo">239</span>      LOG.trace("update backup status in backup system table for: " + info.getBackupId()<a name="line.239"></a>
-<span class="sourceLineNo">240</span>          + " set status=" + info.getState());<a name="line.240"></a>
-<span class="sourceLineNo">241</span>    }<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    try (Table table = connection.getTable(tableName)) {<a name="line.242"></a>
-<span class="sourceLineNo">243</span>      Put put = createPutForBackupInfo(info);<a name="line.243"></a>
-<span class="sourceLineNo">244</span>      table.put(put);<a name="line.244"></a>
-<span class="sourceLineNo">245</span>    }<a name="line.245"></a>
-<span class="sourceLineNo">246</span>  }<a name="line.246"></a>
-<span class="sourceLineNo">247</span><a name="line.247"></a>
-<span class="sourceLineNo">248</span>  /*<a name="line.248"></a>
-<span class="sourceLineNo">249</span>   * @param backupId the backup Id<a name="line.249"></a>
-<span class="sourceLineNo">250</span>   * @return Map of rows to path of bulk loaded hfile<a name="line.250"></a>
-<span class="sourceLineNo">251</span>   */<a name="line.251"></a>
-<span class="sourceLineNo">252</span>  Map&lt;byte[], String&gt; readBulkLoadedFiles(String backupId) throws IOException {<a name="line.252"></a>
-<span class="sourceLineNo">253</span>    Scan scan = BackupSystemTable.createScanForBulkLoadedFiles(backupId);<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    try (Table table = connection.getTable(tableName);<a name="line.254"></a>
-<span class="sourceLineNo">255</span>        ResultScanner scanner = table.getScanner(scan)) {<a name="line.255"></a>
-<span class="sourceLineNo">256</span>      Result res = null;<a name="line.256"></a>
-<span class="sourceLineNo">257</span>      Map&lt;byte[], String&gt; map = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      while ((res = scanner.next()) != null) {<a name="line.258"></a>
-<span class="sourceLineNo">259</span>        res.advance();<a name="line.259"></a>
-<span class="sourceLineNo">260</span>        byte[] row = CellUtil.cloneRow(res.listCells().get(0));<a name="line.260"></a>
-<span class="sourceLineNo">261</span>        for (Cell cell : res.listCells()) {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>          if (CellUtil.compareQualifiers(cell, BackupSystemTable.PATH_COL, 0,<a name="line.262"></a>
-<span class="sourceLineNo">263</span>            BackupSystemTable.PATH_COL.length) == 0) {<a name="line.263"></a>
-<span class="sourceLineNo">264</span>            map.put(row, Bytes.toString(CellUtil.cloneValue(cell)));<a name="line.264"></a>
-<span class="sourceLineNo">265</span>          }<a name="line.265"></a>
-<span class="sourceLineNo">266</span>        }<a name="line.266"></a>
-<span class="sourceLineNo">267</span>      }<a name="line.267"></a>
-<span class="sourceLineNo">268</span>      return map;<a name="line.268"></a>
-<span class="sourceLineNo">269</span>    }<a name="line.269"></a>
-<span class="sourceLineNo">270</span>  }<a name="line.270"></a>
-<span class="sourceLineNo">271</span><a name="line.271"></a>
-<span class="sourceLineNo">272</span>  /*<a name="line.272"></a>
-<span class="sourceLineNo">273</span>   * Used during restore<a name="line.273"></a>
-<span class="sourceLineNo">274</span>   * @param backupId the backup Id<a name="line.274"></a>
-<span class="sourceLineNo">275</span>   * @param sTableList List of tables<a name="line.275"></a>
-<span class="sourceLineNo">276</span>   * @return array of Map of family to List of Paths<a name="line.276"></a>
+<span class="sourceLineNo">181</span>  private final static String WALS_PREFIX = "wals:";<a name="line.181"></a>
+<span class="sourceLineNo">182</span>  private final static String SET_KEY_PREFIX = "backupset:";<a name="line.182"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
+<span class="sourceLineNo">184</span>  // separator between BULK_LOAD_PREFIX and ordinals<a name="line.184"></a>
+<span class="sourceLineNo">185</span>  protected final static String BLK_LD_DELIM = ":";<a name="line.185"></a>
+<span class="sourceLineNo">186</span>  private final static byte[] EMPTY_VALUE = new byte[] {};<a name="line.186"></a>
+<span class="sourceLineNo">187</span><a name="line.187"></a>
+<span class="sourceLineNo">188</span>  // Safe delimiter in a string<a name="line.188"></a>
+<span class="sourceLineNo">189</span>  private final static String NULL = "\u0000";<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>  public BackupSystemTable(Connection conn) throws IOException {<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    this.connection = conn;<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    Configuration conf = this.connection.getConfiguration();<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    tableName = BackupSystemTable.getTableName(conf);<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    bulkLoadTableName = BackupSystemTable.getTableNameForBulkLoadedData(conf);<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    checkSystemTable();<a name="line.196"></a>
+<span class="sourceLineNo">197</span>  }<a name="line.197"></a>
+<span class="sourceLineNo">198</span><a name="line.198"></a>
+<span class="sourceLineNo">199</span>  private void checkSystemTable() throws IOException {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    try (Admin admin = connection.getAdmin()) {<a name="line.200"></a>
+<span class="sourceLineNo">201</span>      verifyNamespaceExists(admin);<a name="line.201"></a>
+<span class="sourceLineNo">202</span>      Configuration conf = connection.getConfiguration();<a name="line.202"></a>
+<span class="sourceLineNo">203</span>      if (!admin.tableExists(tableName)) {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>        TableDescriptor backupHTD =<a name="line.204"></a>
+<span class="sourceLineNo">205</span>            BackupSystemTable.getSystemTableDescriptor(conf);<a name="line.205"></a>
+<span class="sourceLineNo">206</span>        admin.createTable(backupHTD);<a name="line.206"></a>
+<span class="sourceLineNo">207</span>      }<a name="line.207"></a>
+<span class="sourceLineNo">208</span>      if (!admin.tableExists(bulkLoadTableName)) {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>        TableDescriptor blHTD =<a name="line.209"></a>
+<span class="sourceLineNo">210</span>            BackupSystemTable.getSystemTableForBulkLoadedDataDescriptor(conf);<a name="line.210"></a>
+<span class="sourceLineNo">211</span>        admin.createTable(blHTD);<a name="line.211"></a>
+<span class="sourceLineNo">212</span>      }<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      waitForSystemTable(admin, tableName);<a name="line.213"></a>
+<span class="sourceLineNo">214</span>      waitForSystemTable(admin, bulkLoadTableName);<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>  }<a name="line.217"></a>
+<span class="sourceLineNo">218</span><a name="line.218"></a>
+<span class="sourceLineNo">219</span>  private void verifyNamespaceExists(Admin admin) throws IOException {<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    String namespaceName = tableName.getNamespaceAsString();<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    NamespaceDescriptor ns = NamespaceDescriptor.create(namespaceName).build();<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    NamespaceDescriptor[] list = admin.listNamespaceDescriptors();<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    boolean exists = false;<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    for (NamespaceDescriptor nsd : list) {<a name="line.224"></a>
+<span class="sourceLineNo">225</span>      if (nsd.getName().equals(ns.getName())) {<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        exists = true;<a name="line.226"></a>
+<span class="sourceLineNo">227</span>        break;<a name="line.227"></a>
+<span class="sourceLineNo">228</span>      }<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    }<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    if (!exists) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>      admin.createNamespace(ns);<a name="line.231"></a>
+<span class="sourceLineNo">232</span>    }<a name="line.232"></a>
+<span class="sourceLineNo">233</span>  }<a name="line.233"></a>
+<span class="sourceLineNo">234</span><a name="line.234"></a>
+<span class="sourceLineNo">235</span>  private void waitForSystemTable(Admin admin, TableName tableName) throws IOException {<a name="line.235"></a>
+<span class="sourceLineNo">236</span>    long TIMEOUT = 60000;<a name="line.236"></a>
+<span class="sourceLineNo">237</span>    long startTime = EnvironmentEdgeManager.currentTime();<a name="line.237"></a>
+<span class="sourceLineNo">238</span>    while (!admin.tableExists(tableName) || !admin.isTableAvailable(tableName)) {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>      try {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>        Thread.sleep(100);<a name="line.240"></a>
+<span class="sourceLineNo">241</span>      } catch (InterruptedException e) {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      }<a name="line.242"></a>
+<span class="sourceLineNo">243</span>      if (EnvironmentEdgeManager.currentTime() - startTime &gt; TIMEOUT) {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>        throw new IOException("Failed to create backup system table "+<a name="line.244"></a>
+<span class="sourceLineNo">245</span>      tableName +" after " + TIMEOUT + "ms");<a name="line.245"></a>
+<span class="sourceLineNo">246</span>      }<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    }<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    LOG.debug("Backup table "+tableName+" exists and available");<a name="line.248"></a>
+<span class="sourceLineNo">249</span><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 void close() {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>    // do nothing<a name="line.254"></a>
+<span class="sourceLineNo">255</span>  }<a name="line.255"></a>
+<span class="sourceLineNo">256</span><a name="line.256"></a>
+<span class="sourceLineNo">257</span>  /**<a name="line.257"></a>
+<span class="sourceLineNo">258</span>   * Updates status (state) of a backup session in backup system table table<a name="line.258"></a>
+<span class="sourceLineNo">259</span>   * @param info backup info<a name="line.259"></a>
+<span class="sourceLineNo">260</span>   * @throws IOException exception<a name="line.260"></a>
+<span class="sourceLineNo">261</span>   */<a name="line.261"></a>
+<span class="sourceLineNo">262</span>  public void updateBackupInfo(BackupInfo info) throws IOException {<a name="line.262"></a>
+<span class="sourceLineNo">263</span><a name="line.263"></a>
+<span class="sourceLineNo">264</span>    if (LOG.isTraceEnabled()) {<a name="line.264"></a>
+<span class="sourceLineNo">265</span>      LOG.trace("update backup status in backup system table for: " + info.getBackupId()<a name="line.265"></a>
+<span class="sourceLineNo">266</span>          + " set status=" + info.getState());<a name="line.266"></a>
+<span class="sourceLineNo">267</span>    }<a name="line.267"></a>
+<span class="sourceLineNo">268</span>    try (Table table = connection.getTable(tableName)) {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>      Put put = createPutForBackupInfo(info);<a name="line.269"></a>
+<span class="sourceLineNo">270</span>      table.put(put);<a name="line.270"></a>
+<span class="sourceLineNo">271</span>    }<a name="line.271"></a>
+<span class="sourceLineNo">272</span>  }<a name="line.272"></a>
+<span class="sourceLineNo">273</span><a name="line.273"></a>
+<span class="sourceLineNo">274</span>  /*<a name="line.274"></a>
+<span class="sourceLineNo">275</span>   * @param backupId the backup Id<a name="line.275"></a>
+<span class="sourceLineNo">276</span>   * @return Map of rows to path of bulk loaded hfile<a name="line.276"></a>
 <span class="sourceLineNo">277</span>   */<a name="line.277"></a>
-<span class="sourceLineNo">278</span>  public Map&lt;byte[], List&lt;Path&gt;&gt;[] readBulkLoadedFiles(String backupId, List&lt;TableName&gt; sTableList)<a name="line.278"></a>
-<span class="sourceLineNo">279</span>      throws IOException {<a name="line.279"></a>
-<span class="sourceLineNo">280</span>    Scan scan = BackupSystemTable.createScanForBulkLoadedFiles(backupId);<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    Map&lt;byte[], List&lt;Path&gt;&gt;[] mapForSrc = new Map[sTableList == null ? 1 : sTableList.size()];<a name="line.281"></a>
-<span class="sourceLineNo">282</span>    try (Table table = connection.getTable(tableName);<a name="line.282"></a>
-<span class="sourceLineNo">283</span>        ResultScanner scanner = table.getScanner(scan)) {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>      Result res = null;<a name="line.284"></a>
-<span class="sourceLineNo">285</span>      while ((res = scanner.next()) != null) {<a name="line.285"></a>
-<span class="sourceLineNo">286</span>        res.advance();<a name="line.286"></a>
-<span class="sourceLineNo">287</span>        TableName tbl = null;<a name="line.287"></a>
-<span class="sourceLineNo">288</span>        byte[] fam = null;<a name="line.288"></a>
-<span class="sourceLineNo">289</span>        String path = null;<a name="line.289"></a>
-<span class="sourceLineNo">290</span>        for (Cell cell : res.listCells()) {<a name="line.290"></a>
-<span class="sourceLineNo">291</span>          if (CellUtil.compareQualifiers(cell, BackupSystemTable.TBL_COL, 0,<a name="line.291"></a>
-<span class="sourceLineNo">292</span>            BackupSystemTable.TBL_COL.length) == 0) {<a name="line.292"></a>
-<span class="sourceLineNo">293</span>            tbl = TableName.valueOf(CellUtil.cloneValue(cell));<a name="line.293"></a>
-<span class="sourceLineNo">294</span>          } else if (CellUtil.compareQualifiers(cell, BackupSystemTable.FAM_COL, 0,<a name="line.294"></a>
-<span class="sourceLineNo">295</span>            BackupSystemTable.FAM_COL.length) == 0) {<a name="line.295"></a>
-<span class="sourceLineNo">296</span>            fam = CellUtil.cloneValue(cell);<a name="line.296"></a>
-<span class="sourceLineNo">297</span>          } else if (CellUtil.compareQualifiers(cell, BackupSystemTable.PATH_COL, 0,<a name="line.297"></a>
-<span class="sourceLineNo">298</span>            BackupSystemTable.PATH_COL.length) == 0) {<a name="line.298"></a>
-<span class="sourceLineNo">299</span>            path = Bytes.toString(CellUtil.cloneValue(cell));<a name="line.299"></a>
-<span class="sourceLineNo">300</span>          }<a name="line.300"></a>
-<span class="sourceLineNo">301</span>        }<a name="line.301"></a>
-<span class="sourceLineNo">302</span>        int srcIdx = IncrementalTableBackupClient.getIndex(tbl, sTableList);<a name="line.302"></a>
-<span class="sourceLineNo">303</span>        if (srcIdx == -1) {<a name="line.303"></a>
-<span class="sourceLineNo">304</span>          // the table is not among the query<a name="line.304"></a>
-<span class="sourceLineNo">305</span>          continue;<a name="line.305"></a>
-<span class="sourceLineNo">306</span>        }<a name="line.306"></a>
-<span class="sourceLineNo">307</span>        if (mapForSrc[srcIdx] == null) {<a name="line.307"></a>
-<span class="sourceLineNo">308</span>          mapForSrc[srcIdx] = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.308"></a>
-<span class="sourceLineNo">309</span>        }<a name="line.309"></a>
-<span class="sourceLineNo">310</span>        List&lt;Path&gt; files;<a name="line.310"></a>
-<span class="sourceLineNo">311</span>        if (!mapForSrc[srcIdx].containsKey(fam)) {<a name="line.311"></a>
-<span class="sourceLineNo">312</span>          files = new ArrayList&lt;Path&gt;();<a name="line.312"></a>
-<span class="sourceLineNo">313</span>          mapForSrc[srcIdx].put(fam, files);<a name="line.313"></a>
-<span class="sourceLineNo">314</span>        } else {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>          files = mapForSrc[srcIdx].get(fam);<a name="line.315"></a>
-<span class="sourceLineNo">316</span>        }<a name="line.316"></a>
-<span class="sourceLineNo">317</span>        files.add(new Path(path));<a name="line.317"></a>
-<span class="sourceLineNo">318</span>        if (LOG.isDebugEnabled()) {<a name="line.318"></a>
-<span class="sourceLineNo">319</span>          LOG.debug("found bulk loaded file : " + tbl + " " + Bytes.toString(fam) + " " + path);<a name="line.319"></a>
-<span class="sourceLineNo">320</span>        }<a name="line.320"></a>
-<span class="sourceLineNo">321</span>      }<a name="line.321"></a>
-<span class="sourceLineNo">322</span><a name="line.322"></a>
-<span class="sourceLineNo">323</span>      return mapForSrc;<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    }<a name="line.324"></a>
-<span class="sourceLineNo">325</span>  }<a name="line.325"></a>
-<span class="sourceLineNo">326</span><a name="line.326"></a>
-<span class="sourceLineNo">327</span>  /*<a name="line.327"></a>
-<span class="sourceLineNo">328</span>   * @param map Map of row keys to path of bulk loaded hfile<a name="line.328"></a>
-<span class="sourceLineNo">329</span>   */<a name="line.329"></a>
-<span class="sourceLineNo">330</span>  void deleteBulkLoadedFiles(Map&lt;byte[], String&gt; map) throws IOException {<a name="line.330"></a>
-<span class="sourceLineNo">331</span>    try (Table table = connection.getTable(tableName)) {<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      List&lt;Delete&gt; dels = new ArrayList&lt;&gt;();<a name="line.332"></a>
-<span class="sourceLineNo">333</span>      for (byte[] row : map.keySet()) {<a name="line.333"></a>
-<span class="sourceLineNo">334</span>        dels.add(new Delete(row).addFamily(BackupSystemTable.META_FAMILY));<a name="line.334"></a>
-<span class="sourceLineNo">335</span>      }<a name="line.335"></a>
-<span class="sourceLineNo">336</span>      table.delete(dels);<a name="line.336"></a>
-<span class="sourceLineNo">337</span>    }<a name="line.337"></a>
-<span class="sourceLineNo">338</span>  }<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span>  /**<a name="line.340"></a>
-<span class="sourceLineNo">341</span>   * Deletes backup status from backup system table table<a name="line.341"></a>
-<span class="sourceLineNo">342</span>   * @param backupId backup id<a name="line.342"></a>
-<span class="sourceLineNo">343</span>   * @throws IOException exception<a name="line.343"></a>
-<span class="sourceLineNo">344</span>   */<a name="line.344"></a>
-<span class="sourceLineNo">345</span><a name="line.345"></a>
-<span class="sourceLineNo">346</span>  public void deleteBackupInfo(String backupId) throws IOException {<a name="line.346"></a>
-<span class="sourceLineNo">347</span><a name="line.347"></a>
-<span class="sourceLineNo">348</span>    if (LOG.isTraceEnabled()) {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>      LOG.trace("delete backup status in backup system table for " + backupId);<a name="line.349"></a>
+<span class="sourceLineNo">278</span>  Map&lt;byte[], String&gt; readBulkLoadedFiles(String backupId) throws IOException {<a name="line.278"></a>
+<span class="sourceLineNo">279</span>    Scan scan = BackupSystemTable.createScanForBulkLoadedFiles(backupId);<a name="line.279"></a>
+<span class="sourceLineNo">280</span>    try (Table table = connection.getTable(bulkLoadTableName);<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        ResultScanner scanner = table.getScanner(scan)) {<a name="line.281"></a>
+<span class="sourceLineNo">282</span>      Result res = null;<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      Map&lt;byte[], String&gt; map = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      while ((res = scanner.next()) != null) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>        res.advance();<a name="line.285"></a>
+<span class="sourceLineNo">286</span>        byte[] row = CellUtil.cloneRow(res.listCells().get(0));<a name="line.286"></a>
+<span class="sourceLineNo">287</span>        for (Cell cell : res.listCells()) {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>          if (CellUtil.compareQualifiers(cell, BackupSystemTable.PATH_COL, 0,<a name="line.288"></a>
+<span class="sourceLineNo">289</span>            BackupSystemTable.PATH_COL.length) == 0) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>            map.put(row, Bytes.toString(CellUtil.cloneValue(cell)));<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>      return map;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    }<a name="line.295"></a>
+<span class="sourceLineNo">296</span>  }<a name="line.296"></a>
+<span class="sourceLineNo">297</span><a name="line.297"></a>
+<span class="sourceLineNo">298</span>  /*<a name="line.298"></a>
+<span class="sourceLineNo">299</span>   * Used during restore<a name="line.299"></a>
+<span class="sourceLineNo">300</span>   * @param backupId the backup Id<a name="line.300"></a>
+<span class="sourceLineNo">301</span>   * @param sTableList List of tables<a name="line.301"></a>
+<span class="sourceLineNo">302</span>   * @return array of Map of family to List of Paths<a name="line.302"></a>
+<span class="sourceLineNo">303</span>   */<a name="line.303"></a>
+<span class="sourceLineNo">304</span>  public Map&lt;byte[], List&lt;Path&gt;&gt;[] readBulkLoadedFiles(String backupId, List&lt;TableName&gt; sTableList)<a name="line.304"></a>
+<span class="sourceLineNo">305</span>      throws IOException {<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    Scan scan = BackupSystemTable.createScanForBulkLoadedFiles(backupId);<a name="line.306"></a>
+<span class="sourceLineNo">307</span>    Map&lt;byte[], List&lt;Path&gt;&gt;[] mapForSrc = new Map[sTableList == null ? 1 : sTableList.size()];<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    try (Table table = connection.getTable(bulkLoadTableName);<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        ResultScanner scanner = table.getScanner(scan)) {<a name="line.309"></a>
+<span class="sourceLineNo">310</span>      Result res = null;<a name="line.310"></a>
+<span class="sourceLineNo">311</span>      while ((res = scanner.next()) != null) {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>        res.advance();<a name="line.312"></a>
+<span class="sourceLineNo">313</span>        TableName tbl = null;<a name="line.313"></a>
+<span class="sourceLineNo">314</span>        byte[] fam = null;<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        String path = null;<a name="line.315"></a>
+<span class="sourceLineNo">316</span>        for (Cell cell : res.listCells()) {<a name="line.316"></a>
+<span class="sourceLineNo">317</span>          if (CellUtil.compareQualifiers(cell, BackupSystemTable.TBL_COL, 0,<a name="line.317"></a>
+<span class="sourceLineNo">318</span>            BackupSystemTable.TBL_COL.length) == 0) {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>            tbl = TableName.valueOf(CellUtil.cloneValue(cell));<a name="line.319"></a>
+<span class="sourceLineNo">320</span>          } else if (CellUtil.compareQualifiers(cell, BackupSystemTable.FAM_COL, 0,<a name="line.320"></a>
+<span class="sourceLineNo">321</span>            BackupSystemTable.FAM_COL.length) == 0) {<a name="line.321"></a>
+<span class="sourceLineNo">322</span>            fam = CellUtil.cloneValue(cell);<a name="line.322"></a>
+<span class="sourceLineNo">323</span>          } else if (CellUtil.compareQualifiers(cell, BackupSystemTable.PATH_COL, 0,<a name="line.323"></a>
+<span class="sourceLineNo">324</span>            BackupSystemTable.PATH_COL.length) == 0) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>            path = Bytes.toString(CellUtil.cloneValue(cell));<a name="line.325"></a>
+<span class="sourceLineNo">326</span>          }<a name="line.326"></a>
+<span class="sourceLineNo">327</span>        }<a name="line.327"></a>
+<span class="sourceLineNo">328</span>        int srcIdx = IncrementalTableBackupClient.getIndex(tbl, sTableList);<a name="line.328"></a>
+<span class="sourceLineNo">329</span>        if (srcIdx == -1) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>          // the table is not among the query<a name="line.330"></a>
+<span class="sourceLineNo">331</span>          continue;<a name="line.331"></a>
+<span class="sourceLineNo">332</span>        }<a name="line.332"></a>
+<span class="sourceLineNo">333</span>        if (mapForSrc[srcIdx] == null) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span>          mapForSrc[srcIdx] = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        }<a name="line.335"></a>
+<span class="sourceLineNo">336</span>        List&lt;Path&gt; files;<a name="line.336"></a>
+<span class="sourceLineNo">337</span>        if (!mapForSrc[srcIdx].containsKey(fam)) {<a name="line.337"></a>
+<span class="sourceLineNo">338</span>          files = new ArrayList&lt;Path&gt;();<a name="line.338"></a>
+<span class="sourceLineNo">339</span>          mapForSrc[srcIdx].put(fam, files);<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        } else {<a name="line.340"></a>
+<span class="sourceLineNo">341</span>          files = mapForSrc[srcIdx].get(fam);<a name="line.341"></a>
+<span class="sourceLineNo">342</span>        }<a name="line.342"></a>
+<span class="sourceLineNo">343</span>        files.add(new Path(path));<a name="line.343"></a>
+<span class="sourceLineNo">344</span>        if (LOG.isDebugEnabled()) {<a name="line.344"></a>
+<span class="sourceLineNo">345</span>          LOG.debug("found bulk loaded file : " + tbl + " " + Bytes.toString(fam) + " " + path);<a name="line.345"></a>
+<span class="sourceLineNo">346</span>        }<a name="line.346"></a>
+<span class="sourceLineNo">347</span>      }<a name="line.347"></a>
+<span class="sourceLineNo">348</span><a name="line.348"></a>
+<span class="sourceLineNo">349</span>      return mapForSrc;<a name="line.349"></a>
 <span class="sourceLineNo">350</span>    }<a name="line.350"></a>
-<span class="sourceLineNo">351</span>    try (Table table = connection.getTable(tableName)) {<a name="line.351"></a>
-<span class="sourceLineNo">352</span>      Delete del = createDeleteForBackupInfo(backupId);<a name="line.352"></a>
-<span class="sourceLineNo">353</span>      table.delete(del);<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    }<a name="line.354"></a>
-<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
-<span class="sourceLineNo">356</span><a name="line.356"></a>
-<span class="sourceLineNo">357</span>  /*<a name="line.357"></a>
-<span class="sourceLineNo">358</span>   * For postBulkLoadHFile() hook.<a name="line.358"></a>
-<span class="sourceLineNo">359</span>   * @param tabName table name<a name="line.359"></a>
-<span class="sourceLineNo">360</span>   * @param region the region receiving hfile<a name="line.360"></a>
-<span class="sourceLineNo">361</span>   * @param finalPaths family and associated hfiles<a name="line.361"></a>
-<span class="sourceLineNo">362</span>   */<a name="line.362"></a>
-<span class="sourceLineNo">363</span>  public void writePathsPostBulkLoad(TableName tabName, byte[] region,<a name="line.363"></a>
-<span class="sourceLineNo">364</span>      Map&lt;byte[], List&lt;Path&gt;&gt; finalPaths) throws IOException {<a name="line.364"></a>
-<span class="sourceLineNo">365</span>    if (LOG.isDebugEnabled()) {<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      LOG.debug("write bulk load descriptor to backup " + tabName + " with " + finalPaths.size()<a name="line.366"></a>
-<span class="sourceLineNo">367</span>          + " entries");<a name="line.367"></a>
+<span class="sourceLineNo">351</span>  }<a name="line.351"></a>
+<span class="sourceLineNo">352</span><a name="line.352"></a>
+<span class="sourceLineNo">353</span><a name="line.353"></a>
+<span class="sourceLineNo">354</span>  /**<a name="line.354"></a>
+<span class="sourceLineNo">355</span>   * Deletes backup status from backup system table table<a name="line.355"></a>
+<span class="sourceLineNo">356</span>   * @param backupId backup id<a name="line.356"></a>
+<span class="sourceLineNo">357</span>   * @throws IOException exception<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>  public void deleteBackupInfo(String backupId) throws IOException {<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span>    if (LOG.isTraceEnabled()) {<a name="line.362"></a>
+<span class="sourceLineNo">363</span>      LOG.trace("delete backup status in backup system table for " + backupId);<a name="line.363"></a>
+<span class="sourceLineNo">364</span>    }<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    try (Table table = connection.getTable(tableName)) {<a name="line.365"></a>
+<span class="sourceLineNo">366</span>      Delete del = createDeleteForBackupInfo(backupId);<a name="line.366"></a>
+<span class="sourceLineNo">367</span>      table.delete(del);<a name="line.367"></a>
 <span class="sourceLineNo">368</span>    }<a name="line.368"></a>
-<span class="sourceLineNo">369</span>    try (Table table = connection.getTable(tableName)) {<a name="line.369"></a>
-<span class="sourceLineNo">370</span>      List&lt;Put&gt; puts = BackupSystemTable.createPutForCommittedBulkload(tabName, region, finalPaths);<a name="line.370"></a>
-<span class="sourceLineNo">371</span>      table.put(puts);<a name="line.371"></a>
-<span class="sourceLineNo">372</span>      LOG.debug("written " + puts.size() + " rows for bulk load of " + tabName);<a name="line.372"></a>
-<span class="sourceLineNo">373</span>    }<a name="line.373"></a>
-<span class="sourceLineNo">374</span>  }<a name="line.374"></a>
-<span class="sourceLineNo">375</span><a name="line.375"></a>
-<span class="sourceLineNo">376</span>  /*<a name="line.376"></a>
-<span class="sourceLineNo">377</span>   * For preCommitStoreFile() hook<a name="line.377"></a>
-<span class="sourceLineNo">378</span>   * @param tabName table name<a name="line.378"></a>
-<span class="sourceLineNo">379</span>   * @param region the region receiving hfile<a name="line.379"></a>
-<span class="sourceLineNo">380</span>   * @param family column family<a name="line.380"></a>
-<span class="sourceLineNo">381</span>   * @param pairs list of paths for hfiles<a name="line.381"></a>
-<span class="sourceLineNo">382</span>   */<a name="line.382"></a>
-<span class="sourceLineNo">383</span>  public void writeFilesForBulkLoadPreCommit(TableName tabName, byte[] region, final byte[] family,<a name="line.383"></a>
-<span class="sourceLineNo">384</span>      final List&lt;Pair&lt;Path, Path&gt;&gt; pairs) throws IOException {<a name="line.384"></a>
-<span class="sourceLineNo">385</span>    if (LOG.isDebugEnabled()) {<a name="line.385"></a>
-<span class="sourceLineNo">386</span>      LOG.debug("write bulk load descriptor to backup " + tabName + " with " + pairs.size()<a name="line.386"></a>
-<span class="sourceLineNo">387</span>          + " entries");<a name="line.387"></a>
-<span class="sourceLineNo">388</span>    }<a name="line.388"></a>
-<span class="sourceLineNo">389</span>    try (Table table = connection.getTable(tableName)) {<a name="line.389"></a>
-<span class="sourceLineNo">390</span>      List&lt;Put&gt; puts =<a name="line.390"></a>
-<span class="sourceLineNo">391</span>          BackupSystemTable.createPutForPreparedBulkload(tabName, region, family, pairs);<a name="line.391"></a>
-<span class="sourceLineNo">392</span>      table.put(puts);<a name="line.392"></a>
-<span class="sourceLineNo">393</span>      LOG.debug("written " + puts.size() + " rows for bulk load of " + tabName);<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    }<a name="line.394"></a>
-<span class="sourceLineNo">395</span>  }<a name="line.395"></a>
-<span class="sourceLineNo">396</span><a name="line.396"></a>
-<span class="sourceLineNo">397</span>  /*<a name="line.397"></a>
-<span class="sourceLineNo">398</span>   * Removes rows recording bulk loaded hfiles from backup table<a name="line.398"></a>
-<span class="sourceLineNo">399</span>   * @param lst list of table names<a name="line.399"></a>
-<span class="sourceLineNo">400</span>   * @param rows the rows to be deleted<a name="line.400"></a>
-<span class="sourceLineNo">401</span>   */<a name="line.401"></a>
-<span class="sourceLineNo">402</span>  public void removeBulkLoadedRows(List&lt;TableName&gt; lst, List&lt;byte[]&gt; rows) throws IOException {<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    try (Table table = connection.getTable(tableName)) {<a name="line.403"></a>
-<span class="sourceLineNo">404</span>      List&lt;Delete&gt; lstDels = new ArrayList&lt;&gt;();<a name="line.404"></a>
-<span class="sourceLineNo">405</span>      for (byte[] row : rows) {<a name="line.405"></a>
-<span class="sourceLineNo">406</span>        Delete del = new Delete(row);<a name="line.406"></a>
-<span class="sourceLineNo">407</span>        lstDels.add(del);<a name="line.407"></a>
-<span class="sourceLineNo">408</span>        LOG.debug("orig deleting the row: " + Bytes.toString(row));<a name="line.408"></a>
-<span class="sourceLineNo">409</span>      }<a name="line.409"></a>
-<span class="sourceLineNo">410</span>      table.delete(lstDels);<a name="line.410"></a>
-<span class="sourceLineNo">411</span>      LOG.debug("deleted " + rows.size() + " original bulkload rows for " + lst.size() + " tables");<a name="line.411"></a>
-<span class="sourceLineNo">412</span>    }<a name="line.412"></a>
-<span class="sourceLineNo">413</span>  }<a name="line.413"></a>
-<span class="sourceLineNo">414</span><a name="line.414"></a>
-<span class="sourceLineNo">415</span>  /*<a name="line.415"></a>
-<span class="sourceLineNo">416</span>   * Reads the rows from backup table recording bulk loaded hfiles<a name="line.416"></a>
-<span class="sourceLineNo">417</span>   * @param tableList list of table names<a name="line.417"></a>
-<span class="sourceLineNo">418</span>   * @return The keys of the Map are table, region and column family. Value of the map reflects<a name="line.418"></a>
-<span class="sourceLineNo">419</span>   * whether the hfile was recorded by preCommitStoreFile hook (true)<a name="line.419"></a>
-<span class="sourceLineNo">420</span>   */<a name="line.420"></a>
-<span class="sourceLineNo">421</span>  public Pair&lt;Map&lt;TableName, Map&lt;String, Map&lt;String, List&lt;Pair&lt;String, Boolean&gt;&gt;&gt;&gt;&gt;, List&lt;byte[]&gt;&gt;<a name="line.421"></a>
-<span class="sourceLineNo">422</span>      readBulkloadRows(List&lt;TableName&gt; tableList) throws IOException {<a name="line.422"></a>
-<span class="sourceLineNo">423</span>    Map&lt;TableName, Map&lt;String, Map&lt;String, List&lt;Pair&lt;String, Boolean&gt;&gt;&gt;&gt;&gt; map = new HashMap&lt;&gt;();<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    List&lt;byte[]&gt; rows = new ArrayList&lt;&gt;();<a name="line.424"></a>
-<span class="sourceLineNo">425</span>    for (TableName tTable : tableList) {<a name="line.425"></a>
-<span class="sourceLineNo">426</span>      Scan scan = BackupSystemTable.createScanForOrigBulkLoadedFiles(tTable);<a name="line.426"></a>
-<span class="sourceLineNo">427</span>      Map&lt;String, Map&lt;String, List&lt;Pair&lt;String, Boolean&gt;&gt;&gt;&gt; tblMap = map.get(tTable);<a name="line.427"></a>
-<span class="sourceLineNo">428</span>      try (Table table = connection.getTable(tableName);<a name="line.428"></a>
-<span class="sourceLineNo">429</span>          ResultScanner scanner = table.getScanner(scan)) {<a name="line.429"></a>
-<span class="sourceLineNo">430</span>        Result res = null;<a name="line.430"></a>
-<span class="sourceLineNo">431</span>        while ((res = scanner.next()) != null) {<a name="line.431"></a>
-<span class="sourceLineNo">432</span>          res.advance();<a name="line.432"></a>
-<span class="sourceLineNo">433</span>          String fam = null;<a name="line.433"></a>
-<span class="sourceLineNo">434</span>          String path = null;<a name="line.434"></a>
-<span class="sourceLineNo">435</span>          boolean raw = false;<a name="line.435"></a>
-<span class="sourceLineNo">436</span>          byte[] row = null;<a name="line.436"></a>
-<span class="sourceLineNo">437</span>          String region = null;<a name="line.437"></a>
-<span class="sourceLineNo">438</span>          for (Cell cell : res.listCells()) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>            row = CellUtil.cloneRow(cell);<a name="line.439"></a>
-<span class="sourceLineNo">440</span>            rows.add(row);<a name="line.440"></a>
-<span class="sourceLineNo">441</span>            String rowStr = Bytes.toString(row);<a name="line.441"></a>
-<span class="sourceLineNo">442</span>            region = BackupSystemTable.getRegionNameFromOrigBulkLoadRow(rowStr);<a name="line.442"></a>
-<span class="sourceLineNo">443</span>            if (CellUtil.compareQualifiers(cell, BackupSystemTable.FAM_COL, 0,<a name="line.443"></a>
-<span class="sourceLineNo">444</span>              BackupSystemTable.FAM_COL.length) == 0) {<a name="line.444"></a>
-<span class="sourceLineNo">445</span>              fam = Bytes.toString(CellUtil.cloneValue(cell));<a name="line.445"></a>
-<span class="sourceLineNo">446</span>            } else if (CellUtil.compareQualifiers(cell, BackupSystemTable.PATH_COL, 0,<a name="line.446"></a>
-<span class="sourceLineNo">447</span>              BackupSystemTable.PATH_COL.length) == 0) {<a name="line.447"></a>
-<span class="sourceLineNo">448</span>              path = Bytes.toString(CellUtil.cloneValue(cell));<a name="line.448"></a>
-<span class="sourceLineNo">449</span>            } else if (CellUtil.compareQualifiers(cell, BackupSystemTable.STATE_COL, 0,<a name="line.449"></a>
-<span class="sourceLineNo">450</span>              BackupSystemTable.STATE_COL.length) == 0) {<a name="line.450"></a>
-<span class="sourceLineNo">451</span>              byte[] state = CellUtil.cloneValue(cell);<a name="line.451"></a>
-<span class="sourceLineNo">452</span>              if (Bytes.equals(BackupSystemTable.BL_PREPARE, state)) {<a name="line.452"></a>
-<span class="sourceLineNo">453</span>                raw = true;<a name="line.453"></a>
-<span class="sourceLineNo">454</span>              } else raw = false;<a name="line.454"></a>
-<span class="sourceLineNo">455</span>            }<a name="line.455"></a>
-<span class="sourceLineNo">456</span>          }<a name="line.456"></a>
-<span class="sourceLineNo">457</span>          if (map.get(tTable) == null) {<a name="line.457"></a>
-<span class="sourceLineNo">458</span>            map.put(tTable, new HashMap&lt;String, Map&lt;String, List&lt;Pair&lt;String, Boolean&gt;&gt;&gt;&gt;());<a name="line.458"></a>
-<span class="sourceLineNo">459</span>            tblMap = map.get(tTable);<a name="line.459"></a>
-<span class="sourceLineNo">460</span>          }<a name="line.460"></a>
-<span class="sourceLineNo">461</span>          if (tblMap.get(region) == null) {<a name="line.461"></a>
-<span class="sourceLineNo">462</span>            tblMap.put(region, new HashMap&lt;String, List&lt;Pair&lt;String, Boolean&gt;&gt;&gt;());<a name="line.462"></a>
-<span class="sourceLineNo">463</span>          }<a name="line.463"></a>
-<span class="sourceLineNo">464</span>          Map&lt;String, List&lt;Pair&lt;String, Boolean&gt;&gt;&gt; famMap = tblMap.get(region);<a name="line.464"></a>
-<span class="sourceLineNo">465</span>          if (famMap.get(fam) == null) {<a name="line.465"></a>
-<span class="sourceLineNo">466</span>            famMap.put(fam, new ArrayList&lt;Pair&lt;String, Boolean&gt;&gt;());<a name="line.466"></a>
-<span class="sourceLineNo">467</span>          }<a name="line.467"></a>
-<span class="sourceLineNo">468</span>          famMap.get(fam).add(new Pair&lt;&gt;(path, raw));<a name="line.468"></a>
-<span class="sourceLineNo">469</span>          LOG.debug("found orig " + path + " for " + fam + " of table " + region);<a name="line.469"></a>
-<span class="sourceLineNo">470</span>        }<a name="line.470"></a>
-<span class="sourceLineNo">471</span>      }<a name="line.471"></a>
-<span class="sourceLineNo">472</span>    }<a name="line.472"></a>
-<span class="sourceLineNo">473</span>    return new Pair&lt;&gt;(map, rows);<a name="line.473"></a>
-<span class="sourceLineNo">474</span>  }<a name="line.474"></a>
-<span class="sourceLineNo">475</span><a name="line.475"></a>
-<span class="sourceLineNo">476</span>  /*<a name="line.476"></a>
-<span class="sourceLineNo">477</span>   * @param sTableList List of tables<a name="line.477"></a>
-<span class="sourceLineNo">478</span>   * @param maps array of Map of family to List of Paths<a name="line.478"></a>
-<span class="sourceLineNo">479</span>   * @param backupId the backup Id<a name="line.479"></a>
-<span class="sourceLineNo">480</span>   */<a name="line.480"></a>
-<span class="sourceLineNo">481</span>  public void writeBulkLoadedFiles(List&lt;TableName&gt; sTableList, Map&lt;byte[], List&lt;Path&gt;&gt;[] maps,<a name="line.481"></a>
-<span class="sourceLineNo">482</span>      String backupId) throws IOException {<a name="line.482"></a>
-<span class="sourceLineNo">483</span>    try (Table table = connection.getTable(tableName)) {<a name="line.483"></a>
-<span class="sourceLineNo">484</span>      long ts = EnvironmentEdgeManager.currentTime();<a name="line.484"></a>
-<span class="sourceLineNo">485</span>      int cnt = 0;<a name="line.485"></a>
-<span class="sourceLineNo">486</span>      List&lt;Put&gt; puts = new ArrayList&lt;&gt;();<a name="line.486"></a>
-<span class="sourceLineNo">487</span>      for (int idx = 0; idx &lt; maps.length; idx++) {<a name="line.487"></a>
-<span class="sourceLineNo">488</span>        Map&lt;byte[], List&lt;Path&gt;&gt; map = maps[idx];<a name="line.488"></a>
-<span class="sourceLineNo">489</span>        TableName tn = sTableList.get(idx);<a name="line.489"></a>
-<span class="sourceLineNo">490</span>        if (map == null) continue;<a name="line.490"></a>
-<span class="sourceLineNo">491</span>        for (Map.Entry&lt;byte[], List&lt;Path&gt;&gt; entry : map.entrySet()) {<a name="line.491"></a>
-<span class="sourceLineNo">492</span>          byte[] fam = entry.getKey();<a name="line.492"></a>
-<span class="sourceLineNo">493</span>          List&lt;Path&gt; paths = entry.getValue();<a name="line.493"></a>
-<span class="sourceLineNo">494</span>          for (Path p : paths) {<a name="line.494"></a>
-<span class="sourceLineNo">495</span>            Put put =<a name="line.495"></a>
-<span class="sourceLineNo">496</span>                BackupSystemTable.createPutForBulkLoadedFile(tn, fam, p.toString(), backupId, ts,<a name="line.496"></a>
-<span class="sourceLineNo">497</span>                  cnt++);<a name="line.497"></a>
-<span class="sourceLineNo">498</span>            puts.add(put);<a name="line.498"></a>
-<span class="sourceLineNo">499</span>          }<a name="line.499"></a>
-<span class="sourceLineNo">500</span>        }<a name="line.500"></a>
-<span class="sourceLineNo">501</span>      }<a name="line.501"></a>
-<span class="sourceLineNo">502</span>      if (!puts.isEmpty()) {<a name="line.502"></a>
-<span class="sourceLineNo">503</span>        table.put(puts);<a name="line.503"></a>
-<span class="sourceLineNo">504</span>      }<a name="line.504"></a>
-<span class="sourceLineNo">505</span>    }<a name="line.505"></a>
-<span class="sourceLineNo">506</span>  }<a name="line.506"></a>
-<span class="sourceLineNo">507</span><a name="line.507"></a>
-<span class="sourceLineNo">508</span>  /**<a name="line.508"></a>
-<span class="sourceLineNo">509</span>   * Reads backup status object (instance of backup info) from backup system table table<a name="line.509"></a>
-<span class="sourceLineNo">510</span>   * @param backupId backup id<a name="line.510"></a>
-<span class="sourceLineNo">511</span>   * @return Current status of backup session or null<a name="line.511"></a>
-<span class="sourceLineNo">512</span>   */<a name="line.512"></a>
-<span class="sourceLineNo">513</span><a name="line.513"></a>
-<span class="sourceLineNo">514</span>  public BackupInfo readBackupInfo(String backupId) throws IOException {<a name="line.514"></a>
-<span class="sourceLineNo">515</span>    if (LOG.isTraceEnabled()) {<a name="line.515"></a>
-<span class="sourceLineNo">516</span>      LOG.trace("read backup status from backup system table for: " + backupId);<a name="line.516"></a>
-<span class="sourceLineNo">517</span>    }<a name="line.517"></a>
-<span class="sourceLineNo">518</span><a name="line.518"></a>
-<span class="sourceLineNo">519</span>    try (Table table = connection.getTable(tableName)) {<a name="line.519"></a>
-<span class="sourceLineNo">520</span>      Get get = createGetForBackupInfo(backupId);<a name="line.520"></a>
-<span class="sourceLineNo">521</span>      Result res = table.get(get);<a name="line.521"></a>
-<span class="sourceLineNo">522</span>      if (res.isEmpty()) {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>        return null;<a name="line.523"></a>
-<span class="sourceLineNo">524</span>      }<a name="line.524"></a>
-<span class="sourceLineNo">525</span>      return resultToBackupInfo(res);<a name="line.525"></a>
-<span class="sourceLineNo">526</span>    }<a name="line.526"></a>
-<span class="sourceLineNo">527</span>  }<a name="line.527"></a>
-<span class="sourceLineNo">528</span><a name="line.528"></a>
-<span class="sourceLineNo">529</span>  /**<a name="line.529"></a>
-<span class="sourceLineNo">530</span>   * Read the last backup start code (timestamp) of last successful backup. Will return null if<a name="line.530"></a>
-<span class="sourceLineNo">531</span>   * there is no start code stored on hbase or the value is of length 0. These two cases indicate<a name="line.531"></a>
-<span class="sourceLineNo">532</span>   * there is no successful backup completed so far.<a name="line.532"></a>
-<span class="sourceLineNo">533</span>   * @param backupRoot directory path to backup destination<a name="line.533"></a>
-<span class="sourceLineNo">534</span>   * @return the timestamp of last successful backup<a name="line.534"></a>
-<span class="sourceLineNo">535</span>   * @throws IOException exception<a name="line.535"></a>
-<span class="sourceLineNo">536</span>   */<a name="line.536"></a>
-<span class="sourceLineNo">537</span>  public String readBackupStartCode(String backupRoot) throws IOException {<a name="line.537"></a>
-<span class="sourceLineNo">538</span>    LOG.trace("read backup start code from backup system table");<a name="line.538"></a>
-<span class="sourceLineNo">539</span><a name="line.539"></a>
-<span class="sourceLineNo">540</span>    try (Table table = connection.getTable(tableName)) {<a name="line.540"></a>
-<span class="sourceLineNo">541</span>      Get get = createGetForStartCode(backupRoot);<a name="line.541"></a>
-<span class="sourceLineNo">542</span>      Result res = table.get(get);<a name="line.542"></a>
-<span class="sourceLineNo">543</span>      if (res.isEmpty()) {<a name="line.543"></a>
-<span class="sourceLineNo">544</span>        return null;<a name="line.544"></a>
-<span class="sourceLineNo">545</span>      }<a name="line.545"></a>
-<span class="sourceLineNo">546</span>      Cell cell = res.listCells().get(0);<a name="line.546"></a>
-<span class="sourceLineNo">547</span>      byte[] val = CellUtil.cloneValue(cell);<a name="line.547"></a>
-<span class="sourceLineNo">548</span>      if (val.length == 0) {<a name="line.548"></a>
-<span class="sourceLineNo">549</span>        return null;<a name="line.549"></a>
-<span class="sourceLineNo">550</span>      }<a name="line.550"></a>
-<span class="sourceLineNo">551</span>      return new String(val);<a name="line.551"></a>
-<span class="sourceLineNo">552</span>    }<a name="line.552"></a>
-<span class="sourceLineNo">553</span>  }<a name="line.553"></a>
-<span class="sourceLineNo">554</span><a name="line.554"></a>
-<span class="sourceLineNo">555</span>  /**<a name="line.555"></a>
-<span class="sourceLineNo">556</span>   * Write the start code (timestamp) to backup system table. If passed in null, then write 0 byte.<a name="line.556"></a>
-<span class="sourceLineNo">557</span>   * @param startCode start code<a name="line.557"></a>
-<span class="sourceLineNo">558</span>   * @param backupRoot root directory path to backup<a name="line.558"></a>
-<span class="sourceLineNo">559</span>   * @throws IOException exception<a name="line.559"></a>
-<span class="sourceLineNo">560</span>   */<a name="line.560"></a>
-<span class="sourceLineNo">561</span>  public void writeBackupStartCode(Long startCode, String backupRoot) throws IOException {<a name="line.561"></a>
-<span class="sourceLineNo">562</span>    if (LOG.isTraceEnabled()) {<a name="line.562"></a>
-<span class="sourceLineNo">563</span>      LOG.trace("write backup start code to backup system table " + startCode);<a name="line.563"></a>
-<span class="sourceLineNo">564</span>    }<a name="line.564"></a>
-<span class="sourceLineNo">565</span>    try (Table table = connection.getTable(tableName)) {<a name="line.565"></a>
-<span class="sourceLineNo">566</span>      Put put = createPutForStartCode(startCode.toString(), backupRoot);<a name="line.566"></a>
-<span class="sourceLineNo">567</span>      table.put(put);<a name="line.567"></a>
-<span class="sourceLineNo">568</span>    }<a name="line.568"></a>
-<span class="sourceLineNo">569</span>  }<a name="line.569"></a>
-<span class="sourceLineNo">570</span><a name="line.570"></a>
-<span class="sourceLineNo">571</span>  /**<a name="line.571"></a>
-<span class="sourceLineNo">572</span>   * Exclusive operations are:<a name="line.572"></a>
-<span class="sourceLineNo">573</span>   * create, delete, merge<a name="line.573"></a>
-<span class="sourceLineNo">574</span>   * @throws IOException<a name="line.574"></a>
-<span class="sourceLineNo">575</span>   */<a name="line.575"></a>
-<span class="sourceLineNo">576</span>  public void startBackupExclusiveOperation() throws IOException {<a name="line.576"></a>
-<span class="sourceLineNo">577</span>    LOG.debug("Start new backup exclusive operation");<a name="line.577"></a>
-<span class="sourceLineNo">578</span><a name="line.578"></a>
+<span class="sourceLineNo">369</span>  }<a name="line.369"></a>
+<span class="sourceLineNo">370</span><a name="line.370"></a>
+<span class="sourceLineNo">371</span>  /*<a name="line.371"></a>
+<span class="sourceLineNo">372</span>   * For postBulkLoadHFile() hook.<a name="line.372"></a>
+<span class="sourceLineNo">373</span>   * @param tabName table name<a name="line.373"></a>
+<span class="sourceLineNo">374</span>   * @param region the region receiving hfile<a name="line.374"></a>
+<span class="sourceLineNo">375</span>   * @param finalPaths family and associated hfiles<a name="line.375"></a>
+<span class="sourceLineNo">376</span>   */<a name="line.376"></a>
+<span class="sourceLineNo">377</span>  public void writePathsPostBulkLoad(TableName tabName, byte[] region,<a name="line.377"></a>
+<span class="sourceLineNo">378</span>      Map&lt;byte[], List&lt;Path&gt;&gt; finalPaths) throws IOException {<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    if (LOG.isDebugEnabled()) {<a name="line.379"></a>
+<span class="sourceLineNo">380</span>      LOG.debug("write bulk load descriptor to backup " + tabName + " with " + finalPaths.size()<a name="line.380"></a>
+<span class="sourceLineNo">381</span>          + " entries");<a name="line.381"></a>
+<span class="sourceLineNo">382</span>    }<a name="line.382"></a>
+<span class="sourceLineNo">383</span>    try (Table table = connection.getTable(bulkLoadTableName)) {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>      List&lt;Put&gt; puts = BackupSystemTable.createPutForCommittedBulkload(tabName, region, finalPaths);<a name="line.384"></a>
+<span class="sourceLineNo">385</span>      table.put(puts);<a name="line.385"></a>
+<span class="sourceLineNo">386</span>      LOG.debug("written " + puts.size() + " rows for bulk load of " + tabName);<a name="line.386"></a>
+<span class="sourceLineNo">387</span>    }<a name="line.387"></a>
+<span class="sourceLineNo">388</span>  }<a name="line.388"></a>
+<span class="sourceLineNo">389</span><a name="line.389"></a>
+<span class="sourceLineNo">390</span>  /*<a name="line.390"></a>
+<span class="sourceLineNo">391</span>   * For preCommitStoreFile() hook<a name="line.391"></a>
+<span class="sourceLineNo">392</span>   * @param tabName table name<a name="line.392"></a>
+<span class="sourceLineNo">393</span>   * @param region the region receiving hfile<a name="line.393"></a>
+<span class="sourceLineNo">394</span>   * @param family column family<a name="line.394"></a>
+<span class="sourceLineNo">395</span>   * @param pairs list of paths for hfiles<a name="line.395"></a>
+<span class="sourceLineNo">396</span>   */<a name="line.396"></a>
+<span class="sourceLineNo">397</span>  public void writeFilesForBulkLoadPreCommit(TableName tabName, byte[] region, final byte[] family,<a name="line.397"></a>
+<span class="sourceLineNo">398</span>      final List&lt;Pair&lt;Path, Path&gt;&gt; pairs) throws IOException {<a name="line.398"></a>
+<span class="sourceLineNo">399</span>    if (LOG.isDebugEnabled()) {<a name="line.399"></a>
+<span class="sourceLineNo">400</span>      LOG.debug("write bulk load descriptor to backup " + tabName + " with " + pairs.size()<a name="line.400"></a>
+<span class="sourceLineNo">401</span>          + " entries");<a name="line.401"></a>
+<span class="sourceLineNo">402</span>    }<a name="line.402"></a>
+<span class="sourceLineNo">403</span>    try (Table table = connection.getTable(bulkLoadTableName)) {<a name="line.403"></a>
+<span class="sourceLineNo">404</span>      List&lt;Put&gt; puts =<a name="line.404"></a>
+<span class="sourceLineNo">405</span>          BackupSystemTable.createPutForPreparedBulkload(tabName, region, family, pairs);<a name="line.405"></a>
+<span class="sourceLineNo">406</span>      table.put(puts);<a name="line.406"></a>
+<span class="sourceLineNo">407</span>      LOG.debug("written " + puts.size() + " rows for bulk load of " + tabName);<a name="line.407"></a>
+<span class="sourceLineNo">408</span>    }<a name="line.408"></a>
+<span class="sourceLineNo">409</span>  }<a name="line.409"></a>
+<span class="sourceLineNo">410</span><a name="line.410"></a>
+<span class="sourceLineNo">411</span>  /*<a name="line.411"></a>
+<span class="sourceLineNo">412</span>   * Removes rows recording bulk loaded hfiles from backup table<a name="line.412"></a>
+<span class="sourceLineNo">413</span>   * @param lst list of table names<a name="line.413"></a>
+<span class="sourceLineNo">414</span>   * @param rows the rows to be deleted<a name="line.414"></a>
+<span class="sourceLineNo">415</span>   */<a name="line.415"></a>
+<span class="sourceLineNo">416</span>  public void deleteBulkLoadedRows(List&lt;byte[]&gt; rows) throws IOException {<a name="line.416"></a>
+<span class="sourceLineNo">417</span>    try (Table table = connection.getTable(bulkLoadTableName)) {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>      List&lt;Delete&gt; lstDels = new ArrayList&lt;&gt;();<a name="line.418"></a>
+<span class="sourceLineNo">419</span>      for (byte[] row : rows) {<a name="line.419"></a>
+<span class="sourceLineNo">420</span>        Delete del = new Delete(row);<a name="line.420"></a>
+<span class="sourceLineNo">421</span>        lstDels.add(del);<a name="line.421"></a>
+<span class="sourceLineNo">422</span>        LOG.debug("orig deleting the row: " + Bytes.toString(row));<a name="line.422"></a>
+<span class="sourceLineNo">423</span>      }<a name="line.423"></a>
+<span class="sourceLineNo">424</span>      table.delete(lstDels);<a name="line.424"></a>
+<span class="sourceLineNo">425</span>      LOG.debug("deleted " + rows.size() + " original bulkload rows");<a name="line.425"></a>
+<span class="sourceLineNo">426</span>    }<a name="line.426"></a>
+<span class="sourceLineNo">427</span>  }<a name

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html
index 7d91e36..335d025 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html
@@ -83,522 +83,539 @@
 <span class="sourceLineNo">075</span>  private static SecureRandom rand;<a name="line.75"></a>
 <span class="sourceLineNo">076</span><a name="line.76"></a>
 <span class="sourceLineNo">077</span>  static String[]  groups = new String[] { RSGroupInfo.DEFAULT_GROUP, "dg2", "dg3", "dg4" };<a name="line.77"></a>
-<span class="sourceLineNo">078</span>  static TableName[] tables =<a name="line.78"></a>
-<span class="sourceLineNo">079</span>      new TableName[] { TableName.valueOf("dt1"),<a name="line.79"></a>
-<span class="sourceLineNo">080</span>          TableName.valueOf("dt2"),<a name="line.80"></a>
-<span class="sourceLineNo">081</span>          TableName.valueOf("dt3"),<a name="line.81"></a>
-<span class="sourceLineNo">082</span>          TableName.valueOf("dt4")};<a name="line.82"></a>
-<span class="sourceLineNo">083</span>  static List&lt;ServerName&gt; servers;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>  static Map&lt;String, RSGroupInfo&gt; groupMap;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>  static Map&lt;TableName, String&gt; tableMap;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>  static List&lt;HTableDescriptor&gt; tableDescs;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>  int[] regionAssignment = new int[] { 2, 5, 7, 10, 4, 3, 1 };<a name="line.87"></a>
-<span class="sourceLineNo">088</span>  static int regionId = 0;<a name="line.88"></a>
-<span class="sourceLineNo">089</span><a name="line.89"></a>
-<span class="sourceLineNo">090</span>  @BeforeClass<a name="line.90"></a>
-<span class="sourceLineNo">091</span>  public static void beforeAllTests() throws Exception {<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    rand = new SecureRandom();<a name="line.92"></a>
-<span class="sourceLineNo">093</span>    servers = generateServers(7);<a name="line.93"></a>
-<span class="sourceLineNo">094</span>    groupMap = constructGroupInfo(servers, groups);<a name="line.94"></a>
-<span class="sourceLineNo">095</span>    tableMap = new HashMap&lt;&gt;();<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    tableDescs = constructTableDesc();<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    Configuration conf = HBaseConfiguration.create();<a name="line.97"></a>
-<span class="sourceLineNo">098</span>    conf.set("hbase.regions.slop", "0");<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    conf.set("hbase.rsgroup.grouploadbalancer.class", SimpleLoadBalancer.class.getCanonicalName());<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    loadBalancer = new RSGroupBasedLoadBalancer();<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    loadBalancer.setRsGroupInfoManager(getMockedGroupInfoManager());<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    loadBalancer.setMasterServices(getMockedMaster());<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    loadBalancer.setConf(conf);<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    loadBalancer.initialize();<a name="line.104"></a>
-<span class="sourceLineNo">105</span>  }<a name="line.105"></a>
-<span class="sourceLineNo">106</span><a name="line.106"></a>
-<span class="sourceLineNo">107</span>  /**<a name="line.107"></a>
-<span class="sourceLineNo">108</span>   * Test the load balancing algorithm.<a name="line.108"></a>
-<span class="sourceLineNo">109</span>   *<a name="line.109"></a>
-<span class="sourceLineNo">110</span>   * Invariant is that all servers of the group should be hosting either floor(average) or<a name="line.110"></a>
-<span class="sourceLineNo">111</span>   * ceiling(average)<a name="line.111"></a>
-<span class="sourceLineNo">112</span>   */<a name="line.112"></a>
-<span class="sourceLineNo">113</span>  @Test<a name="line.113"></a>
-<span class="sourceLineNo">114</span>  public void testBalanceCluster() throws Exception {<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; servers = mockClusterServers();<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    ArrayListMultimap&lt;String, ServerAndLoad&gt; list = convertToGroupBasedMap(servers);<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    LOG.info("Mock Cluster :  " + printStats(list));<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    List&lt;RegionPlan&gt; plans = loadBalancer.balanceCluster(servers);<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    ArrayListMultimap&lt;String, ServerAndLoad&gt; balancedCluster = reconcile(<a name="line.119"></a>
-<span class="sourceLineNo">120</span>        list, plans);<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    LOG.info("Mock Balance : " + printStats(balancedCluster));<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    assertClusterAsBalanced(balancedCluster);<a name="line.122"></a>
-<span class="sourceLineNo">123</span>  }<a name="line.123"></a>
-<span class="sourceLineNo">124</span><a name="line.124"></a>
-<span class="sourceLineNo">125</span>  /**<a name="line.125"></a>
-<span class="sourceLineNo">126</span>   * Invariant is that all servers of a group have load between floor(avg) and<a name="line.126"></a>
-<span class="sourceLineNo">127</span>   * ceiling(avg) number of regions.<a name="line.127"></a>
-<span class="sourceLineNo">128</span>   */<a name="line.128"></a>
-<span class="sourceLineNo">129</span>  private void assertClusterAsBalanced(<a name="line.129"></a>
-<span class="sourceLineNo">130</span>      ArrayListMultimap&lt;String, ServerAndLoad&gt; groupLoadMap) {<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    for (String gName : groupLoadMap.keySet()) {<a name="line.131"></a>
-<span class="sourceLineNo">132</span>      List&lt;ServerAndLoad&gt; groupLoad = groupLoadMap.get(gName);<a name="line.132"></a>
-<span class="sourceLineNo">133</span>      int numServers = groupLoad.size();<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      int numRegions = 0;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>      int maxRegions = 0;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>      int minRegions = Integer.MAX_VALUE;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>      for (ServerAndLoad server : groupLoad) {<a name="line.137"></a>
-<span class="sourceLineNo">138</span>        int nr = server.getLoad();<a name="line.138"></a>
-<span class="sourceLineNo">139</span>        if (nr &gt; maxRegions) {<a name="line.139"></a>
-<span class="sourceLineNo">140</span>          maxRegions = nr;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>        }<a name="line.141"></a>
-<span class="sourceLineNo">142</span>        if (nr &lt; minRegions) {<a name="line.142"></a>
-<span class="sourceLineNo">143</span>          minRegions = nr;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>        }<a name="line.144"></a>
-<span class="sourceLineNo">145</span>        numRegions += nr;<a name="line.145"></a>
-<span class="sourceLineNo">146</span>      }<a name="line.146"></a>
-<span class="sourceLineNo">147</span>      if (maxRegions - minRegions &lt; 2) {<a name="line.147"></a>
-<span class="sourceLineNo">148</span>        // less than 2 between max and min, can't balance<a name="line.148"></a>
-<span class="sourceLineNo">149</span>        return;<a name="line.149"></a>
-<span class="sourceLineNo">150</span>      }<a name="line.150"></a>
-<span class="sourceLineNo">151</span>      int min = numRegions / numServers;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      int max = numRegions % numServers == 0 ? min : min + 1;<a name="line.152"></a>
-<span class="sourceLineNo">153</span><a name="line.153"></a>
-<span class="sourceLineNo">154</span>      for (ServerAndLoad server : groupLoad) {<a name="line.154"></a>
-<span class="sourceLineNo">155</span>        assertTrue(server.getLoad() &lt;= max);<a name="line.155"></a>
-<span class="sourceLineNo">156</span>        assertTrue(server.getLoad() &gt;= min);<a name="line.156"></a>
-<span class="sourceLineNo">157</span>      }<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    }<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  }<a name="line.159"></a>
-<span class="sourceLineNo">160</span><a name="line.160"></a>
-<span class="sourceLineNo">161</span>  /**<a name="line.161"></a>
-<span class="sourceLineNo">162</span>   * All regions have an assignment.<a name="line.162"></a>
-<span class="sourceLineNo">163</span>   */<a name="line.163"></a>
-<span class="sourceLineNo">164</span>  private void assertImmediateAssignment(List&lt;RegionInfo&gt; regions,<a name="line.164"></a>
-<span class="sourceLineNo">165</span>                                         List&lt;ServerName&gt; servers,<a name="line.165"></a>
-<span class="sourceLineNo">166</span>                                         Map&lt;RegionInfo, ServerName&gt; assignments)<a name="line.166"></a>
-<span class="sourceLineNo">167</span>      throws IOException {<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    for (RegionInfo region : regions) {<a name="line.168"></a>
-<span class="sourceLineNo">169</span>      assertTrue(assignments.containsKey(region));<a name="line.169"></a>
-<span class="sourceLineNo">170</span>      ServerName server = assignments.get(region);<a name="line.170"></a>
-<span class="sourceLineNo">171</span>      TableName tableName = region.getTable();<a name="line.171"></a>
-<span class="sourceLineNo">172</span><a name="line.172"></a>
-<span class="sourceLineNo">173</span>      String groupName = getMockedGroupInfoManager().getRSGroupOfTable(tableName);<a name="line.173"></a>
-<span class="sourceLineNo">174</span>      assertTrue(StringUtils.isNotEmpty(groupName));<a name="line.174"></a>
-<span class="sourceLineNo">175</span>      RSGroupInfo gInfo = getMockedGroupInfoManager().getRSGroup(groupName);<a name="line.175"></a>
-<span class="sourceLineNo">176</span>      assertTrue("Region is not correctly assigned to group servers.",<a name="line.176"></a>
-<span class="sourceLineNo">177</span>          gInfo.containsServer(server.getAddress()));<a name="line.177"></a>
-<span class="sourceLineNo">178</span>    }<a name="line.178"></a>
-<span class="sourceLineNo">179</span>  }<a name="line.179"></a>
-<span class="sourceLineNo">180</span><a name="line.180"></a>
-<span class="sourceLineNo">181</span>  /**<a name="line.181"></a>
-<span class="sourceLineNo">182</span>   * Tests the bulk assignment used during cluster startup.<a name="line.182"></a>
-<span class="sourceLineNo">183</span>   *<a name="line.183"></a>
-<span class="sourceLineNo">184</span>   * Round-robin. Should yield a balanced cluster so same invariant as the<a name="line.184"></a>
-<span class="sourceLineNo">185</span>   * load balancer holds, all servers holding either floor(avg) or<a name="line.185"></a>
-<span class="sourceLineNo">186</span>   * ceiling(avg).<a name="line.186"></a>
-<span class="sourceLineNo">187</span>   */<a name="line.187"></a>
-<span class="sourceLineNo">188</span>  @Test<a name="line.188"></a>
-<span class="sourceLineNo">189</span>  public void testBulkAssignment() throws Exception {<a name="line.189"></a>
-<span class="sourceLineNo">190</span>    List&lt;RegionInfo&gt; regions = randomRegions(25);<a name="line.190"></a>
-<span class="sourceLineNo">191</span>    Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; assignments = loadBalancer<a name="line.191"></a>
-<span class="sourceLineNo">192</span>        .roundRobinAssignment(regions, servers);<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    //test empty region/servers scenario<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    //this should not throw an NPE<a name="line.194"></a>
-<span class="sourceLineNo">195</span>    loadBalancer.roundRobinAssignment(regions,<a name="line.195"></a>
-<span class="sourceLineNo">196</span>        Collections.EMPTY_LIST);<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    //test regular scenario<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    assertTrue(assignments.keySet().size() == servers.size());<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    for (ServerName sn : assignments.keySet()) {<a name="line.199"></a>
-<span class="sourceLineNo">200</span>      List&lt;RegionInfo&gt; regionAssigned = assignments.get(sn);<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      for (RegionInfo region : regionAssigned) {<a name="line.201"></a>
-<span class="sourceLineNo">202</span>        TableName tableName = region.getTable();<a name="line.202"></a>
-<span class="sourceLineNo">203</span>        String groupName =<a name="line.203"></a>
-<span class="sourceLineNo">204</span>            getMockedGroupInfoManager().getRSGroupOfTable(tableName);<a name="line.204"></a>
-<span class="sourceLineNo">205</span>        assertTrue(StringUtils.isNotEmpty(groupName));<a name="line.205"></a>
-<span class="sourceLineNo">206</span>        RSGroupInfo gInfo = getMockedGroupInfoManager().getRSGroup(<a name="line.206"></a>
-<span class="sourceLineNo">207</span>            groupName);<a name="line.207"></a>
-<span class="sourceLineNo">208</span>        assertTrue(<a name="line.208"></a>
-<span class="sourceLineNo">209</span>            "Region is not correctly assigned to group servers.",<a name="line.209"></a>
-<span class="sourceLineNo">210</span>            gInfo.containsServer(sn.getAddress()));<a name="line.210"></a>
-<span class="sourceLineNo">211</span>      }<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    }<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    ArrayListMultimap&lt;String, ServerAndLoad&gt; loadMap = convertToGroupBasedMap(assignments);<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    assertClusterAsBalanced(loadMap);<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>  /**<a name="line.217"></a>
-<span class="sourceLineNo">218</span>   * Test the cluster startup bulk assignment which attempts to retain assignment info.<a name="line.218"></a>
-<span class="sourceLineNo">219</span>   */<a name="line.219"></a>
-<span class="sourceLineNo">220</span>  @Test<a name="line.220"></a>
-<span class="sourceLineNo">221</span>  public void testRetainAssignment() throws Exception {<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    // Test simple case where all same servers are there<a name="line.222"></a>
-<span class="sourceLineNo">223</span>    Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; currentAssignments = mockClusterServers();<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    Map&lt;RegionInfo, ServerName&gt; inputForTest = new HashMap&lt;&gt;();<a name="line.224"></a>
-<span class="sourceLineNo">225</span>    for (ServerName sn : currentAssignments.keySet()) {<a name="line.225"></a>
-<span class="sourceLineNo">226</span>      for (RegionInfo region : currentAssignments.get(sn)) {<a name="line.226"></a>
-<span class="sourceLineNo">227</span>        inputForTest.put(region, sn);<a name="line.227"></a>
-<span class="sourceLineNo">228</span>      }<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    }<a name="line.229"></a>
-<span class="sourceLineNo">230</span>    //verify region-&gt;null server assignment is handled<a name="line.230"></a>
-<span class="sourceLineNo">231</span>    inputForTest.put(randomRegions(1).get(0), null);<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; newAssignment = loadBalancer<a name="line.232"></a>
-<span class="sourceLineNo">233</span>        .retainAssignment(inputForTest, servers);<a name="line.233"></a>
-<span class="sourceLineNo">234</span>    assertRetainedAssignment(inputForTest, servers, newAssignment);<a name="line.234"></a>
-<span class="sourceLineNo">235</span>  }<a name="line.235"></a>
-<span class="sourceLineNo">236</span><a name="line.236"></a>
-<span class="sourceLineNo">237</span>  /**<a name="line.237"></a>
-<span class="sourceLineNo">238</span>   * Test BOGUS_SERVER_NAME among groups do not overwrite each other.<a name="line.238"></a>
-<span class="sourceLineNo">239</span>   */<a name="line.239"></a>
-<span class="sourceLineNo">240</span>  @Test<a name="line.240"></a>
-<span class="sourceLineNo">241</span>  public void testRoundRobinAssignment() throws Exception {<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    List&lt;ServerName&gt; onlineServers = new ArrayList&lt;ServerName&gt;(servers.size());<a name="line.242"></a>
-<span class="sourceLineNo">243</span>    onlineServers.addAll(servers);<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    List&lt;RegionInfo&gt; regions = randomRegions(25);<a name="line.244"></a>
-<span class="sourceLineNo">245</span>    int bogusRegion = 0;<a name="line.245"></a>
-<span class="sourceLineNo">246</span>    for(RegionInfo region : regions){<a name="line.246"></a>
-<span class="sourceLineNo">247</span>      String group = tableMap.get(region.getTable());<a name="line.247"></a>
-<span class="sourceLineNo">248</span>      if("dg3".equals(group) || "dg4".equals(group)){<a name="line.248"></a>
-<span class="sourceLineNo">249</span>        bogusRegion++;<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>    Set&lt;Address&gt; offlineServers = new HashSet&lt;Address&gt;();<a name="line.252"></a>
-<span class="sourceLineNo">253</span>    offlineServers.addAll(groupMap.get("dg3").getServers());<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    offlineServers.addAll(groupMap.get("dg4").getServers());<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    for(Iterator&lt;ServerName&gt; it =  onlineServers.iterator(); it.hasNext();){<a name="line.255"></a>
-<span class="sourceLineNo">256</span>      ServerName server = it.next();<a name="line.256"></a>
-<span class="sourceLineNo">257</span>      Address address = server.getAddress();<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      if(offlineServers.contains(address)){<a name="line.258"></a>
-<span class="sourceLineNo">259</span>        it.remove();<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>    Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; assignments = loadBalancer<a name="line.262"></a>
-<span class="sourceLineNo">263</span>        .roundRobinAssignment(regions, onlineServers);<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    assertEquals(bogusRegion, assignments.get(LoadBalancer.BOGUS_SERVER_NAME).size());<a name="line.264"></a>
-<span class="sourceLineNo">265</span>  }<a name="line.265"></a>
-<span class="sourceLineNo">266</span><a name="line.266"></a>
-<span class="sourceLineNo">267</span>  /**<a name="line.267"></a>
-<span class="sourceLineNo">268</span>   * Asserts a valid retained assignment plan.<a name="line.268"></a>
-<span class="sourceLineNo">269</span>   * &lt;p&gt;<a name="line.269"></a>
-<span class="sourceLineNo">270</span>   * Must meet the following conditions:<a name="line.270"></a>
-<span class="sourceLineNo">271</span>   * &lt;ul&gt;<a name="line.271"></a>
-<span class="sourceLineNo">272</span>   * &lt;li&gt;Every input region has an assignment, and to an online server<a name="line.272"></a>
-<span class="sourceLineNo">273</span>   * &lt;li&gt;If a region had an existing assignment to a server with the same<a name="line.273"></a>
-<span class="sourceLineNo">274</span>   * address a a currently online server, it will be assigned to it<a name="line.274"></a>
-<span class="sourceLineNo">275</span>   * &lt;/ul&gt;<a name="line.275"></a>
-<span class="sourceLineNo">276</span>   */<a name="line.276"></a>
-<span class="sourceLineNo">277</span>  private void assertRetainedAssignment(<a name="line.277"></a>
-<span class="sourceLineNo">278</span>      Map&lt;RegionInfo, ServerName&gt; existing, List&lt;ServerName&gt; servers,<a name="line.278"></a>
-<span class="sourceLineNo">279</span>      Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; assignment)<a name="line.279"></a>
-<span class="sourceLineNo">280</span>      throws FileNotFoundException, IOException {<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    // Verify condition 1, every region assigned, and to online server<a name="line.281"></a>
-<span class="sourceLineNo">282</span>    Set&lt;ServerName&gt; onlineServerSet = new TreeSet&lt;&gt;(servers);<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    Set&lt;RegionInfo&gt; assignedRegions = new TreeSet&lt;&gt;(RegionInfo.COMPARATOR);<a name="line.283"></a>
-<span class="sourceLineNo">284</span>    for (Map.Entry&lt;ServerName, List&lt;RegionInfo&gt;&gt; a : assignment.entrySet()) {<a name="line.284"></a>
-<span class="sourceLineNo">285</span>      assertTrue(<a name="line.285"></a>
-<span class="sourceLineNo">286</span>          "Region assigned to server that was not listed as online",<a name="line.286"></a>
-<span class="sourceLineNo">287</span>          onlineServerSet.contains(a.getKey()));<a name="line.287"></a>
-<span class="sourceLineNo">288</span>      for (RegionInfo r : a.getValue()) {<a name="line.288"></a>
-<span class="sourceLineNo">289</span>        assignedRegions.add(r);<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>    assertEquals(existing.size(), assignedRegions.size());<a name="line.292"></a>
-<span class="sourceLineNo">293</span><a name="line.293"></a>
-<span class="sourceLineNo">294</span>    // Verify condition 2, every region must be assigned to correct server.<a name="line.294"></a>
-<span class="sourceLineNo">295</span>    Set&lt;String&gt; onlineHostNames = new TreeSet&lt;&gt;();<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    for (ServerName s : servers) {<a name="line.296"></a>
-<span class="sourceLineNo">297</span>      onlineHostNames.add(s.getHostname());<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    }<a name="line.298"></a>
-<span class="sourceLineNo">299</span><a name="line.299"></a>
-<span class="sourceLineNo">300</span>    for (Map.Entry&lt;ServerName, List&lt;RegionInfo&gt;&gt; a : assignment.entrySet()) {<a name="line.300"></a>
-<span class="sourceLineNo">301</span>      ServerName currentServer = a.getKey();<a name="line.301"></a>
-<span class="sourceLineNo">302</span>      for (RegionInfo r : a.getValue()) {<a name="line.302"></a>
-<span class="sourceLineNo">303</span>        ServerName oldAssignedServer = existing.get(r);<a name="line.303"></a>
-<span class="sourceLineNo">304</span>        TableName tableName = r.getTable();<a name="line.304"></a>
-<span class="sourceLineNo">305</span>        String groupName =<a name="line.305"></a>
-<span class="sourceLineNo">306</span>            getMockedGroupInfoManager().getRSGroupOfTable(tableName);<a name="line.306"></a>
-<span class="sourceLineNo">307</span>        assertTrue(StringUtils.isNotEmpty(groupName));<a name="line.307"></a>
-<span class="sourceLineNo">308</span>        RSGroupInfo gInfo = getMockedGroupInfoManager().getRSGroup(<a name="line.308"></a>
-<span class="sourceLineNo">309</span>            groupName);<a name="line.309"></a>
-<span class="sourceLineNo">310</span>        assertTrue(<a name="line.310"></a>
-<span class="sourceLineNo">311</span>            "Region is not correctly assigned to group servers.",<a name="line.311"></a>
-<span class="sourceLineNo">312</span>            gInfo.containsServer(currentServer.getAddress()));<a name="line.312"></a>
-<span class="sourceLineNo">313</span>        if (oldAssignedServer != null<a name="line.313"></a>
-<span class="sourceLineNo">314</span>            &amp;&amp; onlineHostNames.contains(oldAssignedServer<a name="line.314"></a>
-<span class="sourceLineNo">315</span>            .getHostname())) {<a name="line.315"></a>
-<span class="sourceLineNo">316</span>          // this region was previously assigned somewhere, and that<a name="line.316"></a>
-<span class="sourceLineNo">317</span>          // host is still around, then the host must have been is a<a name="line.317"></a>
-<span class="sourceLineNo">318</span>          // different group.<a name="line.318"></a>
-<span class="sourceLineNo">319</span>          if (!oldAssignedServer.getAddress().equals(currentServer.getAddress())) {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>            assertFalse(gInfo.containsServer(oldAssignedServer.getAddress()));<a name="line.320"></a>
-<span class="sourceLineNo">321</span>          }<a name="line.321"></a>
-<span class="sourceLineNo">322</span>        }<a name="line.322"></a>
-<span class="sourceLineNo">323</span>      }<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    }<a name="line.324"></a>
-<span class="sourceLineNo">325</span>  }<a name="line.325"></a>
-<span class="sourceLineNo">326</span><a name="line.326"></a>
-<span class="sourceLineNo">327</span>  private String printStats(<a name="line.327"></a>
-<span class="sourceLineNo">328</span>      ArrayListMultimap&lt;String, ServerAndLoad&gt; groupBasedLoad) {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    StringBuffer sb = new StringBuffer();<a name="line.329"></a>
-<span class="sourceLineNo">330</span>    sb.append("\n");<a name="line.330"></a>
-<span class="sourceLineNo">331</span>    for (String groupName : groupBasedLoad.keySet()) {<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      sb.append("Stats for group: " + groupName);<a name="line.332"></a>
-<span class="sourceLineNo">333</span>      sb.append("\n");<a name="line.333"></a>
-<span class="sourceLineNo">334</span>      sb.append(groupMap.get(groupName).getServers());<a name="line.334"></a>
-<span class="sourceLineNo">335</span>      sb.append("\n");<a name="line.335"></a>
-<span class="sourceLineNo">336</span>      List&lt;ServerAndLoad&gt; groupLoad = groupBasedLoad.get(groupName);<a name="line.336"></a>
-<span class="sourceLineNo">337</span>      int numServers = groupLoad.size();<a name="line.337"></a>
-<span class="sourceLineNo">338</span>      int totalRegions = 0;<a name="line.338"></a>
-<span class="sourceLineNo">339</span>      sb.append("Per Server Load: \n");<a name="line.339"></a>
-<span class="sourceLineNo">340</span>      for (ServerAndLoad sLoad : groupLoad) {<a name="line.340"></a>
-<span class="sourceLineNo">341</span>        sb.append("Server :" + sLoad.getServerName() + " Load : "<a name="line.341"></a>
-<span class="sourceLineNo">342</span>            + sLoad.getLoad() + "\n");<a name="line.342"></a>
-<span class="sourceLineNo">343</span>        totalRegions += sLoad.getLoad();<a name="line.343"></a>
-<span class="sourceLineNo">344</span>      }<a name="line.344"></a>
-<span class="sourceLineNo">345</span>      sb.append(" Group Statistics : \n");<a name="line.345"></a>
-<span class="sourceLineNo">346</span>      float average = (float) totalRegions / numServers;<a name="line.346"></a>
-<span class="sourceLineNo">347</span>      int max = (int) Math.ceil(average);<a name="line.347"></a>
-<span class="sourceLineNo">348</span>      int min = (int) Math.floor(average);<a name="line.348"></a>
-<span class="sourceLineNo">349</span>      sb.append("[srvr=" + numServers + " rgns=" + totalRegions + " avg="<a name="line.349"></a>
-<span class="sourceLineNo">350</span>          + average + " max=" + max + " min=" + min + "]");<a name="line.350"></a>
-<span class="sourceLineNo">351</span>      sb.append("\n");<a name="line.351"></a>
-<span class="sourceLineNo">352</span>      sb.append("===============================");<a name="line.352"></a>
-<span class="sourceLineNo">353</span>      sb.append("\n");<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    }<a name="line.354"></a>
-<span class="sourceLineNo">355</span>    return sb.toString();<a name="line.355"></a>
-<span class="sourceLineNo">356</span>  }<a name="line.356"></a>
-<span class="sourceLineNo">357</span><a name="line.357"></a>
-<span class="sourceLineNo">358</span>  private ArrayListMultimap&lt;String, ServerAndLoad&gt; convertToGroupBasedMap(<a name="line.358"></a>
-<span class="sourceLineNo">359</span>      final Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; serversMap) throws IOException {<a name="line.359"></a>
-<span class="sourceLineNo">360</span>    ArrayListMultimap&lt;String, ServerAndLoad&gt; loadMap = ArrayListMultimap<a name="line.360"></a>
-<span class="sourceLineNo">361</span>        .create();<a name="line.361"></a>
-<span class="sourceLineNo">362</span>    for (RSGroupInfo gInfo : getMockedGroupInfoManager().listRSGroups()) {<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      Set&lt;Address&gt; groupServers = gInfo.getServers();<a name="line.363"></a>
-<span class="sourceLineNo">364</span>      for (Address hostPort : groupServers) {<a name="line.364"></a>
-<span class="sourceLineNo">365</span>        ServerName actual = null;<a name="line.365"></a>
-<span class="sourceLineNo">366</span>        for(ServerName entry: servers) {<a name="line.366"></a>
-<span class="sourceLineNo">367</span>          if(entry.getAddress().equals(hostPort)) {<a name="line.367"></a>
-<span class="sourceLineNo">368</span>            actual = entry;<a name="line.368"></a>
-<span class="sourceLineNo">369</span>            break;<a name="line.369"></a>
-<span class="sourceLineNo">370</span>          }<a name="line.370"></a>
-<span class="sourceLineNo">371</span>        }<a name="line.371"></a>
-<span class="sourceLineNo">372</span>        List&lt;RegionInfo&gt; regions = serversMap.get(actual);<a name="line.372"></a>
-<span class="sourceLineNo">373</span>        assertTrue("No load for " + actual, regions != null);<a name="line.373"></a>
-<span class="sourceLineNo">374</span>        loadMap.put(gInfo.getName(),<a name="line.374"></a>
-<span class="sourceLineNo">375</span>            new ServerAndLoad(actual, regions.size()));<a name="line.375"></a>
-<span class="sourceLineNo">376</span>      }<a name="line.376"></a>
-<span class="sourceLineNo">377</span>    }<a name="line.377"></a>
-<span class="sourceLineNo">378</span>    return loadMap;<a name="line.378"></a>
-<span class="sourceLineNo">379</span>  }<a name="line.379"></a>
-<span class="sourceLineNo">380</span><a name="line.380"></a>
-<span class="sourceLineNo">381</span>  private ArrayListMultimap&lt;String, ServerAndLoad&gt; reconcile(<a name="line.381"></a>
-<span class="sourceLineNo">382</span>      ArrayListMultimap&lt;String, ServerAndLoad&gt; previousLoad,<a name="line.382"></a>
-<span class="sourceLineNo">383</span>      List&lt;RegionPlan&gt; plans) {<a name="line.383"></a>
-<span class="sourceLineNo">384</span>    ArrayListMultimap&lt;String, ServerAndLoad&gt; result = ArrayListMultimap<a name="line.384"></a>
-<span class="sourceLineNo">385</span>        .create();<a name="line.385"></a>
-<span class="sourceLineNo">386</span>    result.putAll(previousLoad);<a name="line.386"></a>
-<span class="sourceLineNo">387</span>    if (plans != null) {<a name="line.387"></a>
-<span class="sourceLineNo">388</span>      for (RegionPlan plan : plans) {<a name="line.388"></a>
-<span class="sourceLineNo">389</span>        ServerName source = plan.getSource();<a name="line.389"></a>
-<span class="sourceLineNo">390</span>        updateLoad(result, source, -1);<a name="line.390"></a>
-<span class="sourceLineNo">391</span>        ServerName destination = plan.getDestination();<a name="line.391"></a>
-<span class="sourceLineNo">392</span>        updateLoad(result, destination, +1);<a name="line.392"></a>
-<span class="sourceLineNo">393</span>      }<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    }<a name="line.394"></a>
-<span class="sourceLineNo">395</span>    return result;<a name="line.395"></a>
-<span class="sourceLineNo">396</span>  }<a name="line.396"></a>
-<span class="sourceLineNo">397</span><a name="line.397"></a>
-<span class="sourceLineNo">398</span>  private void updateLoad(<a name="line.398"></a>
-<span class="sourceLineNo">399</span>      ArrayListMultimap&lt;String, ServerAndLoad&gt; previousLoad,<a name="line.399"></a>
-<span class="sourceLineNo">400</span>      final ServerName sn, final int diff) {<a name="line.400"></a>
-<span class="sourceLineNo">401</span>    for (String groupName : previousLoad.keySet()) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>      ServerAndLoad newSAL = null;<a name="line.402"></a>
-<span class="sourceLineNo">403</span>      ServerAndLoad oldSAL = null;<a name="line.403"></a>
-<span class="sourceLineNo">404</span>      for (ServerAndLoad sal : previousLoad.get(groupName)) {<a name="line.404"></a>
-<span class="sourceLineNo">405</span>        if (ServerName.isSameAddress(sn, sal.getServerName())) {<a name="line.405"></a>
-<span class="sourceLineNo">406</span>          oldSAL = sal;<a name="line.406"></a>
-<span class="sourceLineNo">407</span>          newSAL = new ServerAndLoad(sn, sal.getLoad() + diff);<a name="line.407"></a>
-<span class="sourceLineNo">408</span>          break;<a name="line.408"></a>
-<span class="sourceLineNo">409</span>        }<a name="line.409"></a>
-<span class="sourceLineNo">410</span>      }<a name="line.410"></a>
-<span class="sourceLineNo">411</span>      if (newSAL != null) {<a name="line.411"></a>
-<span class="sourceLineNo">412</span>        previousLoad.remove(groupName, oldSAL);<a name="line.412"></a>
-<span class="sourceLineNo">413</span>        previousLoad.put(groupName, newSAL);<a name="line.413"></a>
-<span class="sourceLineNo">414</span>        break;<a name="line.414"></a>
-<span class="sourceLineNo">415</span>      }<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    }<a name="line.416"></a>
-<span class="sourceLineNo">417</span>  }<a name="line.417"></a>
-<span class="sourceLineNo">418</span><a name="line.418"></a>
-<span class="sourceLineNo">419</span>  private Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; mockClusterServers() throws IOException {<a name="line.419"></a>
-<span class="sourceLineNo">420</span>    assertTrue(servers.size() == regionAssignment.length);<a name="line.420"></a>
-<span class="sourceLineNo">421</span>    Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; assignment = new TreeMap&lt;&gt;();<a name="line.421"></a>
-<span class="sourceLineNo">422</span>    for (int i = 0; i &lt; servers.size(); i++) {<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      int numRegions = regionAssignment[i];<a name="line.423"></a>
-<span class="sourceLineNo">424</span>      List&lt;RegionInfo&gt; regions = assignedRegions(numRegions, servers.get(i));<a name="line.424"></a>
-<span class="sourceLineNo">425</span>      assignment.put(servers.get(i), regions);<a name="line.425"></a>
-<span class="sourceLineNo">426</span>    }<a name="line.426"></a>
-<span class="sourceLineNo">427</span>    return assignment;<a name="line.427"></a>
-<span class="sourceLineNo">428</span>  }<a name="line.428"></a>
-<span class="sourceLineNo">429</span><a name="line.429"></a>
-<span class="sourceLineNo">430</span>  /**<a name="line.430"></a>
-<span class="sourceLineNo">431</span>   * Generate a list of regions evenly distributed between the tables.<a name="line.431"></a>
-<span class="sourceLineNo">432</span>   *<a name="line.432"></a>
-<span class="sourceLineNo">433</span>   * @param numRegions The number of regions to be generated.<a name="line.433"></a>
-<span class="sourceLineNo">434</span>   * @return List of RegionInfo.<a name="line.434"></a>
-<span class="sourceLineNo">435</span>   */<a name="line.435"></a>
-<span class="sourceLineNo">436</span>  private List&lt;RegionInfo&gt; randomRegions(int numRegions) {<a name="line.436"></a>
-<span class="sourceLineNo">437</span>    List&lt;RegionInfo&gt; regions = new ArrayList&lt;&gt;(numRegions);<a name="line.437"></a>
-<span class="sourceLineNo">438</span>    byte[] start = new byte[16];<a name="line.438"></a>
-<span class="sourceLineNo">439</span>    byte[] end = new byte[16];<a name="line.439"></a>
-<span class="sourceLineNo">440</span>    rand.nextBytes(start);<a name="line.440"></a>
-<span class="sourceLineNo">441</span>    rand.nextBytes(end);<a name="line.441"></a>
-<span class="sourceLineNo">442</span>    int regionIdx = rand.nextInt(tables.length);<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    for (int i = 0; i &lt; numRegions; i++) {<a name="line.443"></a>
-<span class="sourceLineNo">444</span>      Bytes.putInt(start, 0, numRegions &lt;&lt; 1);<a name="line.444"></a>
-<span class="sourceLineNo">445</span>      Bytes.putInt(end, 0, (numRegions &lt;&lt; 1) + 1);<a name="line.445"></a>
-<span class="sourceLineNo">446</span>      int tableIndex = (i + regionIdx) % tables.length;<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      regions.add(RegionInfoBuilder.newBuilder(tables[tableIndex])<a name="line.447"></a>
-<span class="sourceLineNo">448</span>          .setStartKey(start)<a name="line.448"></a>
-<span class="sourceLineNo">449</span>          .setEndKey(end)<a name="line.449"></a>
-<span class="sourceLineNo">450</span>          .setSplit(false)<a name="line.450"></a>
-<span class="sourceLineNo">451</span>          .setRegionId(regionId++)<a name="line.451"></a>
-<span class="sourceLineNo">452</span>          .build());<a name="line.452"></a>
-<span class="sourceLineNo">453</span>    }<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    return regions;<a name="line.454"></a>
-<span class="sourceLineNo">455</span>  }<a name="line.455"></a>
-<span class="sourceLineNo">456</span><a name="line.456"></a>
-<span class="sourceLineNo">457</span>  /**<a name="line.457"></a>
-<span class="sourceLineNo">458</span>   * Generate assigned regions to a given server using group information.<a name="line.458"></a>
-<span class="sourceLineNo">459</span>   *<a name="line.459"></a>
-<span class="sourceLineNo">460</span>   * @param numRegions the num regions to generate<a name="line.460"></a>
-<span class="sourceLineNo">461</span>   * @param sn the servername<a name="line.461"></a>
-<span class="sourceLineNo">462</span>   * @return the list of regions<a name="line.462"></a>
-<span class="sourceLineNo">463</span>   * @throws java.io.IOException Signals that an I/O exception has occurred.<a name="line.463"></a>
-<span class="sourceLineNo">464</span>   */<a name="line.464"></a>
-<span class="sourceLineNo">465</span>  private List&lt;RegionInfo&gt; assignedRegions(int numRegions, ServerName sn) throws IOException {<a name="line.465"></a>
-<span class="sourceLineNo">466</span>    List&lt;RegionInfo&gt; regions = new ArrayList&lt;&gt;(numRegions);<a name="line.466"></a>
-<span class="sourceLineNo">467</span>    byte[] start = new byte[16];<a name="line.467"></a>
-<span class="sourceLineNo">468</span>    byte[] end = new byte[16];<a name="line.468"></a>
-<span class="sourceLineNo">469</span>    Bytes.putInt(start, 0, numRegions &lt;&lt; 1);<a name="line.469"></a>
-<span class="sourceLineNo">470</span>    Bytes.putInt(end, 0, (numRegions &lt;&lt; 1) + 1);<a name="line.470"></a>
-<span class="sourceLineNo">471</span>    for (int i = 0; i &lt; numRegions; i++) {<a name="line.471"></a>
-<span class="sourceLineNo">472</span>      TableName tableName = getTableName(sn);<a name="line.472"></a>
-<span class="sourceLineNo">473</span>      regions.add(RegionInfoBuilder.newBuilder(tableName)<a name="line.473"></a>
-<span class="sourceLineNo">474</span>          .setStartKey(start)<a name="line.474"></a>
-<span class="sourceLineNo">475</span>          .setEndKey(end)<a name="line.475"></a>
-<span class="sourceLineNo">476</span>          .setSplit(false)<a name="line.476"></a>
-<span class="sourceLineNo">477</span>          .setRegionId(regionId++)<a name="line.477"></a>
-<span class="sourceLineNo">478</span>          .build());<a name="line.478"></a>
-<span class="sourceLineNo">479</span>    }<a name="line.479"></a>
-<span class="sourceLineNo">480</span>    return regions;<a name="line.480"></a>
-<span class="sourceLineNo">481</span>  }<a name="line.481"></a>
-<span class="sourceLineNo">482</span><a name="line.482"></a>
-<span class="sourceLineNo">483</span>  private static List&lt;ServerName&gt; generateServers(int numServers) {<a name="line.483"></a>
-<span class="sourceLineNo">484</span>    List&lt;ServerName&gt; servers = new ArrayList&lt;&gt;(numServers);<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    for (int i = 0; i &lt; numServers; i++) {<a name="line.485"></a>
-<span class="sourceLineNo">486</span>      String host = "server" + rand.nextInt(100000);<a name="line.486"></a>
-<span class="sourceLineNo">487</span>      int port = rand.nextInt(60000);<a name="line.487"></a>
-<span class="sourceLineNo">488</span>      servers.add(ServerName.valueOf(host, port, -1));<a name="line.488"></a>
-<span class="sourceLineNo">489</span>    }<a name="line.489"></a>
-<span class="sourceLineNo">490</span>    return servers;<a name="line.490"></a>
-<span class="sourceLineNo">491</span>  }<a name="line.491"></a>
-<span class="sourceLineNo">492</span><a name="line.492"></a>
-<span class="sourceLineNo">493</span>  /**<a name="line.493"></a>
-<span class="sourceLineNo">494</span>   * Construct group info, with each group having at least one server.<a name="line.494"></a>
-<span class="sourceLineNo">495</span>   *<a name="line.495"></a>
-<span class="sourceLineNo">496</span>   * @param servers the servers<a name="line.496"></a>
-<span class="sourceLineNo">497</span>   * @param groups the groups<a name="line.497"></a>
-<span class="sourceLineNo">498</span>   * @return the map<a name="line.498"></a>
-<span class="sourceLineNo">499</span>   */<a name="line.499"></a>
-<span class="sourceLineNo">500</span>  private static Map&lt;String, RSGroupInfo&gt; constructGroupInfo(<a name="line.500"></a>
-<span class="sourceLineNo">501</span>      List&lt;ServerName&gt; servers, String[] groups) {<a name="line.501"></a>
-<span class="sourceLineNo">502</span>    assertTrue(servers != null);<a name="line.502"></a>
-<span class="sourceLineNo">503</span>    assertTrue(servers.size() &gt;= groups.length);<a name="line.503"></a>
-<span class="sourceLineNo">504</span>    int index = 0;<a name="line.504"></a>
-<span class="sourceLineNo">505</span>    Map&lt;String, RSGroupInfo&gt; groupMap = new HashMap&lt;&gt;();<a name="line.505"></a>
-<span class="sourceLineNo">506</span>    for (String grpName : groups) {<a name="line.506"></a>
-<span class="sourceLineNo">507</span>      RSGroupInfo RSGroupInfo = new RSGroupInfo(grpName);<a name="line.507"></a>
-<span class="sourceLineNo">508</span>      RSGroupInfo.addServer(servers.get(index).getAddress());<a name="line.508"></a>
-<span class="sourceLineNo">509</span>      groupMap.put(grpName, RSGroupInfo);<a name="line.509"></a>
-<span class="sourceLineNo">510</span>      index++;<a name="line.510"></a>
-<span class="sourceLineNo">511</span>    }<a name="line.511"></a>
-<span class="sourceLineNo">512</span>    while (index &lt; servers.size()) {<a name="line.512"></a>
-<span class="sourceLineNo">513</span>      int grpIndex = rand.nextInt(groups.length);<a name="line.513"></a>
-<span class="sourceLineNo">514</span>      groupMap.get(groups[grpIndex]).addServer(<a name="line.514"></a>
-<span class="sourceLineNo">515</span>          servers.get(index).getAddress());<a name="line.515"></a>
-<span class="sourceLineNo">516</span>      index++;<a name="line.516"></a>
-<span class="sourceLineNo">517</span>    }<a name="line.517"></a>
-<span class="sourceLineNo">518</span>    return groupMap;<a name="line.518"></a>
-<span class="sourceLineNo">519</span>  }<a name="line.519"></a>
-<span class="sourceLineNo">520</span><a name="line.520"></a>
-<span class="sourceLineNo">521</span>  /**<a name="line.521"></a>
-<span class="sourceLineNo">522</span>   * Construct table descriptors evenly distributed between the groups.<a name="line.522"></a>
-<span class="sourceLineNo">523</span>   *<a name="line.523"></a>
-<span class="sourceLineNo">524</span>   * @return the list<a name="line.524"></a>
-<span class="sourceLineNo">525</span>   */<a name="line.525"></a>
-<span class="sourceLineNo">526</span>  private static List&lt;HTableDescriptor&gt; constructTableDesc() {<a name="line.526"></a>
-<span class="sourceLineNo">527</span>    List&lt;HTableDescriptor&gt; tds = Lists.newArrayList();<a name="line.527"></a>
-<span class="sourceLineNo">528</span>    int index = rand.nextInt(groups.length);<a name="line.528"></a>
-<span class="sourceLineNo">529</span>    for (int i = 0; i &lt; tables.length; i++) {<a name="line.529"></a>
-<span class="sourceLineNo">530</span>      HTableDescriptor htd = new HTableDescriptor(tables[i]);<a name="line.530"></a>
-<span class="sourceLineNo">531</span>      int grpIndex = (i + index) % groups.length ;<a name="line.531"></a>
-<span class="sourceLineNo">532</span>      String groupName = groups[grpIndex];<a name="line.532"></a>
-<span class="sourceLineNo">533</span>      tableMap.put(tables[i], groupName);<a name="line.533"></a>
-<span class="sourceLineNo">534</span>      tds.add(htd);<a name="line.534"></a>
-<span class="sourceLineNo">535</span>    }<a name="line.535"></a>
-<span class="sourceLineNo">536</span>    return tds;<a name="line.536"></a>
-<span class="sourceLineNo">537</span>  }<a name="line.537"></a>
-<span class="sourceLineNo">538</span><a name="line.538"></a>
-<span class="sourceLineNo">539</span>  private static MasterServices getMockedMaster() throws IOException {<a name="line.539"></a>
-<span class="sourceLineNo">540</span>    TableDescriptors tds = Mockito.mock(TableDescriptors.class);<a name="line.540"></a>
-<span class="sourceLineNo">541</span>    Mockito.when(tds.get(tables[0])).thenReturn(tableDescs.get(0));<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    Mockito.when(tds.get(tables[1])).thenReturn(tableDescs.get(1));<a name="line.542"></a>
-<span class="sourceLineNo">543</span>    Mockito.when(tds.get(tables[2])).thenReturn(tableDescs.get(2));<a name="line.543"></a>
-<span class="sourceLineNo">544</span>    Mockito.when(tds.get(tables[3])).thenReturn(tableDescs.get(3));<a name="line.544"></a>
-<span class="sourceLineNo">545</span>    MasterServices services = Mockito.mock(HMaster.class);<a name="line.545"></a>
-<span class="sourceLineNo">546</span>    Mockito.when(services.getTableDescriptors()).thenReturn(tds);<a name="line.546"></a>
-<span class="sourceLineNo">547</span>    AssignmentManager am = Mockito.mock(AssignmentManager.class);<a name="line.547"></a>
-<span class="sourceLineNo">548</span>    Mockito.when(services.getAssignmentManager()).thenReturn(am);<a name="line.548"></a>
-<span class="sourceLineNo">549</span>    return services;<a name="line.549"></a>
-<span class="sourceLineNo">550</span>  }<a name="line.550"></a>
-<span class="sourceLineNo">551</span><a name="line.551"></a>
-<span class="sourceLineNo">552</span>  private static RSGroupInfoManager getMockedGroupInfoManager() throws IOException {<a name="line.552"></a>
-<span class="sourceLineNo">553</span>    RSGroupInfoManager gm = Mockito.mock(RSGroupInfoManager.class);<a name="line.553"></a>
-<span class="sourceLineNo">554</span>    Mockito.when(gm.getRSGroup(groups[0])).thenReturn(<a name="line.554"></a>
-<span class="sourceLineNo">555</span>        groupMap.get(groups[0]));<a name="line.555"></a>
-<span class="sourceLineNo">556</span>    Mockito.when(gm.getRSGroup(groups[1])).thenReturn(<a name="line.556"></a>
-<span class="sourceLineNo">557</span>        groupMap.get(groups[1]));<a name="line.557"></a>
-<span class="sourceLineNo">558</span>    Mockito.when(gm.getRSGroup(groups[2])).thenReturn(<a name="line.558"></a>
-<span class="sourceLineNo">559</span>        groupMap.get(groups[2]));<a name="line.559"></a>
-<span class="sourceLineNo">560</span>    Mockito.when(gm.getRSGroup(groups[3])).thenReturn(<a name="line.560"></a>
-<span class="sourceLineNo">561</span>        groupMap.get(groups[3]));<a name="line.561"></a>
-<span class="sourceLineNo">562</span>    Mockito.when(gm.listRSGroups()).thenReturn(<a name="line.562"></a>
-<span class="sourceLineNo">563</span>        Lists.newLinkedList(groupMap.values()));<a name="line.563"></a>
-<span class="sourceLineNo">564</span>    Mockito.when(gm.isOnline()).thenReturn(true);<a name="line.564"></a>
-<span class="sourceLineNo">565</span>    Mockito.when(gm.getRSGroupOfTable(Mockito.any()))<a name="line.565"></a>
-<span class="sourceLineNo">566</span>        .thenAnswer(new Answer&lt;String&gt;() {<a name="line.566"></a>
-<span class="sourceLineNo">567</span>          @Override<a name="line.567"></a>
-<span class="sourceLineNo">568</span>          public String answer(InvocationOnMock invocation) throws Throwable {<a name="line.568"></a>
-<span class="sourceLineNo">569</span>            return tableMap.get(invocation.getArgument(0));<a name="line.569"></a>
-<span class="sourceLineNo">570</span>          }<a name="line.570"></a>
-<span class="sourceLineNo">571</span>        });<a name="line.571"></a>
-<span class="sourceLineNo">572</span>    return gm;<a name="line.572"></a>
-<span class="sourceLineNo">573</span>  }<a name="line.573"></a>
-<span class="sourceLineNo">574</span><a name="line.574"></a>
-<span class="sourceLineNo">575</span>  private TableName getTableName(ServerName sn) throws IOException {<a name="line.575"></a>
-<span class="sourceLineNo">576</span>    TableName tableName = null;<a name="line.576"></a>
-<span class="sourceLineNo">577</span>    RSGroupInfoManager gm = getMockedGroupInfoManager();<a name="line.577"></a>
-<span class="sourceLineNo">578</span>    RSGroupInfo groupOfServer = null;<a name="line.578"></a>
-<span class="sourceLineNo">579</span>    for(RSGroupInfo gInfo : gm.listRSGroups()){<a name="line.579"></a>
-<span class="sourceLineNo">580</span>      if(gInfo.containsServer(sn.getAddress())){<a name="line.580"></a>
-<span class="sourceLineNo">581</span>        groupOfServer = gInfo;<a name="line.581"></a>
-<span class="sourceLineNo">582</span>        break;<a name="line.582"></a>
-<span class="sourceLineNo">583</span>      }<a name="line.583"></a>
-<span class="sourceLineNo">584</span>    }<a name="line.584"></a>
-<span class="sourceLineNo">585</span><a name="line.585"></a>
-<span class="sourceLineNo">586</span>    for(HTableDescriptor desc : tableDescs){<a name="line.586"></a>
-<span class="sourceLineNo">587</span>      if(gm.getRSGroupOfTable(desc.getTableName()).endsWith(groupOfServer.getName())){<a name="line.587"></a>
-<span class="sourceLineNo">588</span>        tableName = desc.getTableName();<a name="line.588"></a>
-<span class="sourceLineNo">589</span>      }<a name="line.589"></a>
-<span class="sourceLineNo">590</span>    }<a name="line.590"></a>
-<span class="sourceLineNo">591</span>    return tableName;<a name="line.591"></a>
-<span class="sourceLineNo">592</span>  }<a name="line.592"></a>
-<span class="sourceLineNo">593</span>}<a name="line.593"></a>
+<span class="sourceLineNo">078</span>  static TableName table0 = TableName.valueOf("dt0");<a name="line.78"></a>
+<span class="sourceLineNo">079</span>  static TableName[] tables =<a name="line.79"></a>
+<span class="sourceLineNo">080</span>      new TableName[] { TableName.valueOf("dt1"),<a name="line.80"></a>
+<span class="sourceLineNo">081</span>          TableName.valueOf("dt2"),<a name="line.81"></a>
+<span class="sourceLineNo">082</span>          TableName.valueOf("dt3"),<a name="line.82"></a>
+<span class="sourceLineNo">083</span>          TableName.valueOf("dt4")};<a name="line.83"></a>
+<span class="sourceLineNo">084</span>  static List&lt;ServerName&gt; servers;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>  static Map&lt;String, RSGroupInfo&gt; groupMap;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>  static Map&lt;TableName, String&gt; tableMap;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>  static List&lt;HTableDescriptor&gt; tableDescs;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>  int[] regionAssignment = new int[] { 2, 5, 7, 10, 4, 3, 1 };<a name="line.88"></a>
+<span class="sourceLineNo">089</span>  static int regionId = 0;<a name="line.89"></a>
+<span class="sourceLineNo">090</span><a name="line.90"></a>
+<span class="sourceLineNo">091</span>  @BeforeClass<a name="line.91"></a>
+<span class="sourceLineNo">092</span>  public static void beforeAllTests() throws Exception {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    rand = new SecureRandom();<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    servers = generateServers(7);<a name="line.94"></a>
+<span class="sourceLineNo">095</span>    groupMap = constructGroupInfo(servers, groups);<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    tableMap = new HashMap&lt;&gt;();<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    tableDescs = constructTableDesc();<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    Configuration conf = HBaseConfiguration.create();<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    conf.set("hbase.regions.slop", "0");<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    conf.set("hbase.rsgroup.grouploadbalancer.class", SimpleLoadBalancer.class.getCanonicalName());<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    loadBalancer = new RSGroupBasedLoadBalancer();<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    loadBalancer.setRsGroupInfoManager(getMockedGroupInfoManager());<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    loadBalancer.setMasterServices(getMockedMaster());<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    loadBalancer.setConf(conf);<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    loadBalancer.initialize();<a name="line.105"></a>
+<span class="sourceLineNo">106</span>  }<a name="line.106"></a>
+<span class="sourceLineNo">107</span><a name="line.107"></a>
+<span class="sourceLineNo">108</span>  /**<a name="line.108"></a>
+<span class="sourceLineNo">109</span>   * Test the load balancing algorithm.<a name="line.109"></a>
+<span class="sourceLineNo">110</span>   *<a name="line.110"></a>
+<span class="sourceLineNo">111</span>   * Invariant is that all servers of the group should be hosting either floor(average) or<a name="line.111"></a>
+<span class="sourceLineNo">112</span>   * ceiling(average)<a name="line.112"></a>
+<span class="sourceLineNo">113</span>   */<a name="line.113"></a>
+<span class="sourceLineNo">114</span>  @Test<a name="line.114"></a>
+<span class="sourceLineNo">115</span>  public void testBalanceCluster() throws Exception {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; servers = mockClusterServers();<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    ArrayListMultimap&lt;String, ServerAndLoad&gt; list = convertToGroupBasedMap(servers);<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    LOG.info("Mock Cluster :  " + printStats(list));<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    List&lt;RegionPlan&gt; plans = loadBalancer.balanceCluster(servers);<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    ArrayListMultimap&lt;String, ServerAndLoad&gt; balancedCluster = reconcile(<a name="line.120"></a>
+<span class="sourceLineNo">121</span>        list, plans);<a name="line.121"></a>
+<span class="sourceLineNo">122</span>    LOG.info("Mock Balance : " + printStats(balancedCluster));<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    assertClusterAsBalanced(balancedCluster);<a name="line.123"></a>
+<span class="sourceLineNo">124</span>  }<a name="line.124"></a>
+<span class="sourceLineNo">125</span><a name="line.125"></a>
+<span class="sourceLineNo">126</span>  /**<a name="line.126"></a>
+<span class="sourceLineNo">127</span>   * Invariant is that all servers of a group have load between floor(avg) and<a name="line.127"></a>
+<span class="sourceLineNo">128</span>   * ceiling(avg) number of regions.<a name="line.128"></a>
+<span class="sourceLineNo">129</span>   */<a name="line.129"></a>
+<span class="sourceLineNo">130</span>  private void assertClusterAsBalanced(<a name="line.130"></a>
+<span class="sourceLineNo">131</span>      ArrayListMultimap&lt;String, ServerAndLoad&gt; groupLoadMap) {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>    for (String gName : groupLoadMap.keySet()) {<a name="line.132"></a>
+<span class="sourceLineNo">133</span>      List&lt;ServerAndLoad&gt; groupLoad = groupLoadMap.get(gName);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>      int numServers = groupLoad.size();<a name="line.134"></a>
+<span class="sourceLineNo">135</span>      int numRegions = 0;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>      int maxRegions = 0;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>      int minRegions = Integer.MAX_VALUE;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>      for (ServerAndLoad server : groupLoad) {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>        int nr = server.getLoad();<a name="line.139"></a>
+<span class="sourceLineNo">140</span>        if (nr &gt; maxRegions) {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>          maxRegions = nr;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>        }<a name="line.142"></a>
+<span class="sourceLineNo">143</span>        if (nr &lt; minRegions) {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>          minRegions = nr;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>        }<a name="line.145"></a>
+<span class="sourceLineNo">146</span>        numRegions += nr;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      }<a name="line.147"></a>
+<span class="sourceLineNo">148</span>      if (maxRegions - minRegions &lt; 2) {<a name="line.148"></a>
+<span class="sourceLineNo">149</span>        // less than 2 between max and min, can't balance<a name="line.149"></a>
+<span class="sourceLineNo">150</span>        return;<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      }<a name="line.151"></a>
+<span class="sourceLineNo">152</span>      int min = numRegions / numServers;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>      int max = numRegions % numServers == 0 ? min : min + 1;<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span>      for (ServerAndLoad server : groupLoad) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>        assertTrue(server.getLoad() &lt;= max);<a name="line.156"></a>
+<span class="sourceLineNo">157</span>        assertTrue(server.getLoad() &gt;= min);<a name="line.157"></a>
+<span class="sourceLineNo">158</span>      }<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    }<a name="line.159"></a>
+<span class="sourceLineNo">160</span>  }<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>  /**<a name="line.162"></a>
+<span class="sourceLineNo">163</span>   * All regions have an assignment.<a name="line.163"></a>
+<span class="sourceLineNo">164</span>   */<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  private void assertImmediateAssignment(List&lt;RegionInfo&gt; regions,<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                                         List&lt;ServerName&gt; servers,<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                                         Map&lt;RegionInfo, ServerName&gt; assignments)<a name="line.167"></a>
+<span class="sourceLineNo">168</span>      throws IOException {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    for (RegionInfo region : regions) {<a name="line.169"></a>
+<span class="sourceLineNo">170</span>      assertTrue(assignments.containsKey(region));<a name="line.170"></a>
+<span class="sourceLineNo">171</span>      ServerName server = assignments.get(region);<a name="line.171"></a>
+<span class="sourceLineNo">172</span>      TableName tableName = region.getTable();<a name="line.172"></a>
+<span class="sourceLineNo">173</span><a name="line.173"></a>
+<span class="sourceLineNo">174</span>      String groupName = getMockedGroupInfoManager().getRSGroupOfTable(tableName);<a name="line.174"></a>
+<span class="sourceLineNo">175</span>      assertTrue(StringUtils.isNotEmpty(groupName));<a name="line.175"></a>
+<span class="sourceLineNo">176</span>      RSGroupInfo gInfo = getMockedGroupInfoManager().getRSGroup(groupName);<a name="line.176"></a>
+<span class="sourceLineNo">177</span>      assertTrue("Region is not correctly assigned to group servers.",<a name="line.177"></a>
+<span class="sourceLineNo">178</span>          gInfo.containsServer(server.getAddress()));<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    }<a name="line.179"></a>
+<span class="sourceLineNo">180</span>  }<a name="line.180"></a>
+<span class="sourceLineNo">181</span><a name="line.181"></a>
+<span class="sourceLineNo">182</span>  /**<a name="line.182"></a>
+<span class="sourceLineNo">183</span>   * Tests the bulk assignment used during cluster startup.<a name="line.183"></a>
+<span class="sourceLineNo">184</span>   *<a name="line.184"></a>
+<span class="sourceLineNo">185</span>   * Round-robin. Should yield a balanced cluster so same invariant as the<a name="line.185"></a>
+<span class="sourceLineNo">186</span>   * load balancer holds, all servers holding either floor(avg) or<a name="line.186"></a>
+<span class="sourceLineNo">187</span>   * ceiling(avg).<a name="line.187"></a>
+<span class="sourceLineNo">188</span>   */<a name="line.188"></a>
+<span class="sourceLineNo">189</span>  @Test<a name="line.189"></a>
+<span class="sourceLineNo">190</span>  public void testBulkAssignment() throws Exception {<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    List&lt;RegionInfo&gt; regions = randomRegions(25);<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; assignments = loadBalancer<a name="line.192"></a>
+<span class="sourceLineNo">193</span>        .roundRobinAssignment(regions, servers);<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    //test empty region/servers scenario<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    //this should not throw an NPE<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    loadBalancer.roundRobinAssignment(regions,<a name="line.196"></a>
+<span class="sourceLineNo">197</span>        Collections.EMPTY_LIST);<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    //test regular scenario<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    assertTrue(assignments.keySet().size() == servers.size());<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    for (ServerName sn : assignments.keySet()) {<a name="line.200"></a>
+<span class="sourceLineNo">201</span>      List&lt;RegionInfo&gt; regionAssigned = assignments.get(sn);<a name="line.201"></a>
+<span class="sourceLineNo">202</span>      for (RegionInfo region : regionAssigned) {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>        TableName tableName = region.getTable();<a name="line.203"></a>
+<span class="sourceLineNo">204</span>        String groupName =<a name="line.204"></a>
+<span class="sourceLineNo">205</span>            getMockedGroupInfoManager().getRSGroupOfTable(tableName);<a name="line.205"></a>
+<span class="sourceLineNo">206</span>        assertTrue(StringUtils.isNotEmpty(groupName));<a name="line.206"></a>
+<span class="sourceLineNo">207</span>        RSGroupInfo gInfo = getMockedGroupInfoManager().getRSGroup(<a name="line.207"></a>
+<span class="sourceLineNo">208</span>            groupName);<a name="line.208"></a>
+<span class="sourceLineNo">209</span>        assertTrue(<a name="line.209"></a>
+<span class="sourceLineNo">210</span>            "Region is not correctly assigned to group servers.",<a name="line.210"></a>
+<span class="sourceLineNo">211</span>            gInfo.containsServer(sn.getAddress()));<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>    ArrayListMultimap&lt;String, ServerAndLoad&gt; loadMap = convertToGroupBasedMap(assignments);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    assertClusterAsBalanced(loadMap);<a name="line.215"></a>
+<span class="sourceLineNo">216</span>  }<a name="line.216"></a>
+<span class="sourceLineNo">217</span><a name="line.217"></a>
+<span class="sourceLineNo">218</span>  @Test<a name="line.218"></a>
+<span class="sourceLineNo">219</span>  public void testGetMisplacedRegions() throws Exception {<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    // Test case where region is not considered misplaced if RSGroupInfo cannot be determined<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    Map&lt;RegionInfo, ServerName&gt; inputForTest = new HashMap&lt;&gt;();<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    RegionInfo ri = RegionInfoBuilder.newBuilder(table0)<a name="line.222"></a>
+<span class="sourceLineNo">223</span>        .setStartKey(new byte[16])<a name="line.223"></a>
+<span class="sourceLineNo">224</span>        .setEndKey(new byte[16])<a name="line.224"></a>
+<span class="sourceLineNo">225</span>        .setSplit(false)<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        .setRegionId(regionId++)<a name="line.226"></a>
+<span class="sourceLineNo">227</span>        .build();<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    inputForTest.put(ri, servers.iterator().next());<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    Set&lt;RegionInfo&gt; misplacedRegions = loadBalancer.getMisplacedRegions(inputForTest);<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    assertFalse(misplacedRegions.contains(ri));<a name="line.230"></a>
+<span class="sourceLineNo">231</span>  }<a name="line.231"></a>
+<span class="sourceLineNo">232</span>  /**<a name="line.232"></a>
+<span class="sourceLineNo">233</span>   * Test the cluster startup bulk assignment which attempts to retain assignment info.<a name="line.233"></a>
+<span class="sourceLineNo">234</span>   */<a name="line.234"></a>
+<span class="sourceLineNo">235</span>  @Test<a name="line.235"></a>
+<span class="sourceLineNo">236</span>  public void testRetainAssignment() throws Exception {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>    // Test simple case where all same servers are there<a name="line.237"></a>
+<span class="sourceLineNo">238</span>    Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; currentAssignments = mockClusterServers();<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    Map&lt;RegionInfo, ServerName&gt; inputForTest = new HashMap&lt;&gt;();<a name="line.239"></a>
+<span class="sourceLineNo">240</span>    for (ServerName sn : currentAssignments.keySet()) {<a name="line.240"></a>
+<span class="sourceLineNo">241</span>      for (RegionInfo region : currentAssignments.get(sn)) {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>        inputForTest.put(region, sn);<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>    //verify region-&gt;null server assignment is handled<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    inputForTest.put(randomRegions(1).get(0), null);<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; newAssignment = loadBalancer<a name="line.247"></a>
+<span class="sourceLineNo">248</span>        .retainAssignment(inputForTest, servers);<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    assertRetainedAssignment(inputForTest, servers, newAssignment);<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>  /**<a name="line.252"></a>
+<span class="sourceLineNo">253</span>   * Test BOGUS_SERVER_NAME among groups do not overwrite each other.<a name="line.253"></a>
+<span class="sourceLineNo">254</span>   */<a name="line.254"></a>
+<span class="sourceLineNo">255</span>  @Test<a name="line.255"></a>
+<span class="sourceLineNo">256</span>  public void testRoundRobinAssignment() throws Exception {<a name="line.256"></a>
+<span class="sourceLineNo">257</span>    List&lt;ServerName&gt; onlineServers = new ArrayList&lt;ServerName&gt;(servers.size());<a name="line.257"></a>
+<span class="sourceLineNo">258</span>    onlineServers.addAll(servers);<a name="line.258"></a>
+<span class="sourceLineNo">259</span>    List&lt;RegionInfo&gt; regions = randomRegions(25);<a name="line.259"></a>
+<span class="sourceLineNo">260</span>    int bogusRegion = 0;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    for(RegionInfo region : regions){<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      String group = tableMap.get(region.getTable());<a name="line.262"></a>
+<span class="sourceLineNo">263</span>      if("dg3".equals(group) || "dg4".equals(group)){<a name="line.263"></a>
+<span class="sourceLineNo">264</span>        bogusRegion++;<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>    Set&lt;Address&gt; offlineServers = new HashSet&lt;Address&gt;();<a name="line.267"></a>
+<span class="sourceLineNo">268</span>    offlineServers.addAll(groupMap.get("dg3").getServers());<a name="line.268"></a>
+<span class="sourceLineNo">269</span>    offlineServers.addAll(groupMap.get("dg4").getServers());<a name="line.269"></a>
+<span class="sourceLineNo">270</span>    for(Iterator&lt;ServerName&gt; it =  onlineServers.iterator(); it.hasNext();){<a name="line.270"></a>
+<span class="sourceLineNo">271</span>      ServerName server = it.next();<a name="line.271"></a>
+<span class="sourceLineNo">272</span>      Address address = server.getAddress();<a name="line.272"></a>
+<span class="sourceLineNo">273</span>      if(offlineServers.contains(address)){<a name="line.273"></a>
+<span class="sourceLineNo">274</span>        it.remove();<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>    Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; assignments = loadBalancer<a name="line.277"></a>
+<span class="sourceLineNo">278</span>        .roundRobinAssignment(regions, onlineServers);<a name="line.278"></a>
+<span class="sourceLineNo">279</span>    assertEquals(bogusRegion, assignments.get(LoadBalancer.BOGUS_SERVER_NAME).size());<a name="line.279"></a>
+<span class="sourceLineNo">280</span>  }<a name="line.280"></a>
+<span class="sourceLineNo">281</span><a name="line.281"></a>
+<span class="sourceLineNo">282</span>  /**<a name="line.282"></a>
+<span class="sourceLineNo">283</span>   * Asserts a valid retained assignment plan.<a name="line.283"></a>
+<span class="sourceLineNo">284</span>   * &lt;p&gt;<a name="line.284"></a>
+<span class="sourceLineNo">285</span>   * Must meet the following conditions:<a name="line.285"></a>
+<span class="sourceLineNo">286</span>   * &lt;ul&gt;<a name="line.286"></a>
+<span class="sourceLineNo">287</span>   * &lt;li&gt;Every input region has an assignment, and to an online server<a name="line.287"></a>
+<span class="sourceLineNo">288</span>   * &lt;li&gt;If a region had an existing assignment to a server with the same<a name="line.288"></a>
+<span class="sourceLineNo">289</span>   * address a a currently online server, it will be assigned to it<a name="line.289"></a>
+<span class="sourceLineNo">290</span>   * &lt;/ul&gt;<a name="line.290"></a>
+<span class="sourceLineNo">291</span>   */<a name="line.291"></a>
+<span class="sourceLineNo">292</span>  private void assertRetainedAssignment(<a name="line.292"></a>
+<span class="sourceLineNo">293</span>      Map&lt;RegionInfo, ServerName&gt; existing, List&lt;ServerName&gt; servers,<a name="line.293"></a>
+<span class="sourceLineNo">294</span>      Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; assignment)<a name="line.294"></a>
+<span class="sourceLineNo">295</span>      throws FileNotFoundException, IOException {<a name="line.295"></a>
+<span class="sourceLineNo">296</span>    // Verify condition 1, every region assigned, and to online server<a name="line.296"></a>
+<span class="sourceLineNo">297</span>    Set&lt;ServerName&gt; onlineServerSet = new TreeSet&lt;&gt;(servers);<a name="line.297"></a>
+<span class="sourceLineNo">298</span>    Set&lt;RegionInfo&gt; assignedRegions = new TreeSet&lt;&gt;(RegionInfo.COMPARATOR);<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    for (Map.Entry&lt;ServerName, List&lt;RegionInfo&gt;&gt; a : assignment.entrySet()) {<a name="line.299"></a>
+<span class="sourceLineNo">300</span>      assertTrue(<a name="line.300"></a>
+<span class="sourceLineNo">301</span>          "Region assigned to server that was not listed as online",<a name="line.301"></a>
+<span class="sourceLineNo">302</span>          onlineServerSet.contains(a.getKey()));<a name="line.302"></a>
+<span class="sourceLineNo">303</span>      for (RegionInfo r : a.getValue()) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>        assignedRegions.add(r);<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>    assertEquals(existing.size(), assignedRegions.size());<a name="line.307"></a>
+<span class="sourceLineNo">308</span><a name="line.308"></a>
+<span class="sourceLineNo">309</span>    // Verify condition 2, every region must be assigned to correct server.<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    Set&lt;String&gt; onlineHostNames = new TreeSet&lt;&gt;();<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    for (ServerName s : servers) {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>      onlineHostNames.add(s.getHostname());<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>    for (Map.Entry&lt;ServerName, List&lt;RegionInfo&gt;&gt; a : assignment.entrySet()) {<a name="line.315"></a>
+<span class="sourceLineNo">316</span>      ServerName currentServer = a.getKey();<a name="line.316"></a>
+<span class="sourceLineNo">317</span>      for (RegionInfo r : a.getValue()) {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>        ServerName oldAssignedServer = existing.get(r);<a name="line.318"></a>
+<span class="sourceLineNo">319</span>        TableName tableName = r.getTable();<a name="line.319"></a>
+<span class="sourceLineNo">320</span>        String groupName =<a name="line.320"></a>
+<span class="sourceLineNo">321</span>            getMockedGroupInfoManager().getRSGroupOfTable(tableName);<a name="line.321"></a>
+<span class="sourceLineNo">322</span>        assertTrue(StringUtils.isNotEmpty(groupName));<a name="line.322"></a>
+<span class="sourceLineNo">323</span>        RSGroupInfo gInfo = getMockedGroupInfoManager().getRSGroup(<a name="line.323"></a>
+<span class="sourceLineNo">324</span>            groupName);<a name="line.324"></a>
+<span class="sourceLineNo">325</span>        assertTrue(<a name="line.325"></a>
+<span class="sourceLineNo">326</span>            "Region is not correctly assigned to group servers.",<a name="line.326"></a>
+<span class="sourceLineNo">327</span>            gInfo.containsServer(currentServer.getAddress()));<a name="line.327"></a>
+<span class="sourceLineNo">328</span>        if (oldAssignedServer != null<a name="line.328"></a>
+<span class="sourceLineNo">329</span>            &amp;&amp; onlineHostNames.contains(oldAssignedServer<a name="line.329"></a>
+<span class="sourceLineNo">330</span>            .getHostname())) {<a name="line.330"></a>
+<span class="sourceLineNo">331</span>          // this region was previously assigned somewhere, and that<a name="line.331"></a>
+<span class="sourceLineNo">332</span>          // host is still around, then the host must have been is a<a name="line.332"></a>
+<span class="sourceLineNo">333</span>          // different group.<a name="line.333"></a>
+<span class="sourceLineNo">334</span>          if (!oldAssignedServer.getAddress().equals(currentServer.getAddress())) {<a name="line.334"></a>
+<span class="sourceLineNo">335</span>            assertFalse(gInfo.containsServer(oldAssignedServer.getAddress()));<a name="line.335"></a>
+<span class="sourceLineNo">336</span>          }<a name="line.336"></a>
+<span class="sourceLineNo">337</span>        }<a name="line.337"></a>
+<span class="sourceLineNo">338</span>      }<a name="line.338"></a>
+<span class="sourceLineNo">339</span>    }<a name="line.339"></a>
+<span class="sourceLineNo">340</span>  }<a name="line.340"></a>
+<span class="sourceLineNo">341</span><a name="line.341"></a>
+<span class="sourceLineNo">342</span>  private String printStats(<a name="line.342"></a>
+<span class="sourceLineNo">343</span>      ArrayListMultimap&lt;String, ServerAndLoad&gt; groupBasedLoad) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>    StringBuffer sb = new StringBuffer();<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    sb.append("\n");<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    for (String groupName : groupBasedLoad.keySet()) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>      sb.append("Stats for group: " + groupName);<a name="line.347"></a>
+<span class="sourceLineNo">348</span>      sb.append("\n");<a name="line.348"></a>
+<span class="sourceLineNo">349</span>      sb.append(groupMap.get(groupName).getServers());<a name="line.349"></a>
+<span class="sourceLineNo">350</span>      sb.append("\n");<a name="line.350"></a>
+<span class="sourceLineNo">351</span>      List&lt;ServerAndLoad&gt; groupLoad = groupBasedLoad.get(groupName);<a name="line.351"></a>
+<span class="sourceLineNo">352</span>      int numServers = groupLoad.size();<a name="line.352"></a>
+<span class="sourceLineNo">353</span>      int totalRegions = 0;<a name="line.353"></a>
+<span class="sourceLineNo">354</span>      sb.append("Per Server Load: \n");<a name="line.354"></a>
+<span class="sourceLineNo">355</span>      for (ServerAndLoad sLoad : groupLoad) {<a name="line.355"></a>
+<span class="sourceLineNo">356</span>        sb.append("Server :" + sLoad.getServerName() + " Load : "<a name="line.356"></a>
+<span class="sourceLineNo">357</span>            + sLoad.getLoad() + "\n");<a name="line.357"></a>
+<span class="sourceLineNo">358</span>        totalRegions += sLoad.getLoad();<a name="line.358"></a>
+<span class="sourceLineNo">359</span>      }<a name="line.359"></a>
+<span class="sourceLineNo">360</span>      sb.append(" Group Statistics : \n");<a name="line.360"></a>
+<span class="sourceLineNo">361</span>      float average = (float) totalRegions / numServers;<a name="line.361"></a>
+<span class="sourceLineNo">362</span>      int max = (int) Math.ceil(average);<a name="line.362"></a>
+<span class="sourceLineNo">363</span>      int min = (int) Math.floor(average);<a name="line.363"></a>
+<span class="sourceLineNo">364</span>      sb.append("[srvr=" + numServers + " rgns=" + totalRegions + " avg="<a name="line.364"></a>
+<span class="sourceLineNo">365</span>          + average + " max=" + max + " min=" + min + "]");<a name="line.365"></a>
+<span class="sourceLineNo">366</span>      sb.append("\n");<a name="line.366"></a>
+<span class="sourceLineNo">367</span>      sb.append("===============================");<a name="line.367"></a>
+<span class="sourceLineNo">368</span>      sb.append("\n");<a name="line.368"></a>
+<span class="sourceLineNo">369</span>    }<a name="line.369"></a>
+<span class="sourceLineNo">370</span>    return sb.toString();<a name="line.370"></a>
+<span class="sourceLineNo">371</span>  }<a name="line.371"></a>
+<span class="sourceLineNo">372</span><a name="line.372"></a>
+<span class="sourceLineNo">373</span>  private ArrayListMultimap&lt;String, ServerAndLoad&gt; convertToGroupBasedMap(<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      final Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; serversMap) throws IOException {<a name="line.374"></a>
+<span class="sourceLineNo">375</span>    ArrayListMultimap&lt;String, ServerAndLoad&gt; loadMap = ArrayListMultimap<a name="line.375"></a>
+<span class="sourceLineNo">376</span>        .create();<a name="line.376"></a>
+<span class="sourceLineNo">377</span>    for (RSGroupInfo gInfo : getMockedGroupInfoManager().listRSGroups()) {<a name="line.377"></a>
+<span class="sourceLineNo">378</span>      Set&lt;Address&gt; groupServers = gInfo.getServers();<a name="line.378"></a>
+<span class="sourceLineNo">379</span>      for (Address hostPort : groupServers) {<a name="line.379"></a>
+<span class="sourceLineNo">380</span>        ServerName actual = null;<a name="line.380"></a>
+<span class="sourceLineNo">381</span>        for(ServerName entry: servers) {<a name="line.381"></a>
+<span class="sourceLineNo">382</span>          if(entry.getAddress().equals(hostPort)) {<a name="line.382"></a>
+<span class="sourceLineNo">383</span>            actual = entry;<a name="line.383"></a>
+<span class="sourceLineNo">384</span>            break;<a name="line.384"></a>
+<span class="sourceLineNo">385</span>          }<a name="line.385"></a>
+<span class="sourceLineNo">386</span>        }<a name="line.386"></a>
+<span class="sourceLineNo">387</span>        List&lt;RegionInfo&gt; regions = serversMap.get(actual);<a name="line.387"></a>
+<span class="sourceLineNo">388</span>        assertTrue("No load for " + actual, regions != null);<a name="line.388"></a>
+<span class="sourceLineNo">389</span>        loadMap.put(gInfo.getName(),<a name="line.389"></a>
+<span class="sourceLineNo">390</span>            new ServerAndLoad(actual, regions.size()));<a name="line.390"></a>
+<span class="sourceLineNo">391</span>      }<a name="line.391"></a>
+<span class="sourceLineNo">392</span>    }<a name="line.392"></a>
+<span class="sourceLineNo">393</span>    return loadMap;<a name="line.393"></a>
+<span class="sourceLineNo">394</span>  }<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>  private ArrayListMultimap&lt;String, ServerAndLoad&gt; reconcile(<a name="line.396"></a>
+<span class="sourceLineNo">397</span>      ArrayListMultimap&lt;String, ServerAndLoad&gt; previousLoad,<a name="line.397"></a>
+<span class="sourceLineNo">398</span>      List&lt;RegionPlan&gt; plans) {<a name="line.398"></a>
+<span class="sourceLineNo">399</span>    ArrayListMultimap&lt;String, ServerAndLoad&gt; result = ArrayListMultimap<a name="line.399"></a>
+<span class="sourceLineNo">400</span>        .create();<a name="line.400"></a>
+<span class="sourceLineNo">401</span>    result.putAll(previousLoad);<a name="line.401"></a>
+<span class="sourceLineNo">402</span>    if (plans != null) {<a name="line.402"></a>
+<span class="sourceLineNo">403</span>      for (RegionPlan plan : plans) {<a name="line.403"></a>
+<span class="sourceLineNo">404</span>        ServerName source = plan.getSource();<a name="line.404"></a>
+<span class="sourceLineNo">405</span>        updateLoad(result, source, -1);<a name="line.405"></a>
+<span class="sourceLineNo">406</span>        ServerName destination = plan.getDestination();<a name="line.406"></a>
+<span class="sourceLineNo">407</span>        updateLoad(result, destination, +1);<a name="line.407"></a>
+<span class="sourceLineNo">408</span>      }<a name="line.408"></a>
+<span class="sourceLineNo">409</span>    }<a name="line.409"></a>
+<span class="sourceLineNo">410</span>    return result;<a name="line.410"></a>
+<span class="sourceLineNo">411</span>  }<a name="line.411"></a>
+<span class="sourceLineNo">412</span><a name="line.412"></a>
+<span class="sourceLineNo">413</span>  private void updateLoad(<a name="line.413"></a>
+<span class="sourceLineNo">414</span>      ArrayListMultimap&lt;String, ServerAndLoad&gt; previousLoad,<a name="line.414"></a>
+<span class="sourceLineNo">415</span>      final ServerName sn, final int diff) {<a name="line.415"></a>
+<span class="sourceLineNo">416</span>    for (String groupName : previousLoad.keySet()) {<a name="line.416"></a>
+<span class="sourceLineNo">417</span>      ServerAndLoad newSAL = null;<a name="line.417"></a>
+<span class="sourceLineNo">418</span>      ServerAndLoad oldSAL = null;<a name="line.418"></a>
+<span class="sourceLineNo">419</span>      for (ServerAndLoad sal : previousLoad.get(groupName)) {<a name="line.419"></a>
+<span class="sourceLineNo">420</span>        if (ServerName.isSameAddress(sn, sal.getServerName())) {<a name="line.420"></a>
+<span class="sourceLineNo">421</span>          oldSAL = sal;<a name="line.421"></a>
+<span class="sourceLineNo">422</span>          newSAL = new ServerAndLoad(sn, sal.getLoad() + diff);<a name="line.422"></a>
+<span class="sourceLineNo">423</span>          break;<a name="line.423"></a>
+<span class="sourceLineNo">424</span>        }<a name="line.424"></a>
+<span class="sourceLineNo">425</span>      }<a name="line.425"></a>
+<span class="sourceLineNo">426</span>      if (newSAL != null) {<a name="line.426"></a>
+<span class="sourceLineNo">427</span>        previousLoad.remove(groupName, oldSAL);<a name="line.427"></a>
+<span class="sourceLineNo">428</span>        previousLoad.put(groupName, newSAL);<a name="line.428"></a>
+<span class="sourceLineNo">429</span>        break;<a name="line.429"></a>
+<span class="sourceLineNo">430</span>      }<a name="line.430"></a>
+<span class="sourceLineNo">431</span>    }<a name="line.431"></a>
+<span class="sourceLineNo">432</span>  }<a name="line.432"></a>
+<span class="sourceLineNo">433</span><a name="line.433"></a>
+<span class="sourceLineNo">434</span>  private Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; mockClusterServers() throws IOException {<a name="line.434"></a>
+<span class="sourceLineNo">435</span>    assertTrue(servers.size() == regionAssignment.length);<a name="line.435"></a>
+<span class="sourceLineNo">436</span>    Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; assignment = new TreeMap&lt;&gt;();<a name="line.436"></a>
+<span class="sourceLineNo">437</span>    for (int i = 0; i &lt; servers.size(); i++) {<a name="line.437"></a>
+<span class="sourceLineNo">438</span>      int numRegions = regionAssignment[i];<a name="line.438"></a>
+<span class="sourceLineNo">439</span>      List&lt;RegionInfo&gt; regions = assignedRegions(numRegions, servers.get(i));<a name="line.439"></a>
+<span class="sourceLineNo">440</span>      assignment.put(servers.get(i), regions);<a name="line.440"></a>
+<span class="sourceLineNo">441</span>    }<a name="line.441"></a>
+<span class="sourceLineNo">442</span>    return assignment;<a name="line.442"></a>
+<span class="sourceLineNo">443</span>  }<a name="line.443"></a>
+<span class="sourceLineNo">444</span><a name="line.444"></a>
+<span class="sourceLineNo">445</span>  /**<a name="line.445"></a>
+<span class="sourceLin

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/org/apache/hadoop/hbase/client/TestMultiParallel.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestMultiParallel.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestMultiParallel.html
index becba0b..b7faa6c 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestMultiParallel.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestMultiParallel.html
@@ -109,7 +109,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.67">TestMultiParallel</a>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.69">TestMultiParallel</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>
@@ -354,7 +354,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.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.68">LOG</a></pre>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.70">LOG</a></pre>
 </li>
 </ul>
 <a name="UTIL">
@@ -363,7 +363,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <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/client/TestMultiParallel.html#line.70">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/client/TestMultiParallel.html#line.72">UTIL</a></pre>
 </li>
 </ul>
 <a name="VALUE">
@@ -372,7 +372,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>VALUE</h4>
-<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.71">VALUE</a></pre>
+<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.73">VALUE</a></pre>
 </li>
 </ul>
 <a name="QUALIFIER">
@@ -381,7 +381,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>QUALIFIER</h4>
-<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.72">QUALIFIER</a></pre>
+<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.74">QUALIFIER</a></pre>
 </li>
 </ul>
 <a name="FAMILY">
@@ -390,7 +390,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>FAMILY</h4>
-<pre>private 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/client/TestMultiParallel.html#line.73">FAMILY</a></pre>
+<pre>private 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/client/TestMultiParallel.html#line.75">FAMILY</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.client.TestMultiParallel.FAMILY">Constant Field Values</a></dd>
@@ -403,7 +403,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>TEST_TABLE</h4>
-<pre>private static final&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.74">TEST_TABLE</a></pre>
+<pre>private static final&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.76">TEST_TABLE</a></pre>
 </li>
 </ul>
 <a name="BYTES_FAMILY">
@@ -412,7 +412,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>BYTES_FAMILY</h4>
-<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.75">BYTES_FAMILY</a></pre>
+<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.77">BYTES_FAMILY</a></pre>
 </li>
 </ul>
 <a name="ONE_ROW">
@@ -421,7 +421,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>ONE_ROW</h4>
-<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.76">ONE_ROW</a></pre>
+<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.78">ONE_ROW</a></pre>
 </li>
 </ul>
 <a name="KEYS">
@@ -430,7 +430,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>KEYS</h4>
-<pre>private static final&nbsp;byte[][] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.77">KEYS</a></pre>
+<pre>private static final&nbsp;byte[][] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.79">KEYS</a></pre>
 </li>
 </ul>
 <a name="slaves">
@@ -439,7 +439,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>slaves</h4>
-<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.79">slaves</a></pre>
+<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.81">slaves</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.client.TestMultiParallel.slaves">Constant Field Values</a></dd>
@@ -452,7 +452,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>CONNECTION</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.client.Connection <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.80">CONNECTION</a></pre>
+<pre>private static&nbsp;org.apache.hadoop.hbase.client.Connection <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.82">CONNECTION</a></pre>
 </li>
 </ul>
 </li>
@@ -469,7 +469,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestMultiParallel</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.67">TestMultiParallel</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.69">TestMultiParallel</a>()</pre>
 </li>
 </ul>
 </li>
@@ -486,7 +486,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>beforeClass</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.82">beforeClass</a>()
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.84">beforeClass</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>
@@ -500,7 +500,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>afterClass</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.102">afterClass</a>()
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.104">afterClass</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>
@@ -514,7 +514,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>before</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.107">before</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.109">before</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>
@@ -528,7 +528,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>makeKeys</h4>
-<pre>private static&nbsp;byte[][]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.128">makeKeys</a>()</pre>
+<pre>private static&nbsp;byte[][]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.130">makeKeys</a>()</pre>
 </li>
 </ul>
 <a name="testActiveThreadsCount--">
@@ -537,7 +537,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testActiveThreadsCount</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.174">testActiveThreadsCount</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.176">testActiveThreadsCount</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>
 <div class="block">This is for testing the active number of threads that were used while
  doing a batch operation. It inserts one row per region via the batch
@@ -559,7 +559,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testBatchWithGet</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.198">testBatchWithGet</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.200">testBatchWithGet</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>
@@ -573,7 +573,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testBadFam</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.237">testBadFam</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.239">testBadFam</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>
@@ -587,7 +587,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testFlushCommitsNoAbort</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.267">testFlushCommitsNoAbort</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.269">testFlushCommitsNoAbort</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>
@@ -601,7 +601,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testFlushCommitsWithAbort</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.279">testFlushCommitsWithAbort</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.281">testFlushCommitsWithAbort</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>
 <div class="block">Only run one Multi test with a forced RegionServer abort. Otherwise, the
  unit tests will take an unnecessarily long time to run.</div>
@@ -617,7 +617,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>doTestFlushCommits</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.289">doTestFlushCommits</a>(boolean&nbsp;doAbort)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.291">doTestFlushCommits</a>(boolean&nbsp;doAbort)
                          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>
 <div class="block">Set table auto flush to false and test flushing commits</div>
 <dl>
@@ -634,7 +634,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testBatchWithPut</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.350">testBatchWithPut</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.352">testBatchWithPut</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>
@@ -648,7 +648,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testBatchWithDelete</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.383">testBatchWithDelete</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.385">testBatchWithDelete</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>
@@ -662,7 +662,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testHTableDeleteWithList</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.414">testHTableDeleteWithList</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.416">testHTableDeleteWithList</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>
@@ -676,7 +676,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testBatchWithManyColsInOneRowGetAndPut</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.444">testBatchWithManyColsInOneRowGetAndPut</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.446">testBatchWithManyColsInOneRowGetAndPut</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>
@@ -690,7 +690,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testBatchWithIncrementAndAppend</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.483">testBatchWithIncrementAndAppend</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.485">testBatchWithIncrementAndAppend</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>
@@ -704,7 +704,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testNonceCollision</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.518">testNonceCollision</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.520">testNonceCollision</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>
@@ -718,7 +718,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testBatchWithMixedActions</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.618">testBatchWithMixedActions</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.620">testBatchWithMixedActions</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>
@@ -732,7 +732,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>validateResult</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.721">validateResult</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;r)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.723">validateResult</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;r)</pre>
 </li>
 </ul>
 <a name="validateResult-java.lang.Object-byte:A-byte:A-">
@@ -741,7 +741,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>validateResult</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.725">validateResult</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;r1,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.727">validateResult</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;r1,
                             byte[]&nbsp;qual,
                             byte[]&nbsp;val)</pre>
 </li>
@@ -752,7 +752,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>constructPutRequests</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;org.apache.hadoop.hbase.client.Put&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.735">constructPutRequests</a>()</pre>
+<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;org.apache.hadoop.hbase.client.Put&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.737">constructPutRequests</a>()</pre>
 </li>
 </ul>
 <a name="validateLoadedData-org.apache.hadoop.hbase.client.Table-">
@@ -761,7 +761,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>validateLoadedData</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.745">validateLoadedData</a>(org.apache.hadoop.hbase.client.Table&nbsp;table)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.747">validateLoadedData</a>(org.apache.hadoop.hbase.client.Table&nbsp;table)
                          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>
@@ -775,7 +775,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>validateEmpty</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.789">validateEmpty</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;r1)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.791">validateEmpty</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;r1)</pre>
 </li>
 </ul>
 <a name="validateSizeAndEmpty-java.lang.Object:A-int-">
@@ -784,7 +784,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>validateSizeAndEmpty</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.795">validateSizeAndEmpty</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&nbsp;results,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMultiParallel.html#line.797">validateSizeAndEmpty</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&nbsp;results,
                                   int&nbsp;expectedSize)</pre>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/org/apache/hadoop/hbase/client/TestZKAsyncRegistry.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestZKAsyncRegistry.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestZKAsyncRegistry.html
index 961949c..5d472d8 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestZKAsyncRegistry.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestZKAsyncRegistry.html
@@ -109,7 +109,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestZKAsyncRegistry.html#line.48">TestZKAsyncRegistry</a>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestZKAsyncRegistry.html#line.51">TestZKAsyncRegistry</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>
@@ -130,10 +130,14 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <th class="colLast" scope="col">Field and Description</th>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><code>private static org.slf4j.Logger</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestZKAsyncRegistry.html#LOG">LOG</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>private static org.apache.hadoop.hbase.client.ZKAsyncRegistry</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestZKAsyncRegistry.html#REGISTRY">REGISTRY</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestZKAsyncRegistry.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
@@ -211,13 +215,22 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <!--   -->
 </a>
 <h3>Field Detail</h3>
+<a name="LOG">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>LOG</h4>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestZKAsyncRegistry.html#line.52">LOG</a></pre>
+</li>
+</ul>
 <a name="TEST_UTIL">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>TEST_UTIL</h4>
-<pre>private static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestZKAsyncRegistry.html#line.50">TEST_UTIL</a></pre>
+<pre>private static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestZKAsyncRegistry.html#line.53">TEST_UTIL</a></pre>
 </li>
 </ul>
 <a name="REGISTRY">
@@ -226,7 +239,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>REGISTRY</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.client.ZKAsyncRegistry <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestZKAsyncRegistry.html#line.52">REGISTRY</a></pre>
+<pre>private static&nbsp;org.apache.hadoop.hbase.client.ZKAsyncRegistry <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestZKAsyncRegistry.html#line.55">REGISTRY</a></pre>
 </li>
 </ul>
 </li>
@@ -243,7 +256,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestZKAsyncRegistry</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestZKAsyncRegistry.html#line.48">TestZKAsyncRegistry</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestZKAsyncRegistry.html#line.51">TestZKAsyncRegistry</a>()</pre>
 </li>
 </ul>
 </li>
@@ -260,7 +273,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>waitUntilAllReplicasHavingRegionLocation</h4>
-<pre>static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestZKAsyncRegistry.html#line.55">waitUntilAllReplicasHavingRegionLocation</a>(org.apache.hadoop.hbase.TableName&nbsp;tbl)
+<pre>static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestZKAsyncRegistry.html#line.58">waitUntilAllReplicasHavingRegionLocation</a>(org.apache.hadoop.hbase.TableName&nbsp;tbl)
                                               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>
@@ -274,7 +287,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>setUp</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestZKAsyncRegistry.html#line.85">setUp</a>()
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestZKAsyncRegistry.html#line.88">setUp</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>
@@ -288,7 +301,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>tearDown</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestZKAsyncRegistry.html#line.92">tearDown</a>()
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestZKAsyncRegistry.html#line.95">tearDown</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>
@@ -302,7 +315,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>test</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestZKAsyncRegistry.html#line.98">test</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestZKAsyncRegistry.html#line.101">test</a>()
           throws <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>,
                  <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent">ExecutionException</a>,
                  <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>
@@ -320,7 +333,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>testIndependentZKConnections</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestZKAsyncRegistry.html#line.118">testIndependentZKConnections</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestZKAsyncRegistry.html#line.124">testIndependentZKConnections</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>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
index b7bb4ff..7580e5c 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
@@ -158,8 +158,8 @@
 <ul>
 <li type="circle">java.lang.<a href="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/TagUsage.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">TagUsage</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/TestCacheOnWrite.CacheOnWriteType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">TestCacheOnWrite.CacheOnWriteType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/TagUsage.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">TagUsage</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/org/apache/hadoop/hbase/master/TestDLSAsyncFSWAL.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/master/TestDLSAsyncFSWAL.html b/testdevapidocs/org/apache/hadoop/hbase/master/TestDLSAsyncFSWAL.html
index c4791d3..9355e4f 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/master/TestDLSAsyncFSWAL.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/master/TestDLSAsyncFSWAL.html
@@ -114,7 +114,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestDLSAsyncFSWAL.html#line.25">TestDLSAsyncFSWAL</a>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestDLSAsyncFSWAL.html#line.27">TestDLSAsyncFSWAL</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/master/AbstractTestDLS.html" title="class in org.apache.hadoop.hbase.master">AbstractTestDLS</a></pre>
 </li>
 </ul>
@@ -205,7 +205,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/master/AbstractTestDLS.h
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestDLSAsyncFSWAL</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestDLSAsyncFSWAL.html#line.25">TestDLSAsyncFSWAL</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestDLSAsyncFSWAL.html#line.27">TestDLSAsyncFSWAL</a>()</pre>
 </li>
 </ul>
 </li>
@@ -222,7 +222,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/master/AbstractTestDLS.h
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getWalProvider</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>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestDLSAsyncFSWAL.html#line.28">getWalProvider</a>()</pre>
+<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>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestDLSAsyncFSWAL.html#line.30">getWalProvider</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/AbstractTestDLS.html#getWalProvider--">getWalProvider</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/AbstractTestDLS.html" title="class in org.apache.hadoop.hbase.master">AbstractTestDLS</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/org/apache/hadoop/hbase/master/TestDLSFSHLog.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/master/TestDLSFSHLog.html b/testdevapidocs/org/apache/hadoop/hbase/master/TestDLSFSHLog.html
index e185e66..885a168 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/master/TestDLSFSHLog.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/master/TestDLSFSHLog.html
@@ -114,7 +114,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestDLSFSHLog.html#line.25">TestDLSFSHLog</a>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestDLSFSHLog.html#line.27">TestDLSFSHLog</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/master/AbstractTestDLS.html" title="class in org.apache.hadoop.hbase.master">AbstractTestDLS</a></pre>
 </li>
 </ul>
@@ -205,7 +205,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/master/AbstractTestDLS.h
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestDLSFSHLog</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestDLSFSHLog.html#line.25">TestDLSFSHLog</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestDLSFSHLog.html#line.27">TestDLSFSHLog</a>()</pre>
 </li>
 </ul>
 </li>
@@ -222,7 +222,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/master/AbstractTestDLS.h
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getWalProvider</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>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestDLSFSHLog.html#line.28">getWalProvider</a>()</pre>
+<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>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestDLSFSHLog.html#line.30">getWalProvider</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/AbstractTestDLS.html#getWalProvider--">getWalProvider</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/AbstractTestDLS.html" title="class in org.apache.hadoop.hbase.master">AbstractTestDLS</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/org/apache/hadoop/hbase/master/TestMasterMetrics.MyMaster.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/master/TestMasterMetrics.MyMaster.html b/testdevapidocs/org/apache/hadoop/hbase/master/TestMasterMetrics.MyMaster.html
index 15f5ef1..bcffb56 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/master/TestMasterMetrics.MyMaster.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/master/TestMasterMetrics.MyMaster.html
@@ -187,7 +187,7 @@ extends org.apache.hadoop.hbase.master.HMaster</pre>
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.HRegionServer</h3>
-<code>cacheConfig, cacheFlusher, clusterConnection, clusterStatusTracker, compactSplitThread, conf, configurationManager, csm, executorService, fs, fsOk, fsUtilizationChore, hMemManager, infoServer, leases, lock, MASTER_HOSTNAME_KEY, metaTableLocator, movedRegions, msgInterval, numRegionsToReport, onlineRegions, regionFavoredNodesMap, REGIONSERVER, regionsInTransitionInRS, replicationSinkHandler, replicationSourceHandler, rpcServices, secureBulkLoadManager, serverName, sleeper, startcode, tableDescriptors, TEST_SKIP_REPORTING_TRANSITION, threadWakeFrequency, useThisHostnameInstead, walFactory, walFs, walRoller, zooKeeper</code></li>
+<code>cacheConfig, cacheFlusher, clusterConnection, clusterId, clusterStatusTracker, compactSplitThread, conf, configurationManager, csm, executorService, fs, fsOk, fsUtilizationChore, hMemManager, infoServer, leases, lock, MASTER_HOSTNAME_KEY, metaTableLocator, movedRegions, msgInterval, numRegionsToReport, onlineRegions, regionFavoredNodesMap, REGIONSERVER, regionsInTransitionInRS, replicationSinkHandler, replicationSourceHandler, rpcServices, secureBulkLoadManager, serverName, sleeper, startcode, tableDescriptors, TEST_SKIP_REPORTING_TRANSITION, threadWakeFrequency, useThisHostnameInstead, walFactory, walFs, walRoller, zooKeeper</code></li>
 </ul>
 </li>
 </ul>
@@ -231,14 +231,14 @@ extends org.apache.hadoop.hbase.master.HMaster</pre>
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.master.HMaster</h3>
-<code>abort, abortProcedure, addColumn, addReplicationPeer, balance, balance, balanceSwitch, canCreateBaseZNode, canUpdateTableDescriptor, checkIfShouldMoveSystemRegionAsync, checkInitialized, checkServiceStarted, checkTableModifiable, configureInfoServer, constructMaster, createMetaBootstrap, createNamespace, createQuotaSnapshotNotifier, createRpcServices, createServerManager, createSystemTable, createTable, decommissionRegionServers, deleteColumn, deleteNamespace, deleteTable, disableReplicationPeer, disableTable, enableReplicationPeer, enableTable, getAssignmentManager, getAverageLoad, getCatalogJanitor, getClientIdAuditPrefix, getClusterMetrics, getClusterMetrics, getClusterMetricsWithoutCoprocessor, getClusterMetricsWithoutCoprocessor, getClusterSchema, getDumpServlet, getFavoredNodesManager, getHFileCleaner, getInitializedEvent, getLastMajorCompactionTimestamp, getLastMajorCompactionTimestampForRegion, getLoadBalancer, getLoadBalancerClassName, getLoadedCoprocessors, getLockMa
 nager, getLocks, getLogCleaner, getMasterActiveTime, getMasterCoprocessorHost, getMasterCoprocessors, getMasterFileSystem, getMasterFinishedInitializationTime, getMasterMetrics, getMasterProcedureExecutor, getMasterProcedureManagerHost, getMasterQuotaManager, getMasterRpcServices, getMasterStartTime, getMasterWalManager, getMergePlanCount, getMetaTableObserver, getMobCompactionState, getNamespace, getNamespaces, getNumWALFiles, getProcedures, getProcessName, getQuotaObserverChore, getRegionNormalizer, getRegionNormalizerTracker, getRegionServerFatalLogBuffer, getRegionServerInfoPort, getRegionServerVersion, getRemoteInetAddress, getReplicationPeerConfig, getReplicationPeerManager, getServerCrashProcessingEnabledEvent, getServerManager, getServerName, getSnapshotManager, getSpaceQuotaSnapshotNotifier, getSplitOrMergeTracker, getSplitPlanCount, getTableDescriptors, getTableRegionForRow, getTableStateManager, getWalProcedureStore, getZooKeeper, initClusterSchemaService, initializeZKBas
 edSystemTrackers, initQuotaManager, isActiveMaster, isBalancerOn, isCatalogJanitorEnabled, isCleanerChoreEnabled, isInitialized, isInMaintenanceMode, isNormalizerOn, isServerCrashProcessingEnabled, isSplitOrMergeEnabled, listDecommissionedRegionServers, listReplicationPeers, listTableDescriptors, listTableDescriptorsByNamespace, listTableNames, listTableNamesByNamespace, login, main, mergeRegions, modifyColumn, modifyNamespace, modifyTable, move, normalizeRegions, recommissionRegionServer, recoverMeta, registerService, remoteProcedureCompleted, remoteProcedureFailed, removeReplicationPeer, reportMobCompactionEnd, reportMobCompactionStart, requestMobCompaction, restoreSnapshot, run, setCatalogJanitorEnabled, setInitialized, setServerCrashProcessingEnabled, shutdown, splitRegion, stopMaster, stopServiceThreads, truncateTable, updateConfigurationForSpaceQuotaObserver, updateReplicationPeerConfig, waitForMasterActive</code></li>
+<code>abort, abortProcedure, addColumn, addReplicationPeer, balance, balance, balanceSwitch, canCreateBaseZNode, canUpdateTableDescriptor, checkIfShouldMoveSystemRegionAsync, checkInitialized, checkServiceStarted, checkTableModifiable, configureInfoServer, constructMaster, createMetaBootstrap, createNamespace, createQuotaSnapshotNotifier, createRpcServices, createServerManager, createSystemTable, createTable, decommissionRegionServers, deleteColumn, deleteNamespace, deleteTable, disableReplicationPeer, disableTable, enableReplicationPeer, enableTable, getAssignmentManager, getAverageLoad, getCatalogJanitor, getClientIdAuditPrefix, getClusterMetrics, getClusterMetrics, getClusterMetricsWithoutCoprocessor, getClusterMetricsWithoutCoprocessor, getClusterSchema, getDumpServlet, getFavoredNodesManager, getHFileCleaner, getInitializedEvent, getLastMajorCompactionTimestamp, getLastMajorCompactionTimestampForRegion, getLoadBalancer, getLoadBalancerClassName, getLoadedCoprocessors, getLockMa
 nager, getLocks, getLogCleaner, getMasterActiveTime, getMasterCoprocessorHost, getMasterCoprocessors, getMasterFileSystem, getMasterFinishedInitializationTime, getMasterMetrics, getMasterProcedureExecutor, getMasterProcedureManagerHost, getMasterQuotaManager, getMasterRpcServices, getMasterStartTime, getMasterWalManager, getMergePlanCount, getMetaTableObserver, getMobCompactionState, getNamespace, getNamespaces, getNumWALFiles, getProcedures, getProcessName, getQuotaObserverChore, getRegionNormalizer, getRegionNormalizerTracker, getRegionServerFatalLogBuffer, getRegionServerInfoPort, getRegionServerVersion, getRemoteInetAddress, getReplicationPeerConfig, getReplicationPeerManager, getServerCrashProcessingEnabledEvent, getServerManager, getServerName, getSnapshotManager, getSpaceQuotaSnapshotNotifier, getSplitOrMergeTracker, getSplitPlanCount, getTableDescriptors, getTableRegionForRow, getTableStateManager, getWalProcedureStore, getZooKeeper, initClusterSchemaService, initializeZKBas
 edSystemTrackers, initQuotaManager, isActiveMaster, isBalancerOn, isCatalogJanitorEnabled, isCleanerChoreEnabled, isInitialized, isInMaintenanceMode, isNormalizerOn, isServerCrashProcessingEnabled, isSplitOrMergeEnabled, listDecommissionedRegionServers, listReplicationPeers, listTableDescriptors, listTableDescriptorsByNamespace, listTableNames, listTableNamesByNamespace, login, main, mergeRegions, modifyColumn, modifyNamespace, modifyTable, move, normalizeRegions, recommissionRegionServer, recoverMeta, registerService, remoteProcedureCompleted, remoteProcedureFailed, removeReplicationPeer, reportMobCompactionEnd, reportMobCompactionStart, requestMobCompaction, restoreSnapshot, run, setCatalogJanitorEnabled, setInitialized, setServerCrashProcessingEnabled, shutdown, splitRegion, stop, stopMaster, stopServiceThreads, truncateTable, updateConfigurationForSpaceQuotaObserver, updateReplicationPeerConfig, waitForMasterActive</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.regionserver.HRegionServer">
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.HRegionServer</h3>
-<code>abort, addRegion, addToMovedRegions, checkFileSystem, cleanMovedRegions, clearRegionBlockCache, closeAllRegions, closeAndOfflineRegionForSplitOrMerge, closeRegion, constructRegionServer, convertThrowableToIOE, createClusterConnection, createConnection, createRegionLoad, createRegionServerStatusStub, createRegionServerStatusStub, execRegionServerService, executeProcedure, getCacheConfig, getChoreService, getClusterConnection, getClusterId, getCompactionPressure, getCompactionRequestor, getCompactSplitThread, getConfiguration, getConfigurationManager, getConnection, getCoordinatedStateManager, getEventLoopGroupConfig, getExecutorService, getFavoredNodesForRegion, getFileSystem, getFlushPressure, getFlushRequester, getFlushThroughputController, getFsTableDescriptors, getHeapMemoryManager, getInfoServer, getLastSequenceId, getLeases, getMasterAddressTracker, getMetaTableLocator, getMetrics, getMostLoadedRegions, getNonceManager, getNumberOfOnlineRegions, getOnlineRegion, getOnline
 RegionsLocalContext, getOnlineTables, getRegion, getRegion, getRegionBlockLocations, getRegionByEncodedName, getRegionByEncodedName, getRegions, getRegions, getRegionServerAccounting, getRegionServerCoprocessorHost, getRegionServerCoprocessors, getRegionServerMetrics, getRegionServerRpcQuotaManager, getRegionServerSpaceQuotaManager, getRegionsInTransitionInRS, getReplicationSourceService, getRootDir, getRpcServer, getRSRpcServices, getSecureBulkLoadManager, getStartcode, getThreadWakeFrequency, getWAL, getWALFileSystem, getWalRoller, getWALRootDir, getWALs, handleReportForDutyResponse, initializeMemStoreChunkCreator, isAborted, isOnline, isStopped, isStopping, kill, movedRegionCleanerPeriod, onConfigurationChange, postOpenDeployTasks, regionLock, remoteProcedureComplete, removeRegion, reportRegionSizesForQuotas, reportRegionStateTransition, sendShutdownInterrupt, setupClusterConnection, shouldUseThisHostnameInstead, stop, stop, toString, unassign, updateConfiguration, updateRegionFa
 voredNodesMapping, waitForServerOnline, walRollRequestFinished</code></li>
+<code>abort, addRegion, addToMovedRegions, checkFileSystem, cleanMovedRegions, clearRegionBlockCache, closeAllRegions, closeAndOfflineRegionForSplitOrMerge, closeRegion, constructRegionServer, convertThrowableToIOE, createClusterConnection, createConnection, createRegionLoad, createRegionServerStatusStub, createRegionServerStatusStub, execRegionServerService, executeProcedure, getCacheConfig, getChoreService, getClusterConnection, getClusterId, getCompactionPressure, getCompactionRequestor, getCompactSplitThread, getConfiguration, getConfigurationManager, getConnection, getCoordinatedStateManager, getEventLoopGroupConfig, getExecutorService, getFavoredNodesForRegion, getFileSystem, getFlushPressure, getFlushRequester, getFlushThroughputController, getFsTableDescriptors, getHeapMemoryManager, getInfoServer, getLastSequenceId, getLeases, getMasterAddressTracker, getMetaTableLocator, getMetrics, getMostLoadedRegions, getNonceManager, getNumberOfOnlineRegions, getOnlineRegion, getOnline
 RegionsLocalContext, getOnlineTables, getRegion, getRegion, getRegionBlockLocations, getRegionByEncodedName, getRegionByEncodedName, getRegions, getRegions, getRegionServerAccounting, getRegionServerCoprocessorHost, getRegionServerCoprocessors, getRegionServerMetrics, getRegionServerRpcQuotaManager, getRegionServerSpaceQuotaManager, getRegionsInTransitionInRS, getReplicationSourceService, getRootDir, getRpcServer, getRSRpcServices, getSecureBulkLoadManager, getStartcode, getThreadWakeFrequency, getWAL, getWALFileSystem, getWalRoller, getWALRootDir, getWALs, handleReportForDutyResponse, initializeMemStoreChunkCreator, isAborted, isOnline, isStopped, isStopping, kill, movedRegionCleanerPeriod, onConfigurationChange, postOpenDeployTasks, regionLock, remoteProcedureComplete, removeRegion, reportRegionSizesForQuotas, reportRegionStateTransition, sendShutdownInterrupt, setupClusterConnection, shouldUseThisHostnameInstead, stop, toString, unassign, updateConfiguration, updateRegionFavoredN
 odesMapping, waitForServerOnline, walRollRequestFinished</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.util.HasThread">
@@ -280,7 +280,7 @@ extends org.apache.hadoop.hbase.master.HMaster</pre>
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.Stoppable</h3>
-<code>isStopped, stop</code></li>
+<code>isStopped</code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/org/apache/hadoop/hbase/master/TestMetaShutdownHandler.MyRegionServer.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/master/TestMetaShutdownHandler.MyRegionServer.html b/testdevapidocs/org/apache/hadoop/hbase/master/TestMetaShutdownHandler.MyRegionServer.html
index 2ccff87..2860003 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/master/TestMetaShutdownHandler.MyRegionServer.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/master/TestMetaShutdownHandler.MyRegionServer.html
@@ -173,7 +173,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.MiniHBa
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.HRegionServer</h3>
-<code>cacheConfig, cacheFlusher, clusterConnection, clusterStatusTracker, compactSplitThread, conf, configurationManager, csm, executorService, fs, fsOk, fsUtilizationChore, hMemManager, infoServer, leases, lock, MASTER_HOSTNAME_KEY, metaTableLocator, movedRegions, msgInterval, numRegionsToReport, onlineRegions, regionFavoredNodesMap, REGIONSERVER, regionsInTransitionInRS, replicationSinkHandler, replicationSourceHandler, rpcServices, secureBulkLoadManager, serverName, sleeper, startcode, tableDescriptors, TEST_SKIP_REPORTING_TRANSITION, threadWakeFrequency, useThisHostnameInstead, walFactory, walFs, walRoller, zooKeeper</code></li>
+<code>cacheConfig, cacheFlusher, clusterConnection, clusterId, clusterStatusTracker, compactSplitThread, conf, configurationManager, csm, executorService, fs, fsOk, fsUtilizationChore, hMemManager, infoServer, leases, lock, MASTER_HOSTNAME_KEY, metaTableLocator, movedRegions, msgInterval, numRegionsToReport, onlineRegions, regionFavoredNodesMap, REGIONSERVER, regionsInTransitionInRS, replicationSinkHandler, replicationSourceHandler, rpcServices, secureBulkLoadManager, serverName, sleeper, startcode, tableDescriptors, TEST_SKIP_REPORTING_TRANSITION, threadWakeFrequency, useThisHostnameInstead, walFactory, walFs, walRoller, zooKeeper</code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html b/testdevapidocs/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html
index 9c7f88e..7cfd0f7 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html
@@ -114,7 +114,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.72">TestFavoredStochasticLoadBalancer</a>
+<pre>public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.73">TestFavoredStochasticLoadBalancer</a>
 extends <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BalancerTestBase.html" title="class in org.apache.hadoop.hbase.master.balancer">BalancerTestBase</a></pre>
 </li>
 </ul>
@@ -313,7 +313,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/Balan
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.74">LOG</a></pre>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.75">LOG</a></pre>
 </li>
 </ul>
 <a name="TEST_UTIL">
@@ -322,7 +322,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/Balan
 <ul class="blockList">
 <li class="blockList">
 <h4>TEST_UTIL</h4>
-<pre>private static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.77">TEST_UTIL</a></pre>
+<pre>private static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.78">TEST_UTIL</a></pre>
 </li>
 </ul>
 <a name="SLAVES">
@@ -331,7 +331,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/Balan
 <ul class="blockList">
 <li class="blockList">
 <h4>SLAVES</h4>
-<pre>private static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.78">SLAVES</a></pre>
+<pre>private static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.79">SLAVES</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.master.balancer.TestFavoredStochasticLoadBalancer.SLAVES">Constant Field Values</a></dd>
@@ -344,7 +344,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/Balan
 <ul class="blockList">
 <li class="blockList">
 <h4>REGION_NUM</h4>
-<pre>private static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.79">REGION_NUM</a></pre>
+<pre>private static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.80">REGION_NUM</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.master.balancer.TestFavoredStochasticLoadBalancer.REGION_NUM">Constant Field Values</a></dd>
@@ -357,7 +357,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/Balan
 <ul class="blockList">
 <li class="blockList">
 <h4>admin</h4>
-<pre>private&nbsp;org.apache.hadoop.hbase.client.Admin <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.81">admin</a></pre>
+<pre>private&nbsp;org.apache.hadoop.hbase.client.Admin <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.82">admin</a></pre>
 </li>
 </ul>
 <a name="master">
@@ -366,7 +366,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/Balan
 <ul class="blockList">
 <li class="blockList">
 <h4>master</h4>
-<pre>private&nbsp;org.apache.hadoop.hbase.master.HMaster <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.82">master</a></pre>
+<pre>private&nbsp;org.apache.hadoop.hbase.master.HMaster <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.83">master</a></pre>
 </li>
 </ul>
 <a name="cluster">
@@ -375,7 +375,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/Balan
 <ul class="blockListLast">
 <li class="blockList">
 <h4>cluster</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html" title="class in org.apache.hadoop.hbase">MiniHBaseCluster</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.83">cluster</a></pre>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.html" title="class in org.apache.hadoop.hbase">MiniHBaseCluster</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.84">cluster</a></pre>
 </li>
 </ul>
 </li>
@@ -392,7 +392,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/Balan
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestFavoredStochasticLoadBalancer</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.72">TestFavoredStochasticLoadBalancer</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.73">TestFavoredStochasticLoadBalancer</a>()</pre>
 </li>
 </ul>
 </li>
@@ -409,7 +409,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/Balan
 <ul class="blockList">
 <li class="blockList">
 <h4>setupBeforeClass</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.86">setupBeforeClass</a>()
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.87">setupBeforeClass</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>
@@ -423,7 +423,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/Balan
 <ul class="blockList">
 <li class="blockList">
 <h4>startCluster</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.94">startCluster</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.95">startCluster</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>
@@ -437,7 +437,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/Balan
 <ul class="blockList">
 <li class="blockList">
 <h4>stopCluster</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.104">stopCluster</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.105">stopCluster</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>
@@ -451,7 +451,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/Balan
 <ul class="blockList">
 <li class="blockList">
 <h4>testBasicBalance</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.110">testBasicBalance</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.111">testBasicBalance</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>
@@ -465,7 +465,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/Balan
 <ul class="blockList">
 <li class="blockList">
 <h4>testRoundRobinAssignment</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.143">testRoundRobinAssignment</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.144">testRoundRobinAssignment</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>
@@ -479,7 +479,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/Balan
 <ul class="blockList">
 <li class="blockList">
 <h4>testBasicRegionPlacementAndReplicaLoad</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.168">testBasicRegionPlacementAndReplicaLoad</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.169">testBasicRegionPlacementAndReplicaLoad</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>
@@ -493,7 +493,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/Balan
 <ul class="blockList">
 <li class="blockList">
 <h4>testRandomAssignmentWithNoFavNodes</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.208">testRandomAssignmentWithNoFavNodes</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.209">testRandomAssignmentWithNoFavNodes</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>
@@ -507,7 +507,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/Balan
 <ul class="blockList">
 <li class="blockList">
 <h4>testBalancerWithoutFavoredNodes</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.239">testBalancerWithoutFavoredNodes</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.240">testBalancerWithoutFavoredNodes</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>
@@ -521,7 +521,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/Balan
 <ul class="blockList">
 <li class="blockList">
 <h4>testMisplacedRegions</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.277">testMisplacedRegions</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.278">testMisplacedRegions</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>
@@ -535,7 +535,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/Balan
 <ul class="blockList">
 <li class="blockList">
 <h4>test2FavoredNodesDead</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.324">test2FavoredNodesDead</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.325">test2FavoredNodesDead</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>
@@ -549,7 +549,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/Balan
 <ul class="blockList">
 <li class="blockList">
 <h4>testAllFavoredNodesDead</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.362">testAllFavoredNodesDead</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.363">testAllFavoredNodesDead</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>
@@ -563,7 +563,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/Balan
 <ul class="blockList">
 <li class="blockList">
 <h4>testAllFavoredNodesDeadMasterRestarted</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.424">testAllFavoredNodesDeadMasterRestarted</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.425">testAllFavoredNodesDeadMasterRestarted</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>
@@ -577,7 +577,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/Balan
 <ul class="blockList">
 <li class="blockList">
 <h4>checkFavoredNodeAssignments</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.517">checkFavoredNodeAssignments</a>(org.apache.hadoop.hbase.TableName&nbsp;tableName,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.518">checkFavoredNodeAssignments</a>(org.apache.hadoop.hbase.TableName&nbsp;tableName,
                                          org.apache.hadoop.hbase.favored.FavoredNodesManager&nbsp;fnm,
                                          org.apache.hadoop.hbase.master.assignment.RegionStates&nbsp;regionStates)
                                   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>
@@ -593,7 +593,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/Balan
 <ul class="blockList">
 <li class="blockList">
 <h4>stopServersAndWaitUntilProcessed</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.527">stopServersAndWaitUntilProcessed</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.ServerName&gt;&nbsp;currentFN)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.528">stopServersAndWaitUntilProcessed</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.ServerName&gt;&nbsp;currentFN)
                                        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>
@@ -607,7 +607,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/Balan
 <ul class="blockListLast">
 <li class="blockList">
 <h4>compactTable</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.550">compactTable</a>(org.apache.hadoop.hbase.TableName&nbsp;tableName)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestFavoredStochasticLoadBalancer.html#line.551">compactTable</a>(org.apache.hadoop.hbase.TableName&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></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-client-project/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/mail-lists.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/mail-lists.html
index 482989c..6729e29 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/mail-lists.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/mail-lists.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -176,7 +176,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugin-management.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugin-management.html
index d66ef0c..65c5c74 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugin-management.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugin-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -271,7 +271,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugins.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugins.html
index 939ee77..ce502d1 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugins.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugins.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -226,7 +226,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-info.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-info.html
index a8fb42f..0c6f568 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-info.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -167,7 +167,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-reports.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-reports.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-reports.html
index 983d0f7..2999fec 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-reports.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-reports.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Generated Reports</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -128,7 +128,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-summary.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-summary.html
index f20a7bb..ef377a8 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-summary.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-summary.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -166,7 +166,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-client-project/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/source-repository.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/source-repository.html
index f2ecad8..4f40fcc 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/source-repository.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/source-repository.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -134,7 +134,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-client-project/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/team-list.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/team-list.html
index 36f57c8..885850b 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/team-list.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/team-list.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -553,7 +553,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/checkstyle.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/checkstyle.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/checkstyle.html
index ec4f2f6..05ab461 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/checkstyle.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/checkstyle.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Checkstyle Results</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -150,7 +150,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependencies.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependencies.html
index 36e0786..8b5b616 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependencies.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependencies.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -3670,7 +3670,7 @@ built on Jackson JSON processor</p>
 <td>No</td></tr>
 <tr class="b">
 <td>hbase-zookeeper-3.0.0-SNAPSHOT-tests.jar</td>
-<td>59.7 kB</td>
+<td>58.2 kB</td>
 <td>-</td>
 <td>-</td>
 <td>-</td>
@@ -4174,7 +4174,7 @@ built on Jackson JSON processor</p>
 <td>compile: 1</td></tr>
 <tr class="b">
 <td>test: 71</td>
-<td>test: 42 MB</td>
+<td>test: 41.9 MB</td>
 <td>test: 14179</td>
 <td>test: 12950</td>
 <td>test: 516</td>
@@ -4193,7 +4193,7 @@ built on Jackson JSON processor</p>
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-convergence.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-convergence.html
index 6d43b2e..2157ac1 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-convergence.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-convergence.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -912,7 +912,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-info.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-info.html
index 5fb6ea1..52047da 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-info.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -147,7 +147,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-management.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-management.html
index c52995a..ba20f41 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-management.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -810,7 +810,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/index.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/index.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/index.html
index e75785e..2bd1075 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/index.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/index.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; About</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -119,7 +119,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/integration.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/integration.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/integration.html
index a238809..b114032 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/integration.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/integration.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -126,7 +126,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/issue-tracking.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/issue-tracking.html
index f5e50b1..5d58258 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/issue-tracking.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/issue-tracking.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/license.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/license.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/license.html
index 068d935..6032ee8 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/license.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/license.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -326,7 +326,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/mail-lists.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/mail-lists.html
index 226ea7a..95f9ed3 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/mail-lists.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/mail-lists.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -176,7 +176,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugin-management.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugin-management.html
index 3e77aeb..0bbbce5 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugin-management.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugin-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -271,7 +271,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugins.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugins.html
index 26639e6..bd45f6e 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugins.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugins.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -226,7 +226,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-info.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-info.html
index aeb3a15..6ddf9f8 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-info.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -167,7 +167,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-reports.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-reports.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-reports.html
index 42a68c2..a23bfca 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-reports.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-reports.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Generated Reports</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -128,7 +128,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-summary.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-summary.html
index 026783b..8da1c04 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-summary.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-summary.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -166,7 +166,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/source-repository.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/source-repository.html
index cf8477a..6b18f7f 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/source-repository.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/source-repository.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -134,7 +134,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/team-list.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/team-list.html
index cb0f44f..152ce62 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/team-list.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/team-list.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -553,7 +553,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/index.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/index.html b/hbase-build-configuration/hbase-archetypes/index.html
index 4b42588..05be22f 100644
--- a/hbase-build-configuration/hbase-archetypes/index.html
+++ b/hbase-build-configuration/hbase-archetypes/index.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; About</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -135,7 +135,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/integration.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/integration.html b/hbase-build-configuration/hbase-archetypes/integration.html
index 2983f9f..ee1a7ab 100644
--- a/hbase-build-configuration/hbase-archetypes/integration.html
+++ b/hbase-build-configuration/hbase-archetypes/integration.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -126,7 +126,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/issue-tracking.html b/hbase-build-configuration/hbase-archetypes/issue-tracking.html
index 5706e57..25d6a1d 100644
--- a/hbase-build-configuration/hbase-archetypes/issue-tracking.html
+++ b/hbase-build-configuration/hbase-archetypes/issue-tracking.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/license.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/license.html b/hbase-build-configuration/hbase-archetypes/license.html
index b306142..e933fcd 100644
--- a/hbase-build-configuration/hbase-archetypes/license.html
+++ b/hbase-build-configuration/hbase-archetypes/license.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -326,7 +326,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/mail-lists.html b/hbase-build-configuration/hbase-archetypes/mail-lists.html
index be19c11..1931ee2 100644
--- a/hbase-build-configuration/hbase-archetypes/mail-lists.html
+++ b/hbase-build-configuration/hbase-archetypes/mail-lists.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -176,7 +176,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/plugin-management.html b/hbase-build-configuration/hbase-archetypes/plugin-management.html
index c64d59f..685ff51 100644
--- a/hbase-build-configuration/hbase-archetypes/plugin-management.html
+++ b/hbase-build-configuration/hbase-archetypes/plugin-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -271,7 +271,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/plugins.html b/hbase-build-configuration/hbase-archetypes/plugins.html
index 02cb4a2..db797e8 100644
--- a/hbase-build-configuration/hbase-archetypes/plugins.html
+++ b/hbase-build-configuration/hbase-archetypes/plugins.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -214,7 +214,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/project-info.html b/hbase-build-configuration/hbase-archetypes/project-info.html
index 4b7129b..54b5bf8 100644
--- a/hbase-build-configuration/hbase-archetypes/project-info.html
+++ b/hbase-build-configuration/hbase-archetypes/project-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -167,7 +167,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/project-summary.html b/hbase-build-configuration/hbase-archetypes/project-summary.html
index 45be0aa..dd00647 100644
--- a/hbase-build-configuration/hbase-archetypes/project-summary.html
+++ b/hbase-build-configuration/hbase-archetypes/project-summary.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -163,7 +163,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/source-repository.html b/hbase-build-configuration/hbase-archetypes/source-repository.html
index 24aa15b..2fdc9b7 100644
--- a/hbase-build-configuration/hbase-archetypes/source-repository.html
+++ b/hbase-build-configuration/hbase-archetypes/source-repository.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -134,7 +134,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-archetypes/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/team-list.html b/hbase-build-configuration/hbase-archetypes/team-list.html
index 26ddfc7..2d5c172 100644
--- a/hbase-build-configuration/hbase-archetypes/team-list.html
+++ b/hbase-build-configuration/hbase-archetypes/team-list.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -553,7 +553,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-spark/checkstyle.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/checkstyle.html b/hbase-build-configuration/hbase-spark/checkstyle.html
index 145f963..0e89c7e 100644
--- a/hbase-build-configuration/hbase-spark/checkstyle.html
+++ b/hbase-build-configuration/hbase-spark/checkstyle.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Checkstyle Results</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -150,7 +150,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-spark/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/dependencies.html b/hbase-build-configuration/hbase-spark/dependencies.html
index 7e25a91..a8aa4ce 100644
--- a/hbase-build-configuration/hbase-spark/dependencies.html
+++ b/hbase-build-configuration/hbase-spark/dependencies.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -4791,7 +4791,7 @@ file comparators, endian transformation classes, and much more.</p>
 <td>No</td></tr>
 <tr class="a">
 <td>hbase-zookeeper-3.0.0-SNAPSHOT-tests.jar</td>
-<td>59.7 kB</td>
+<td>58.2 kB</td>
 <td>-</td>
 <td>-</td>
 <td>-</td>
@@ -5692,7 +5692,7 @@ file comparators, endian transformation classes, and much more.</p>
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-spark/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/dependency-convergence.html b/hbase-build-configuration/hbase-spark/dependency-convergence.html
index e4543fd..18a8f71 100644
--- a/hbase-build-configuration/hbase-spark/dependency-convergence.html
+++ b/hbase-build-configuration/hbase-spark/dependency-convergence.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -912,7 +912,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-spark/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/dependency-info.html b/hbase-build-configuration/hbase-spark/dependency-info.html
index ed9de99..be939c2 100644
--- a/hbase-build-configuration/hbase-spark/dependency-info.html
+++ b/hbase-build-configuration/hbase-spark/dependency-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -147,7 +147,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-spark/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/dependency-management.html b/hbase-build-configuration/hbase-spark/dependency-management.html
index e1176c5..9388f9b 100644
--- a/hbase-build-configuration/hbase-spark/dependency-management.html
+++ b/hbase-build-configuration/hbase-spark/dependency-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -810,7 +810,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-spark/index.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/index.html b/hbase-build-configuration/hbase-spark/index.html
index 94b55f5..3cb1bb7 100644
--- a/hbase-build-configuration/hbase-spark/index.html
+++ b/hbase-build-configuration/hbase-spark/index.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; About</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -119,7 +119,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-spark/integration.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/integration.html b/hbase-build-configuration/hbase-spark/integration.html
index c9d50e8..237fc21 100644
--- a/hbase-build-configuration/hbase-spark/integration.html
+++ b/hbase-build-configuration/hbase-spark/integration.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -126,7 +126,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-spark/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/issue-tracking.html b/hbase-build-configuration/hbase-spark/issue-tracking.html
index dee8fa9..d68aed6 100644
--- a/hbase-build-configuration/hbase-spark/issue-tracking.html
+++ b/hbase-build-configuration/hbase-spark/issue-tracking.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-spark/license.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/license.html b/hbase-build-configuration/hbase-spark/license.html
index 7e50e11..90a6cf1 100644
--- a/hbase-build-configuration/hbase-spark/license.html
+++ b/hbase-build-configuration/hbase-spark/license.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -326,7 +326,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-spark/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/mail-lists.html b/hbase-build-configuration/hbase-spark/mail-lists.html
index ce61102..3626801 100644
--- a/hbase-build-configuration/hbase-spark/mail-lists.html
+++ b/hbase-build-configuration/hbase-spark/mail-lists.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -176,7 +176,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-spark/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/plugin-management.html b/hbase-build-configuration/hbase-spark/plugin-management.html
index 4560fdd..da5022c 100644
--- a/hbase-build-configuration/hbase-spark/plugin-management.html
+++ b/hbase-build-configuration/hbase-spark/plugin-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -271,7 +271,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-spark/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/plugins.html b/hbase-build-configuration/hbase-spark/plugins.html
index c3c0aca..61a4ce2 100644
--- a/hbase-build-configuration/hbase-spark/plugins.html
+++ b/hbase-build-configuration/hbase-spark/plugins.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -238,7 +238,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-spark/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/project-info.html b/hbase-build-configuration/hbase-spark/project-info.html
index 331ec25..6b30dc2 100644
--- a/hbase-build-configuration/hbase-spark/project-info.html
+++ b/hbase-build-configuration/hbase-spark/project-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -167,7 +167,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-spark/project-reports.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/project-reports.html b/hbase-build-configuration/hbase-spark/project-reports.html
index 3ba4874..6fc1f4d 100644
--- a/hbase-build-configuration/hbase-spark/project-reports.html
+++ b/hbase-build-configuration/hbase-spark/project-reports.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Generated Reports</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -131,7 +131,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-spark/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/project-summary.html b/hbase-build-configuration/hbase-spark/project-summary.html
index 0a4b674..218f84e 100644
--- a/hbase-build-configuration/hbase-spark/project-summary.html
+++ b/hbase-build-configuration/hbase-spark/project-summary.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -166,7 +166,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-spark/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/source-repository.html b/hbase-build-configuration/hbase-spark/source-repository.html
index 0571cd3..93c2a5e 100644
--- a/hbase-build-configuration/hbase-spark/source-repository.html
+++ b/hbase-build-configuration/hbase-spark/source-repository.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -134,7 +134,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/hbase-spark/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/team-list.html b/hbase-build-configuration/hbase-spark/team-list.html
index d5ba565..1271166 100644
--- a/hbase-build-configuration/hbase-spark/team-list.html
+++ b/hbase-build-configuration/hbase-spark/team-list.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -553,7 +553,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/index.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/index.html b/hbase-build-configuration/index.html
index f509613..9727c51 100644
--- a/hbase-build-configuration/index.html
+++ b/hbase-build-configuration/index.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; About</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -119,7 +119,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/integration.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/integration.html b/hbase-build-configuration/integration.html
index 1a72d4d..727bec6 100644
--- a/hbase-build-configuration/integration.html
+++ b/hbase-build-configuration/integration.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -126,7 +126,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/issue-tracking.html b/hbase-build-configuration/issue-tracking.html
index c108358..0365c94 100644
--- a/hbase-build-configuration/issue-tracking.html
+++ b/hbase-build-configuration/issue-tracking.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/license.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/license.html b/hbase-build-configuration/license.html
index 6ec28ca..d33a053 100644
--- a/hbase-build-configuration/license.html
+++ b/hbase-build-configuration/license.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -326,7 +326,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/mail-lists.html b/hbase-build-configuration/mail-lists.html
index 4722133..c377c25 100644
--- a/hbase-build-configuration/mail-lists.html
+++ b/hbase-build-configuration/mail-lists.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -176,7 +176,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/plugin-management.html b/hbase-build-configuration/plugin-management.html
index 6bbbbef..4d993cb 100644
--- a/hbase-build-configuration/plugin-management.html
+++ b/hbase-build-configuration/plugin-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -271,7 +271,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/plugins.html b/hbase-build-configuration/plugins.html
index 3b0cda5..0032be4 100644
--- a/hbase-build-configuration/plugins.html
+++ b/hbase-build-configuration/plugins.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -214,7 +214,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/project-info.html b/hbase-build-configuration/project-info.html
index f48fdae..6a66853 100644
--- a/hbase-build-configuration/project-info.html
+++ b/hbase-build-configuration/project-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -167,7 +167,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/project-summary.html b/hbase-build-configuration/project-summary.html
index 30225aa..ab1cf43 100644
--- a/hbase-build-configuration/project-summary.html
+++ b/hbase-build-configuration/project-summary.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -163,7 +163,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/org/apache/hadoop/hbase/class-use/TableName.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/class-use/TableName.html b/devapidocs/org/apache/hadoop/hbase/class-use/TableName.html
index 9aba3d9..650a18d 100644
--- a/devapidocs/org/apache/hadoop/hbase/class-use/TableName.html
+++ b/devapidocs/org/apache/hadoop/hbase/class-use/TableName.html
@@ -1170,14 +1170,22 @@ service.</div>
 </tr>
 <tbody>
 <tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a></code></td>
+<td class="colLast"><span class="typeNameLabel">BackupSystemTable.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#bulkLoadTableName">bulkLoadTableName</a></span></code>
+<div class="block">Backup System table name for bulk loaded files.</div>
+</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>[]</code></td>
 <td class="colLast"><span class="typeNameLabel">RestoreTablesClient.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html#sTableArray">sTableArray</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a></code></td>
-<td class="colLast"><span class="typeNameLabel">BackupSystemTable.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#tableName">tableName</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">BackupSystemTable.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#tableName">tableName</a></span></code>
+<div class="block">Backup system table (main) name</div>
+</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>[]</code></td>
 <td class="colLast"><span class="typeNameLabel">RestoreTablesClient.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html#tTableArray">tTableArray</a></span></code>&nbsp;</td>
 </tr>
@@ -1220,6 +1228,10 @@ service.</div>
 <td class="colLast"><span class="typeNameLabel">BackupSystemTable.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#getTableName-org.apache.hadoop.conf.Configuration-">getTableName</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a></code></td>
+<td class="colLast"><span class="typeNameLabel">BackupSystemTable.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#getTableNameForBulkLoadedData-org.apache.hadoop.conf.Configuration-">getTableNameForBulkLoadedData</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>[]</code></td>
 <td class="colLast"><span class="typeNameLabel">BackupCommands.BackupSetCommand.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/backup/impl/BackupCommands.BackupSetCommand.html#toTableNames-java.lang.String:A-">toTableNames</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;tables)</code>&nbsp;</td>
 </tr>
@@ -1480,18 +1492,23 @@ service.</div>
                            <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/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;map)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><span class="typeNameLabel">BackupSystemTable.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#waitForSystemTable-org.apache.hadoop.hbase.client.Admin-org.apache.hadoop.hbase.TableName-">waitForSystemTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a>&nbsp;admin,
+                  <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><span class="typeNameLabel">IncrementalTableBackupClient.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html#walToHFiles-java.util.List-org.apache.hadoop.hbase.TableName-">walToHFiles</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;dirPaths,
            <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">BackupSystemTable.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#writeFilesForBulkLoadPreCommit-org.apache.hadoop.hbase.TableName-byte:A-byte:A-java.util.List-">writeFilesForBulkLoadPreCommit</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tabName,
                               byte[]&nbsp;region,
                               byte[]&nbsp;family,
                               <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/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;org.apache.hadoop.fs.Path,org.apache.hadoop.fs.Path&gt;&gt;&nbsp;pairs)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">BackupSystemTable.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#writePathsPostBulkLoad-org.apache.hadoop.hbase.TableName-byte:A-java.util.Map-">writePathsPostBulkLoad</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tabName,
                       byte[]&nbsp;region,
@@ -1590,16 +1607,6 @@ service.</div>
 <td class="colLast"><span class="typeNameLabel">BackupManager.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#readBulkloadRows-java.util.List-">readBulkloadRows</a></span>(<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/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tableList)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">BackupSystemTable.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#removeBulkLoadedRows-java.util.List-java.util.List-">removeBulkLoadedRows</a></span>(<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/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;lst,
-                    <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;byte[]&gt;&nbsp;rows)</code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">BackupManager.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#removeBulkLoadedRows-java.util.List-java.util.List-">removeBulkLoadedRows</a></span>(<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/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;lst,
-                    <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;byte[]&gt;&nbsp;rows)</code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">RestoreTablesClient.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html#restore-java.util.HashMap-org.apache.hadoop.hbase.TableName:A-org.apache.hadoop.hbase.TableName:A-boolean-">restore</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="../../../../../org/apache/hadoop/hbase/backup/impl/BackupManifest.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupManifest</a>&gt;&nbsp;backupManifestMap,
        <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>[]&nbsp;sTableArray,
@@ -1632,16 +1639,11 @@ service.</div>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">BackupManager.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#writeBulkLoadedFiles-java.util.List-java.util.Map:A-">writeBulkLoadedFiles</a></span>(<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/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;sTableList,
-                    <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;byte[],<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.fs.Path&gt;&gt;[]&nbsp;maps)</code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">BackupSystemTable.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#writeBulkLoadedFiles-java.util.List-java.util.Map:A-java.lang.String-">writeBulkLoadedFiles</a></span>(<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/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;sTableList,
                     <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;byte[],<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.fs.Path&gt;&gt;[]&nbsp;maps,
                     <a href="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;backupId)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">BackupManager.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/backup/impl/BackupManager.html#writeRegionServerLogTimestamp-java.util.Set-java.util.HashMap-">writeRegionServerLogTimestamp</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tables,
                              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="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/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;newTimestamps)</code>
@@ -1649,7 +1651,7 @@ service.</div>
  full or incremental backup.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">BackupSystemTable.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#writeRegionServerLogTimestamp-java.util.Set-java.util.HashMap-java.lang.String-">writeRegionServerLogTimestamp</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tables,
                              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="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/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;newTimestamps,

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/org/apache/hadoop/hbase/client/class-use/Admin.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/class-use/Admin.html b/devapidocs/org/apache/hadoop/hbase/client/class-use/Admin.html
index 11c36a6..7cfa224 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/class-use/Admin.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/class-use/Admin.html
@@ -215,7 +215,8 @@ service.</div>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>private void</code></td>
-<td class="colLast"><span class="typeNameLabel">BackupSystemTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#waitForSystemTable-org.apache.hadoop.hbase.client.Admin-">waitForSystemTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a>&nbsp;admin)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">BackupSystemTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#waitForSystemTable-org.apache.hadoop.hbase.client.Admin-org.apache.hadoop.hbase.TableName-">waitForSystemTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a>&nbsp;admin,
+                  <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
 </tbody>
 </table>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/org/apache/hadoop/hbase/client/class-use/RegionInfo.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/class-use/RegionInfo.html b/devapidocs/org/apache/hadoop/hbase/client/class-use/RegionInfo.html
index 468afcd..ef941fd 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/class-use/RegionInfo.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/class-use/RegionInfo.html
@@ -5482,7 +5482,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <td class="colLast"><span class="typeNameLabel">RSGroupBasedLoadBalancer.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#correctAssignments-java.util.Map-">correctAssignments</a></span>(<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="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&gt;&nbsp;existingAssignments)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>private <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/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;</code></td>
+<td class="colFirst"><code><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/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">RSGroupBasedLoadBalancer.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#getMisplacedRegions-java.util.Map-">getMisplacedRegions</a></span>(<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="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>,<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;regions)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
@@ -5589,7 +5589,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
                  org.apache.hbase.thirdparty.com.google.common.collect.ListMultimap&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;serverMap)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>private <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/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;</code></td>
+<td class="colFirst"><code><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/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">RSGroupBasedLoadBalancer.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#getMisplacedRegions-java.util.Map-">getMisplacedRegions</a></span>(<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="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>,<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;regions)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/org/apache/hadoop/hbase/client/class-use/TableDescriptor.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/class-use/TableDescriptor.html b/devapidocs/org/apache/hadoop/hbase/client/class-use/TableDescriptor.html
index fbebd86..65e4619 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/class-use/TableDescriptor.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/class-use/TableDescriptor.html
@@ -87,91 +87,95 @@
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="#org.apache.hadoop.hbase.backup.util">org.apache.hadoop.hbase.backup.util</a></td>
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.backup.impl">org.apache.hadoop.hbase.backup.impl</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.backup.util">org.apache.hadoop.hbase.backup.util</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.client">org.apache.hadoop.hbase.client</a></td>
 <td class="colLast">
 <div class="block">Provides HBase Client</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.constraint">org.apache.hadoop.hbase.constraint</a></td>
 <td class="colLast">
 <div class="block">Restrict the domain of a data attribute, often times to fulfill business rules/requirements.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.coprocessor">org.apache.hadoop.hbase.coprocessor</a></td>
 <td class="colLast">
 <div class="block">Table of Contents</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.coprocessor.example">org.apache.hadoop.hbase.coprocessor.example</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.mapreduce">org.apache.hadoop.hbase.mapreduce</a></td>
 <td class="colLast">
 <div class="block">Provides HBase <a href="http://wiki.apache.org/hadoop/HadoopMapReduce">MapReduce</a>
 Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.master">org.apache.hadoop.hbase.master</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.master.assignment">org.apache.hadoop.hbase.master.assignment</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.master.balancer">org.apache.hadoop.hbase.master.balancer</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.master.procedure">org.apache.hadoop.hbase.master.procedure</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.master.snapshot">org.apache.hadoop.hbase.master.snapshot</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.mob">org.apache.hadoop.hbase.mob</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.regionserver">org.apache.hadoop.hbase.regionserver</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.regionserver.handler">org.apache.hadoop.hbase.regionserver.handler</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.rest.client">org.apache.hadoop.hbase.rest.client</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.rsgroup">org.apache.hadoop.hbase.rsgroup</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.security.access">org.apache.hadoop.hbase.security.access</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.security.visibility">org.apache.hadoop.hbase.security.visibility</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.snapshot">org.apache.hadoop.hbase.snapshot</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.util">org.apache.hadoop.hbase.util</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
@@ -275,6 +279,32 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </tbody>
 </table>
 </li>
+<li class="blockList"><a name="org.apache.hadoop.hbase.backup.impl">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a> in <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/package-summary.html">org.apache.hadoop.hbase.backup.impl</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/package-summary.html">org.apache.hadoop.hbase.backup.impl</a> that return <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a></code></td>
+<td class="colLast"><span class="typeNameLabel">BackupSystemTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#getSystemTableDescriptor-org.apache.hadoop.conf.Configuration-">getSystemTableDescriptor</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>
+<div class="block">Get backup system table descriptor</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a></code></td>
+<td class="colLast"><span class="typeNameLabel">BackupSystemTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#getSystemTableForBulkLoadedDataDescriptor-org.apache.hadoop.conf.Configuration-">getSystemTableForBulkLoadedDataDescriptor</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>
+<div class="block">Get backup system table descriptor</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
 <li class="blockList"><a name="org.apache.hadoop.hbase.backup.util">
 <!--   -->
 </a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/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 15c3744..b411b44 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
@@ -547,24 +547,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.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/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/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/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/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/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/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/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/AsyncRequestFutureImpl.Retry.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncRequestFutureImpl.Retry</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">SnapshotType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/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/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/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/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/Durability.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Durability</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcessTask.SubmittedRows.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncProcessTask.SubmittedRows</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RequestController.ReturnCode.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RequestController.ReturnCode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">IsolationLevel</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MasterSwitchType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Scan.ReadType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/AsyncProcessTask.SubmittedRows.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncProcessTask.SubmittedRows</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MobCompactPartitionPolicy.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MobCompactPartitionPolicy</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TableState.State.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableState.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Consistency</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/AsyncRequestFutureImpl.Retry.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncRequestFutureImpl.Retry</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/org/apache/hadoop/hbase/client/package-use.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/package-use.html b/devapidocs/org/apache/hadoop/hbase/client/package-use.html
index 3c1be50..6430acd 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/package-use.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/package-use.html
@@ -604,6 +604,14 @@ service.</div>
 <div class="block">Used to perform Scan operations.</div>
 </td>
 </tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/TableDescriptor.html#org.apache.hadoop.hbase.backup.impl">TableDescriptor</a>
+<div class="block">TableDescriptor contains the details about an HBase table such as the descriptors of
+ all the column families, is the table a catalog table, <code> hbase:meta </code>,
+ if the table is read only, the maximum size of the memstore,
+ when the region split should occur, coprocessors associated with it etc...</div>
+</td>
+</tr>
 </tbody>
 </table>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/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 4b68db2..49ed276 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/554d61c6/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 1e73f65..8a6b4c0 100644
--- a/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
@@ -182,14 +182,14 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/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/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/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/FilterWrapper.FilterRowRetCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterWrapper.FilterRowRetCode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.SatisfiesCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.SatisfiesCode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.Operator.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterList.Operator</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">Filter.ReturnCode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/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/CompareFilter.CompareOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">CompareFilter.CompareOp</span></a></li>
 </ul>
 </li>
 </ul>

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/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 5cdb5bc..ac2021c 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
@@ -348,9 +348,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/CallEvent.Type.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">CallEvent.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/BufferCallBeforeInitHandler.BufferCallAction.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">BufferCallBeforeInitHandler.BufferCallAction</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceFactoryImpl.SourceStorage.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">MetricsHBaseServerSourceFactoryImpl.SourceStorage</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/BufferCallBeforeInitHandler.BufferCallAction.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">BufferCallBeforeInitHandler.BufferCallAction</span></a></li>
+<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>
 </ul>
 </li>
 </ul>

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html b/devapidocs/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html
index 9f8eca1..d046063 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private static class <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.237">HMaster.InitializationMonitor</a>
+<pre>private static class <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.238">HMaster.InitializationMonitor</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/util/HasThread.html" title="class in org.apache.hadoop.hbase.util">HasThread</a></pre>
 <div class="block">Protection against zombie master. Started once Master accepts active responsibility and
  starts taking over responsibilities. Allows a finite time window before giving up ownership.</div>
@@ -250,7 +250,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/util/HasThread.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>TIMEOUT_KEY</h4>
-<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html#line.239">TIMEOUT_KEY</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/HMaster.InitializationMonitor.html#line.240">TIMEOUT_KEY</a></pre>
 <div class="block">The amount of time in milliseconds to sleep before checking initialization status.</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
@@ -264,7 +264,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/util/HasThread.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>TIMEOUT_DEFAULT</h4>
-<pre>public static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html#line.240">TIMEOUT_DEFAULT</a></pre>
+<pre>public static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html#line.241">TIMEOUT_DEFAULT</a></pre>
 </li>
 </ul>
 <a name="HALT_KEY">
@@ -273,7 +273,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/util/HasThread.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>HALT_KEY</h4>
-<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html#line.246">HALT_KEY</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/HMaster.InitializationMonitor.html#line.247">HALT_KEY</a></pre>
 <div class="block">When timeout expired and initialization has not complete, call <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/System.html?is-external=true#exit-int-" title="class or interface in java.lang"><code>System.exit(int)</code></a> when
  true, do nothing otherwise.</div>
 <dl>
@@ -288,7 +288,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/util/HasThread.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>HALT_DEFAULT</h4>
-<pre>public static final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html#line.247">HALT_DEFAULT</a></pre>
+<pre>public static final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html#line.248">HALT_DEFAULT</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.master.HMaster.InitializationMonitor.HALT_DEFAULT">Constant Field Values</a></dd>
@@ -301,7 +301,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/util/HasThread.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>master</h4>
-<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/master/HMaster.InitializationMonitor.html#line.249">master</a></pre>
+<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/master/HMaster.InitializationMonitor.html#line.250">master</a></pre>
 </li>
 </ul>
 <a name="timeout">
@@ -310,7 +310,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/util/HasThread.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>timeout</h4>
-<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html#line.250">timeout</a></pre>
+<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html#line.251">timeout</a></pre>
 </li>
 </ul>
 <a name="haltOnTimeout">
@@ -319,7 +319,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/util/HasThread.html" tit
 <ul class="blockListLast">
 <li class="blockList">
 <h4>haltOnTimeout</h4>
-<pre>private final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html#line.251">haltOnTimeout</a></pre>
+<pre>private final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html#line.252">haltOnTimeout</a></pre>
 </li>
 </ul>
 </li>
@@ -336,7 +336,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/util/HasThread.html" tit
 <ul class="blockListLast">
 <li class="blockList">
 <h4>InitializationMonitor</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html#line.254">InitializationMonitor</a>(<a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master">HMaster</a>&nbsp;master)</pre>
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html#line.255">InitializationMonitor</a>(<a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master">HMaster</a>&nbsp;master)</pre>
 <div class="block">Creates a Thread that monitors the <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#isInitialized--"><code>HMaster.isInitialized()</code></a> state.</div>
 </li>
 </ul>
@@ -354,7 +354,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/util/HasThread.html" tit
 <ul class="blockListLast">
 <li class="blockList">
 <h4>run</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html#line.263">run</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html#line.264">run</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true#run--" title="class or interface in java.lang">run</a></code>&nbsp;in interface&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/org/apache/hadoop/hbase/master/HMaster.RedirectServlet.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/HMaster.RedirectServlet.html b/devapidocs/org/apache/hadoop/hbase/master/HMaster.RedirectServlet.html
index 703c03d..62d0f3f 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/HMaster.RedirectServlet.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/HMaster.RedirectServlet.html
@@ -127,7 +127,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.418">HMaster.RedirectServlet</a>
+<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.419">HMaster.RedirectServlet</a>
 extends javax.servlet.http.HttpServlet</pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
@@ -243,7 +243,7 @@ extends javax.servlet.http.HttpServlet</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>serialVersionUID</h4>
-<pre>private static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.RedirectServlet.html#line.419">serialVersionUID</a></pre>
+<pre>private static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.RedirectServlet.html#line.420">serialVersionUID</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.master.HMaster.RedirectServlet.serialVersionUID">Constant Field Values</a></dd>
@@ -256,7 +256,7 @@ extends javax.servlet.http.HttpServlet</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>regionServerInfoPort</h4>
-<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.RedirectServlet.html#line.420">regionServerInfoPort</a></pre>
+<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.RedirectServlet.html#line.421">regionServerInfoPort</a></pre>
 </li>
 </ul>
 <a name="regionServerHostname">
@@ -265,7 +265,7 @@ extends javax.servlet.http.HttpServlet</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>regionServerHostname</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/master/HMaster.RedirectServlet.html#line.421">regionServerHostname</a></pre>
+<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/master/HMaster.RedirectServlet.html#line.422">regionServerHostname</a></pre>
 </li>
 </ul>
 </li>
@@ -282,7 +282,7 @@ extends javax.servlet.http.HttpServlet</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RedirectServlet</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.RedirectServlet.html#line.427">RedirectServlet</a>(<a href="../../../../../org/apache/hadoop/hbase/http/InfoServer.html" title="class in org.apache.hadoop.hbase.http">InfoServer</a>&nbsp;infoServer,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.RedirectServlet.html#line.428">RedirectServlet</a>(<a href="../../../../../org/apache/hadoop/hbase/http/InfoServer.html" title="class in org.apache.hadoop.hbase.http">InfoServer</a>&nbsp;infoServer,
                        <a href="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;hostname)</pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -305,7 +305,7 @@ extends javax.servlet.http.HttpServlet</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>doGet</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.RedirectServlet.html#line.433">doGet</a>(javax.servlet.http.HttpServletRequest&nbsp;request,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.RedirectServlet.html#line.434">doGet</a>(javax.servlet.http.HttpServletRequest&nbsp;request,
                   javax.servlet.http.HttpServletResponse&nbsp;response)
            throws javax.servlet.ServletException,
                   <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>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/source-repository.html b/hbase-build-configuration/source-repository.html
index c7c9d67..0c74a9a 100644
--- a/hbase-build-configuration/source-repository.html
+++ b/hbase-build-configuration/source-repository.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -134,7 +134,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-build-configuration/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/team-list.html b/hbase-build-configuration/team-list.html
index 2f59e70..c7571f4 100644
--- a/hbase-build-configuration/team-list.html
+++ b/hbase-build-configuration/team-list.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -553,7 +553,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-shaded-check-invariants/checkstyle.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/checkstyle.html b/hbase-shaded-check-invariants/checkstyle.html
index 76cebe9..f3dc753 100644
--- a/hbase-shaded-check-invariants/checkstyle.html
+++ b/hbase-shaded-check-invariants/checkstyle.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Checkstyle Results</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -150,7 +150,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-shaded-check-invariants/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/dependencies.html b/hbase-shaded-check-invariants/dependencies.html
index 7b229f7..594642a 100644
--- a/hbase-shaded-check-invariants/dependencies.html
+++ b/hbase-shaded-check-invariants/dependencies.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -2883,7 +2883,7 @@ Jackson JSON processor's data binding functionality.</p>
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-shaded-check-invariants/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/dependency-convergence.html b/hbase-shaded-check-invariants/dependency-convergence.html
index 5a13269..53378ff 100644
--- a/hbase-shaded-check-invariants/dependency-convergence.html
+++ b/hbase-shaded-check-invariants/dependency-convergence.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -912,7 +912,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-shaded-check-invariants/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/dependency-info.html b/hbase-shaded-check-invariants/dependency-info.html
index ec9b0a3..822a5a5 100644
--- a/hbase-shaded-check-invariants/dependency-info.html
+++ b/hbase-shaded-check-invariants/dependency-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -148,7 +148,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-shaded-check-invariants/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/dependency-management.html b/hbase-shaded-check-invariants/dependency-management.html
index 05d6adc..d5a4977 100644
--- a/hbase-shaded-check-invariants/dependency-management.html
+++ b/hbase-shaded-check-invariants/dependency-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -810,7 +810,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-shaded-check-invariants/index.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/index.html b/hbase-shaded-check-invariants/index.html
index 2e5c949..81849b5 100644
--- a/hbase-shaded-check-invariants/index.html
+++ b/hbase-shaded-check-invariants/index.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; About</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -122,7 +122,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-shaded-check-invariants/integration.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/integration.html b/hbase-shaded-check-invariants/integration.html
index f1a7b8e..3c9f8d3 100644
--- a/hbase-shaded-check-invariants/integration.html
+++ b/hbase-shaded-check-invariants/integration.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -126,7 +126,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-shaded-check-invariants/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/issue-tracking.html b/hbase-shaded-check-invariants/issue-tracking.html
index f00f1da..dd11c20 100644
--- a/hbase-shaded-check-invariants/issue-tracking.html
+++ b/hbase-shaded-check-invariants/issue-tracking.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-shaded-check-invariants/license.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/license.html b/hbase-shaded-check-invariants/license.html
index 2da98ea..e2339df 100644
--- a/hbase-shaded-check-invariants/license.html
+++ b/hbase-shaded-check-invariants/license.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -326,7 +326,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-shaded-check-invariants/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/mail-lists.html b/hbase-shaded-check-invariants/mail-lists.html
index e44e4ff..29861f9 100644
--- a/hbase-shaded-check-invariants/mail-lists.html
+++ b/hbase-shaded-check-invariants/mail-lists.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -176,7 +176,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-shaded-check-invariants/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/plugin-management.html b/hbase-shaded-check-invariants/plugin-management.html
index f09581b..bfee7bd 100644
--- a/hbase-shaded-check-invariants/plugin-management.html
+++ b/hbase-shaded-check-invariants/plugin-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -271,7 +271,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-shaded-check-invariants/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/plugins.html b/hbase-shaded-check-invariants/plugins.html
index e5783de..ac73d59 100644
--- a/hbase-shaded-check-invariants/plugins.html
+++ b/hbase-shaded-check-invariants/plugins.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -218,7 +218,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-shaded-check-invariants/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/project-info.html b/hbase-shaded-check-invariants/project-info.html
index 12a4de9..b0a969b 100644
--- a/hbase-shaded-check-invariants/project-info.html
+++ b/hbase-shaded-check-invariants/project-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -170,7 +170,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-shaded-check-invariants/project-reports.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/project-reports.html b/hbase-shaded-check-invariants/project-reports.html
index 6a2f5f2..c2f6e29 100644
--- a/hbase-shaded-check-invariants/project-reports.html
+++ b/hbase-shaded-check-invariants/project-reports.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Generated Reports</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -128,7 +128,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-shaded-check-invariants/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/project-summary.html b/hbase-shaded-check-invariants/project-summary.html
index 97d4c62..8731adcb 100644
--- a/hbase-shaded-check-invariants/project-summary.html
+++ b/hbase-shaded-check-invariants/project-summary.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -166,7 +166,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-shaded-check-invariants/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/source-repository.html b/hbase-shaded-check-invariants/source-repository.html
index 8913ce8..14e52dc 100644
--- a/hbase-shaded-check-invariants/source-repository.html
+++ b/hbase-shaded-check-invariants/source-repository.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -134,7 +134,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/hbase-shaded-check-invariants/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/team-list.html b/hbase-shaded-check-invariants/team-list.html
index 54e9fab..8d487d0 100644
--- a/hbase-shaded-check-invariants/team-list.html
+++ b/hbase-shaded-check-invariants/team-list.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -553,7 +553,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/index.html
----------------------------------------------------------------------
diff --git a/index.html b/index.html
index 72f56ab..2e5f053 100644
--- a/index.html
+++ b/index.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Apache HBaseâ„¢ Home</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -438,7 +438,7 @@ Apache HBase is an open-source, distributed, versioned, non-relational database
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/integration.html
----------------------------------------------------------------------
diff --git a/integration.html b/integration.html
index 299b993..992ba1f 100644
--- a/integration.html
+++ b/integration.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -296,7 +296,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/issue-tracking.html
----------------------------------------------------------------------
diff --git a/issue-tracking.html b/issue-tracking.html
index ce1ed6f..29abacf 100644
--- a/issue-tracking.html
+++ b/issue-tracking.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -293,7 +293,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/license.html
----------------------------------------------------------------------
diff --git a/license.html b/license.html
index 3b8a9f6..24876c1 100644
--- a/license.html
+++ b/license.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -496,7 +496,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/mail-lists.html
----------------------------------------------------------------------
diff --git a/mail-lists.html b/mail-lists.html
index 3f0d46c..7b966d5 100644
--- a/mail-lists.html
+++ b/mail-lists.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -346,7 +346,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/metrics.html
----------------------------------------------------------------------
diff --git a/metrics.html b/metrics.html
index d041847..0c469f0 100644
--- a/metrics.html
+++ b/metrics.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Apache HBase (TM) Metrics
@@ -464,7 +464,7 @@ export HBASE_REGIONSERVER_OPTS=&quot;$HBASE_JMX_OPTS -Dcom.sun.management.jmxrem
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/old_news.html
----------------------------------------------------------------------
diff --git a/old_news.html b/old_news.html
index e1370c7..f14fae7 100644
--- a/old_news.html
+++ b/old_news.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Old Apache HBase (TM) News
@@ -419,7 +419,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/plugin-management.html
----------------------------------------------------------------------
diff --git a/plugin-management.html b/plugin-management.html
index a865d20..6af9069 100644
--- a/plugin-management.html
+++ b/plugin-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -441,7 +441,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/plugins.html
----------------------------------------------------------------------
diff --git a/plugins.html b/plugins.html
index e2425ec..738b567 100644
--- a/plugins.html
+++ b/plugins.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -380,7 +380,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/poweredbyhbase.html
----------------------------------------------------------------------
diff --git a/poweredbyhbase.html b/poweredbyhbase.html
index 418ff68..d11c7b0 100644
--- a/poweredbyhbase.html
+++ b/poweredbyhbase.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Powered By Apache HBase™</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -774,7 +774,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/project-info.html
----------------------------------------------------------------------
diff --git a/project-info.html b/project-info.html
index 3419b8f..7134171 100644
--- a/project-info.html
+++ b/project-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -340,7 +340,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/project-reports.html
----------------------------------------------------------------------
diff --git a/project-reports.html b/project-reports.html
index 593259f..1f08c41 100644
--- a/project-reports.html
+++ b/project-reports.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Generated Reports</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -310,7 +310,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/project-summary.html
----------------------------------------------------------------------
diff --git a/project-summary.html b/project-summary.html
index faf2aa7..796bc5d 100644
--- a/project-summary.html
+++ b/project-summary.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -336,7 +336,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/pseudo-distributed.html
----------------------------------------------------------------------
diff --git a/pseudo-distributed.html b/pseudo-distributed.html
index 6d308a8..bf8dee3 100644
--- a/pseudo-distributed.html
+++ b/pseudo-distributed.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
 Running Apache HBase (TM) in pseudo-distributed mode
@@ -313,7 +313,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/replication.html
----------------------------------------------------------------------
diff --git a/replication.html b/replication.html
index 9e0dc5d..d114967 100644
--- a/replication.html
+++ b/replication.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Apache HBase (TM) Replication
@@ -308,7 +308,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/resources.html
----------------------------------------------------------------------
diff --git a/resources.html b/resources.html
index 7fb611f..c737d8e 100644
--- a/resources.html
+++ b/resources.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Other Apache HBase (TM) Resources</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -336,7 +336,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/source-repository.html
----------------------------------------------------------------------
diff --git a/source-repository.html b/source-repository.html
index f2be416..b99e389 100644
--- a/source-repository.html
+++ b/source-repository.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -304,7 +304,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/sponsors.html
----------------------------------------------------------------------
diff --git a/sponsors.html b/sponsors.html
index 005f694..1583de6 100644
--- a/sponsors.html
+++ b/sponsors.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Apache HBase™ Sponsors</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -338,7 +338,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/supportingprojects.html
----------------------------------------------------------------------
diff --git a/supportingprojects.html b/supportingprojects.html
index 7204144..773b7ec 100644
--- a/supportingprojects.html
+++ b/supportingprojects.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Supporting Projects</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -525,7 +525,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/team-list.html
----------------------------------------------------------------------
diff --git a/team-list.html b/team-list.html
index e8bfe24..9e1489e 100644
--- a/team-list.html
+++ b/team-list.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -723,7 +723,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-01-12</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-01-13</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.html
----------------------------------------------------------------------
diff --git a/testapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.html b/testapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.html
index a34364c..ef16c0e 100644
--- a/testapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.html
+++ b/testapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.html
@@ -1041,7 +1041,7 @@
 <span class="sourceLineNo">1033</span>    t.close();<a name="line.1033"></a>
 <span class="sourceLineNo">1034</span><a name="line.1034"></a>
 <span class="sourceLineNo">1035</span>    getAdmin(); // create immediately the hbaseAdmin<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>    LOG.info("Minicluster is up");<a name="line.1036"></a>
+<span class="sourceLineNo">1036</span>    LOG.info("Minicluster is up; activeMaster=" + this.getHBaseCluster().getMaster());<a name="line.1036"></a>
 <span class="sourceLineNo">1037</span><a name="line.1037"></a>
 <span class="sourceLineNo">1038</span>    return (MiniHBaseCluster)this.hbaseCluster;<a name="line.1038"></a>
 <span class="sourceLineNo">1039</span>  }<a name="line.1039"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/allclasses-frame.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/allclasses-frame.html b/testdevapidocs/allclasses-frame.html
index dbf0bb1..b112715 100644
--- a/testdevapidocs/allclasses-frame.html
+++ b/testdevapidocs/allclasses-frame.html
@@ -2179,7 +2179,6 @@
 <li><a href="org/apache/hadoop/hbase/zookeeper/TestZKMainServer.html" title="class in org.apache.hadoop.hbase.zookeeper" target="classFrame">TestZKMainServer</a></li>
 <li><a href="org/apache/hadoop/hbase/zookeeper/TestZKMainServer.ExitException.html" title="class in org.apache.hadoop.hbase.zookeeper" target="classFrame">TestZKMainServer.ExitException</a></li>
 <li><a href="org/apache/hadoop/hbase/zookeeper/TestZKMainServer.NoExitSecurityManager.html" title="class in org.apache.hadoop.hbase.zookeeper" target="classFrame">TestZKMainServer.NoExitSecurityManager</a></li>
-<li><a href="org/apache/hadoop/hbase/zookeeper/TestZKMetrics.html" title="class in org.apache.hadoop.hbase.zookeeper" target="classFrame">TestZKMetrics</a></li>
 <li><a href="org/apache/hadoop/hbase/zookeeper/TestZKMulti.html" title="class in org.apache.hadoop.hbase.zookeeper" target="classFrame">TestZKMulti</a></li>
 <li><a href="org/apache/hadoop/hbase/zookeeper/TestZKNodeTracker.html" title="class in org.apache.hadoop.hbase.zookeeper" target="classFrame">TestZKNodeTracker</a></li>
 <li><a href="org/apache/hadoop/hbase/zookeeper/TestZKNodeTracker.StubAbortable.html" title="class in org.apache.hadoop.hbase.zookeeper" target="classFrame">TestZKNodeTracker.StubAbortable</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/allclasses-noframe.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/allclasses-noframe.html b/testdevapidocs/allclasses-noframe.html
index ae498ef..e051ea8 100644
--- a/testdevapidocs/allclasses-noframe.html
+++ b/testdevapidocs/allclasses-noframe.html
@@ -2179,7 +2179,6 @@
 <li><a href="org/apache/hadoop/hbase/zookeeper/TestZKMainServer.html" title="class in org.apache.hadoop.hbase.zookeeper">TestZKMainServer</a></li>
 <li><a href="org/apache/hadoop/hbase/zookeeper/TestZKMainServer.ExitException.html" title="class in org.apache.hadoop.hbase.zookeeper">TestZKMainServer.ExitException</a></li>
 <li><a href="org/apache/hadoop/hbase/zookeeper/TestZKMainServer.NoExitSecurityManager.html" title="class in org.apache.hadoop.hbase.zookeeper">TestZKMainServer.NoExitSecurityManager</a></li>
-<li><a href="org/apache/hadoop/hbase/zookeeper/TestZKMetrics.html" title="class in org.apache.hadoop.hbase.zookeeper">TestZKMetrics</a></li>
 <li><a href="org/apache/hadoop/hbase/zookeeper/TestZKMulti.html" title="class in org.apache.hadoop.hbase.zookeeper">TestZKMulti</a></li>
 <li><a href="org/apache/hadoop/hbase/zookeeper/TestZKNodeTracker.html" title="class in org.apache.hadoop.hbase.zookeeper">TestZKNodeTracker</a></li>
 <li><a href="org/apache/hadoop/hbase/zookeeper/TestZKNodeTracker.StubAbortable.html" title="class in org.apache.hadoop.hbase.zookeeper">TestZKNodeTracker.StubAbortable</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/index-all.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/index-all.html b/testdevapidocs/index-all.html
index e90f071..9375488 100644
--- a/testdevapidocs/index-all.html
+++ b/testdevapidocs/index-all.html
@@ -19961,6 +19961,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestUpdateConfiguration.html#LOG">LOG</a></span> - Static variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestUpdateConfiguration.html" title="class in org.apache.hadoop.hbase.client">TestUpdateConfiguration</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestZKAsyncRegistry.html#LOG">LOG</a></span> - Static variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestZKAsyncRegistry.html" title="class in org.apache.hadoop.hbase.client">TestZKAsyncRegistry</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/codec/CodecPerformance.html#LOG">LOG</a></span> - Static variable in class org.apache.hadoop.hbase.codec.<a href="org/apache/hadoop/hbase/codec/CodecPerformance.html" title="class in org.apache.hadoop.hbase.codec">CodecPerformance</a></dt>
 <dd>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>
@@ -26318,6 +26320,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/coprocessor/TestMasterObserver.CPMasterObserver.html#postStartMaster-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postStartMaster(ObserverContext&lt;MasterCoprocessorEnvironment&gt;)</a></span> - Method in class org.apache.hadoop.hbase.coprocessor.<a href="org/apache/hadoop/hbase/coprocessor/TestMasterObserver.CPMasterObserver.html" title="class in org.apache.hadoop.hbase.coprocessor">TestMasterObserver.CPMasterObserver</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/TestJMXConnectorServer.MyAccessController.html#postStartMaster-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postStartMaster(ObserverContext&lt;MasterCoprocessorEnvironment&gt;)</a></span> - Method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/TestJMXConnectorServer.MyAccessController.html" title="class in org.apache.hadoop.hbase">TestJMXConnectorServer.MyAccessController</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/coprocessor/TestMasterCoprocessorExceptionWithAbort.BuggyMasterObserver.html#postStartMasterCalled">postStartMasterCalled</a></span> - Variable in class org.apache.hadoop.hbase.coprocessor.<a href="org/apache/hadoop/hbase/coprocessor/TestMasterCoprocessorExceptionWithAbort.BuggyMasterObserver.html" title="class in org.apache.hadoop.hbase.coprocessor">TestMasterCoprocessorExceptionWithAbort.BuggyMasterObserver</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/coprocessor/TestMasterCoprocessorExceptionWithRemove.BuggyMasterObserver.html#postStartMasterCalled">postStartMasterCalled</a></span> - Variable in class org.apache.hadoop.hbase.coprocessor.<a href="org/apache/hadoop/hbase/coprocessor/TestMasterCoprocessorExceptionWithRemove.BuggyMasterObserver.html" title="class in org.apache.hadoop.hbase.coprocessor">TestMasterCoprocessorExceptionWithRemove.BuggyMasterObserver</a></dt>
@@ -36702,6 +36706,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/TestMiniClusterLoadSequential.html#TABLE">TABLE</a></span> - Static variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/TestMiniClusterLoadSequential.html" title="class in org.apache.hadoop.hbase.util">TestMiniClusterLoadSequential</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#table0">table0</a></span> - Static variable in class org.apache.hadoop.hbase.master.balancer.<a href="org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html" title="class in org.apache.hadoop.hbase.master.balancer">TestRSGroupBasedLoadBalancer</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/backup/TestBackupBase.html#table1">table1</a></span> - Static variable in class org.apache.hadoop.hbase.backup.<a href="org/apache/hadoop/hbase/backup/TestBackupBase.html" title="class in org.apache.hadoop.hbase.backup">TestBackupBase</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TestRegionServerOnlineConfigChange.html#TABLE1">TABLE1</a></span> - Static variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestRegionServerOnlineConfigChange.html" title="class in org.apache.hadoop.hbase.regionserver">TestRegionServerOnlineConfigChange</a></dt>
@@ -46195,6 +46201,8 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/metrics/impl/TestMetricRegistryImpl.html#testGetMetrics--">testGetMetrics()</a></span> - Method in class org.apache.hadoop.hbase.metrics.impl.<a href="org/apache/hadoop/hbase/metrics/impl/TestMetricRegistryImpl.html" title="class in org.apache.hadoop.hbase.metrics.impl">TestMetricRegistryImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#testGetMisplacedRegions--">testGetMisplacedRegions()</a></span> - Method in class org.apache.hadoop.hbase.master.balancer.<a href="org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html" title="class in org.apache.hadoop.hbase.master.balancer">TestRSGroupBasedLoadBalancer</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/thrift2/TestThriftHBaseServiceHandlerWithReadOnly.html#testGetMultipleWithReadOnly--">testGetMultipleWithReadOnly()</a></span> - Method in class org.apache.hadoop.hbase.thrift2.<a href="org/apache/hadoop/hbase/thrift2/TestThriftHBaseServiceHandlerWithReadOnly.html" title="class in org.apache.hadoop.hbase.thrift2">TestThriftHBaseServiceHandlerWithReadOnly</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/querymatcher/TestExplicitColumnTracker.html#testGetMultiVersion--">testGetMultiVersion()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.querymatcher.<a href="org/apache/hadoop/hbase/regionserver/querymatcher/TestExplicitColumnTracker.html" title="class in org.apache.hadoop.hbase.regionserver.querymatcher">TestExplicitColumnTracker</a></dt>
@@ -48294,8 +48302,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestProcedureInMemoryChore.TestLatchChore.html#TestLatchChore-int-java.util.concurrent.CountDownLatch-">TestLatchChore(int, CountDownLatch)</a></span> - Constructor for class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestProcedureInMemoryChore.TestLatchChore.html" title="class in org.apache.hadoop.hbase.procedure2">TestProcedureInMemoryChore.TestLatchChore</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/TestZKMetrics.html#testLatencyHistogramUpdates--">testLatencyHistogramUpdates()</a></span> - Method in class org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/TestZKMetrics.html" title="class in org.apache.hadoop.hbase.zookeeper">TestZKMetrics</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/TestCompoundConfiguration.html#testLaterConfigsOverrideEarlier--">testLaterConfigsOverrideEarlier()</a></span> - Method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/TestCompoundConfiguration.html" title="class in org.apache.hadoop.hbase">TestCompoundConfiguration</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rest/TestGetAndPutResource.html#testLatestCellGetJSON--">testLatestCellGetJSON()</a></span> - Method in class org.apache.hadoop.hbase.rest.<a href="org/apache/hadoop/hbase/rest/TestGetAndPutResource.html" title="class in org.apache.hadoop.hbase.rest">TestGetAndPutResource</a></dt>
@@ -53235,8 +53241,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/metrics/impl/TestMetricRegistryImpl.html#testRegister--">testRegister()</a></span> - Method in class org.apache.hadoop.hbase.metrics.impl.<a href="org/apache/hadoop/hbase/metrics/impl/TestMetricRegistryImpl.html" title="class in org.apache.hadoop.hbase.metrics.impl">TestMetricRegistryImpl</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/TestZKMetrics.html#testRegisterExceptions--">testRegisterExceptions()</a></span> - Method in class org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/TestZKMetrics.html" title="class in org.apache.hadoop.hbase.zookeeper">TestZKMetrics</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/filter/TestParseFilter.html#testRegisterFilter--">testRegisterFilter()</a></span> - Method in class org.apache.hadoop.hbase.filter.<a href="org/apache/hadoop/hbase/filter/TestParseFilter.html" title="class in org.apache.hadoop.hbase.filter">TestParseFilter</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/metrics/impl/TestMetricRegistryImpl.html#testRegisterGauge--">testRegisterGauge()</a></span> - Method in class org.apache.hadoop.hbase.metrics.impl.<a href="org/apache/hadoop/hbase/metrics/impl/TestMetricRegistryImpl.html" title="class in org.apache.hadoop.hbase.metrics.impl">TestMetricRegistryImpl</a></dt>
@@ -59209,10 +59213,6 @@
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/zookeeper/TestZKMainServer.NoExitSecurityManager.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">TestZKMainServer.NoExitSecurityManager</span></a> - Class in <a href="org/apache/hadoop/hbase/zookeeper/package-summary.html">org.apache.hadoop.hbase.zookeeper</a></dt>
 <dd>&nbsp;</dd>
-<dt><a href="org/apache/hadoop/hbase/zookeeper/TestZKMetrics.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">TestZKMetrics</span></a> - Class in <a href="org/apache/hadoop/hbase/zookeeper/package-summary.html">org.apache.hadoop.hbase.zookeeper</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/TestZKMetrics.html#TestZKMetrics--">TestZKMetrics()</a></span> - Constructor for class org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/TestZKMetrics.html" title="class in org.apache.hadoop.hbase.zookeeper">TestZKMetrics</a></dt>
-<dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/zookeeper/TestZKMulti.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">TestZKMulti</span></a> - Class in <a href="org/apache/hadoop/hbase/zookeeper/package-summary.html">org.apache.hadoop.hbase.zookeeper</a></dt>
 <dd>
 <div class="block">Test ZooKeeper multi-update functionality</div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/org/apache/hadoop/hbase/MiniHBaseCluster.MiniHBaseClusterRegionServer.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/MiniHBaseCluster.MiniHBaseClusterRegionServer.html b/testdevapidocs/org/apache/hadoop/hbase/MiniHBaseCluster.MiniHBaseClusterRegionServer.html
index ecf1a43..56259c5 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/MiniHBaseCluster.MiniHBaseClusterRegionServer.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/MiniHBaseCluster.MiniHBaseClusterRegionServer.html
@@ -197,7 +197,7 @@ extends org.apache.hadoop.hbase.regionserver.HRegionServer</pre>
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.HRegionServer</h3>
-<code>cacheConfig, cacheFlusher, clusterConnection, clusterStatusTracker, compactSplitThread, conf, configurationManager, csm, executorService, fs, fsOk, fsUtilizationChore, hMemManager, infoServer, leases, lock, MASTER_HOSTNAME_KEY, metaTableLocator, movedRegions, msgInterval, numRegionsToReport, onlineRegions, regionFavoredNodesMap, REGIONSERVER, regionsInTransitionInRS, replicationSinkHandler, replicationSourceHandler, rpcServices, secureBulkLoadManager, serverName, sleeper, startcode, tableDescriptors, TEST_SKIP_REPORTING_TRANSITION, threadWakeFrequency, useThisHostnameInstead, walFactory, walFs, walRoller, zooKeeper</code></li>
+<code>cacheConfig, cacheFlusher, clusterConnection, clusterId, clusterStatusTracker, compactSplitThread, conf, configurationManager, csm, executorService, fs, fsOk, fsUtilizationChore, hMemManager, infoServer, leases, lock, MASTER_HOSTNAME_KEY, metaTableLocator, movedRegions, msgInterval, numRegionsToReport, onlineRegions, regionFavoredNodesMap, REGIONSERVER, regionsInTransitionInRS, replicationSinkHandler, replicationSourceHandler, rpcServices, secureBulkLoadManager, serverName, sleeper, startcode, tableDescriptors, TEST_SKIP_REPORTING_TRANSITION, threadWakeFrequency, useThisHostnameInstead, walFactory, walFs, walRoller, zooKeeper</code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/org/apache/hadoop/hbase/TestJMXConnectorServer.MyAccessController.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/TestJMXConnectorServer.MyAccessController.html b/testdevapidocs/org/apache/hadoop/hbase/TestJMXConnectorServer.MyAccessController.html
index 71fee80..dac9d0f 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/TestJMXConnectorServer.MyAccessController.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/TestJMXConnectorServer.MyAccessController.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../src-html/org/apache/hadoop/hbase/TestJMXConnectorServer.html#line.183">TestJMXConnectorServer.MyAccessController</a>
+<pre>public static class <a href="../../../../src-html/org/apache/hadoop/hbase/TestJMXConnectorServer.html#line.185">TestJMXConnectorServer.MyAccessController</a>
 extends org.apache.hadoop.hbase.security.access.AccessController</pre>
 </li>
 </ul>
@@ -198,18 +198,22 @@ extends org.apache.hadoop.hbase.security.access.AccessController</pre>
 </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/TestJMXConnectorServer.MyAccessController.html#preExecuteProcedures-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preExecuteProcedures</a></span>(org.apache.hadoop.hbase.coprocessor.ObserverContext&lt;org.apache.hadoop.hbase.coprocessor.RegionServerCoprocessorEnvironment&gt;&nbsp;ctx)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/TestJMXConnectorServer.MyAccessController.html#postStartMaster-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postStartMaster</a></span>(org.apache.hadoop.hbase.coprocessor.ObserverContext&lt;org.apache.hadoop.hbase.coprocessor.MasterCoprocessorEnvironment&gt;&nbsp;ctx)</code>&nbsp;</td>
 </tr>
 <tr id="i1" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/TestJMXConnectorServer.MyAccessController.html#preShutdown-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preShutdown</a></span>(org.apache.hadoop.hbase.coprocessor.ObserverContext&lt;org.apache.hadoop.hbase.coprocessor.MasterCoprocessorEnvironment&gt;&nbsp;c)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/TestJMXConnectorServer.MyAccessController.html#preExecuteProcedures-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preExecuteProcedures</a></span>(org.apache.hadoop.hbase.coprocessor.ObserverContext&lt;org.apache.hadoop.hbase.coprocessor.RegionServerCoprocessorEnvironment&gt;&nbsp;ctx)</code>&nbsp;</td>
 </tr>
 <tr id="i2" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/TestJMXConnectorServer.MyAccessController.html#preStopMaster-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preStopMaster</a></span>(org.apache.hadoop.hbase.coprocessor.ObserverContext&lt;org.apache.hadoop.hbase.coprocessor.MasterCoprocessorEnvironment&gt;&nbsp;c)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/TestJMXConnectorServer.MyAccessController.html#preShutdown-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preShutdown</a></span>(org.apache.hadoop.hbase.coprocessor.ObserverContext&lt;org.apache.hadoop.hbase.coprocessor.MasterCoprocessorEnvironment&gt;&nbsp;c)</code>&nbsp;</td>
 </tr>
 <tr id="i3" class="rowColor">
 <td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/TestJMXConnectorServer.MyAccessController.html#preStopMaster-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preStopMaster</a></span>(org.apache.hadoop.hbase.coprocessor.ObserverContext&lt;org.apache.hadoop.hbase.coprocessor.MasterCoprocessorEnvironment&gt;&nbsp;c)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/TestJMXConnectorServer.MyAccessController.html#preStopRegionServer-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preStopRegionServer</a></span>(org.apache.hadoop.hbase.coprocessor.ObserverContext&lt;org.apache.hadoop.hbase.coprocessor.RegionServerCoprocessorEnvironment&gt;&nbsp;ctx)</code>&nbsp;</td>
 </tr>
 </table>
@@ -218,7 +222,7 @@ extends org.apache.hadoop.hbase.security.access.AccessController</pre>
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.security.access.AccessController</h3>
-<code>checkLockPermissions, checkPermissions, getAuthManager, getBulkLoadObserver, getEndpointObserver, getMasterObserver, getRegion, getRegionObserver, getRegionServerObserver, getServices, getUserPermissions, grant, isCellAuthorizationSupported, postAbortProcedure, postCompletedCreateTableAction, postCreateReplicationEndPoint, postDelete, postDeleteNamespace, postDeleteTable, postEndpointInvocation, postGetTableDescriptors, postGetTableNames, postListNamespaceDescriptors, postModifyTable, postMutationBeforeWAL, postOpen, postPut, postRollWALWriterRequest, postScannerClose, postScannerFilterRow, postScannerOpen, postStartMaster, postTruncateTable, preAbortProcedure, preAddReplicationPeer, preAppend, preAppendAfterRowLock, preAssign, preBalance, preBalanceSwitch, preBatchMutate, preBulkLoadHFile, preCheckAndDelete, preCheckAndDeleteAfterRowLock, preCheckAndPut, preCheckAndPutAfterRowLock, preCleanupBulkLoad, preClearCompactionQueues, preClearDeadServers, preCloneSnapshot, preClose, 
 preCompact, preCreateNamespace, preCreateTable, preDecommissionRegionServers, preDelete, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDisableReplicationPeer, preDisableTable, preEnableReplicationPeer, preEnableTable, preEndpointInvocation, preExists, preFlush, preGetLocks, preGetNamespaceDescriptor, preGetOp, preGetProcedures, preGetReplicationPeerConfig, preGetTableDescriptors, preIncrement, preIncrementAfterRowLock, preListDecommissionedRegionServers, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMergeRegions, preModifyNamespace, preModifyTable, preMove, preOpen, prePrepareBulkLoad, prePut, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preReplicateLogEntries, preRequestLock, preRestoreSnapshot, preRollWALWriterRequest, preScannerClose, preScannerNext, preScannerOpen, preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preSnapshot, preSplitRegion, preTableFlush
 , preTruncateTable, preUnassign, preUpdateReplicationPeerConfig, requireAccess, requireGlobalPermission, requireGlobalPermission, requireNamespacePermission, requireNamespacePermission, requirePermission, requirePermission, requireTablePermission, revoke, start, stop</code></li>
+<code>checkLockPermissions, checkPermissions, getAuthManager, getBulkLoadObserver, getEndpointObserver, getMasterObserver, getRegion, getRegionObserver, getRegionServerObserver, getServices, getUserPermissions, grant, isCellAuthorizationSupported, postAbortProcedure, postCompletedCreateTableAction, postCreateReplicationEndPoint, postDelete, postDeleteNamespace, postDeleteTable, postEndpointInvocation, postGetTableDescriptors, postGetTableNames, postListNamespaceDescriptors, postModifyTable, postMutationBeforeWAL, postOpen, postPut, postRollWALWriterRequest, postScannerClose, postScannerFilterRow, postScannerOpen, postTruncateTable, preAbortProcedure, preAddReplicationPeer, preAppend, preAppendAfterRowLock, preAssign, preBalance, preBalanceSwitch, preBatchMutate, preBulkLoadHFile, preCheckAndDelete, preCheckAndDeleteAfterRowLock, preCheckAndPut, preCheckAndPutAfterRowLock, preCleanupBulkLoad, preClearCompactionQueues, preClearDeadServers, preCloneSnapshot, preClose, preCompact, preCr
 eateNamespace, preCreateTable, preDecommissionRegionServers, preDelete, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDisableReplicationPeer, preDisableTable, preEnableReplicationPeer, preEnableTable, preEndpointInvocation, preExists, preFlush, preGetLocks, preGetNamespaceDescriptor, preGetOp, preGetProcedures, preGetReplicationPeerConfig, preGetTableDescriptors, preIncrement, preIncrementAfterRowLock, preListDecommissionedRegionServers, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMergeRegions, preModifyNamespace, preModifyTable, preMove, preOpen, prePrepareBulkLoad, prePut, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preReplicateLogEntries, preRequestLock, preRestoreSnapshot, preRollWALWriterRequest, preScannerClose, preScannerNext, preScannerOpen, preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preSnapshot, preSplitRegion, preTableFlush, preTruncateTabl
 e, preUnassign, preUpdateReplicationPeerConfig, requireAccess, requireGlobalPermission, requireGlobalPermission, requireNamespacePermission, requireNamespacePermission, requirePermission, requirePermission, requireTablePermission, revoke, start, stop</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -268,7 +272,7 @@ extends org.apache.hadoop.hbase.security.access.AccessController</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>MyAccessController</h4>
-<pre>public&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestJMXConnectorServer.MyAccessController.html#line.183">MyAccessController</a>()</pre>
+<pre>public&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestJMXConnectorServer.MyAccessController.html#line.185">MyAccessController</a>()</pre>
 </li>
 </ul>
 </li>
@@ -279,13 +283,31 @@ extends org.apache.hadoop.hbase.security.access.AccessController</pre>
 <!--   -->
 </a>
 <h3>Method Detail</h3>
+<a name="postStartMaster-org.apache.hadoop.hbase.coprocessor.ObserverContext-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>postStartMaster</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestJMXConnectorServer.MyAccessController.html#line.187">postStartMaster</a>(org.apache.hadoop.hbase.coprocessor.ObserverContext&lt;org.apache.hadoop.hbase.coprocessor.MasterCoprocessorEnvironment&gt;&nbsp;ctx)
+                     throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>postStartMaster</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.coprocessor.MasterObserver</code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>postStartMaster</code>&nbsp;in class&nbsp;<code>org.apache.hadoop.hbase.security.access.AccessController</code></dd>
+<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>
 <a name="preStopMaster-org.apache.hadoop.hbase.coprocessor.ObserverContext-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>preStopMaster</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestJMXConnectorServer.MyAccessController.html#line.185">preStopMaster</a>(org.apache.hadoop.hbase.coprocessor.ObserverContext&lt;org.apache.hadoop.hbase.coprocessor.MasterCoprocessorEnvironment&gt;&nbsp;c)
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestJMXConnectorServer.MyAccessController.html#line.193">preStopMaster</a>(org.apache.hadoop.hbase.coprocessor.ObserverContext&lt;org.apache.hadoop.hbase.coprocessor.MasterCoprocessorEnvironment&gt;&nbsp;c)
                    throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -303,7 +325,7 @@ extends org.apache.hadoop.hbase.security.access.AccessController</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>preStopRegionServer</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestJMXConnectorServer.MyAccessController.html#line.192">preStopRegionServer</a>(org.apache.hadoop.hbase.coprocessor.ObserverContext&lt;org.apache.hadoop.hbase.coprocessor.RegionServerCoprocessorEnvironment&gt;&nbsp;ctx)
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestJMXConnectorServer.MyAccessController.html#line.200">preStopRegionServer</a>(org.apache.hadoop.hbase.coprocessor.ObserverContext&lt;org.apache.hadoop.hbase.coprocessor.RegionServerCoprocessorEnvironment&gt;&nbsp;ctx)
                          throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -321,7 +343,7 @@ extends org.apache.hadoop.hbase.security.access.AccessController</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>preShutdown</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestJMXConnectorServer.MyAccessController.html#line.200">preShutdown</a>(org.apache.hadoop.hbase.coprocessor.ObserverContext&lt;org.apache.hadoop.hbase.coprocessor.MasterCoprocessorEnvironment&gt;&nbsp;c)
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestJMXConnectorServer.MyAccessController.html#line.208">preShutdown</a>(org.apache.hadoop.hbase.coprocessor.ObserverContext&lt;org.apache.hadoop.hbase.coprocessor.MasterCoprocessorEnvironment&gt;&nbsp;c)
                  throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -339,7 +361,7 @@ extends org.apache.hadoop.hbase.security.access.AccessController</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>preExecuteProcedures</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestJMXConnectorServer.MyAccessController.html#line.207">preExecuteProcedures</a>(org.apache.hadoop.hbase.coprocessor.ObserverContext&lt;org.apache.hadoop.hbase.coprocessor.RegionServerCoprocessorEnvironment&gt;&nbsp;ctx)
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestJMXConnectorServer.MyAccessController.html#line.215">preExecuteProcedures</a>(org.apache.hadoop.hbase.coprocessor.ObserverContext&lt;org.apache.hadoop.hbase.coprocessor.RegionServerCoprocessorEnvironment&gt;&nbsp;ctx)
                           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html b/testdevapidocs/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html
index bbcb2a7..9bbf22d 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":9,"i5":9,"i6":9,"i7":10,"i8":9,"i9":9,"i10":9,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":9,"i5":9,"i6":9,"i7":10,"i8":9,"i9":9,"i10":9,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10};
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -162,14 +162,18 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#servers">servers</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><code>(package private) static org.apache.hadoop.hbase.TableName</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#table0">table0</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) static <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.HTableDescriptor&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#tableDescs">tableDescs</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) static <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;org.apache.hadoop.hbase.TableName,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#tableMap">tableMap</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) static org.apache.hadoop.hbase.TableName[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#tables">tables</a></span></code>&nbsp;</td>
 </tr>
@@ -305,17 +309,21 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 </tr>
 <tr id="i18" class="altColor">
 <td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#testGetMisplacedRegions--">testGetMisplacedRegions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#testRetainAssignment--">testRetainAssignment</a></span>()</code>
 <div class="block">Test the cluster startup bulk assignment which attempts to retain assignment info.</div>
 </td>
 </tr>
-<tr id="i19" class="rowColor">
+<tr id="i20" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#testRoundRobinAssignment--">testRoundRobinAssignment</a></span>()</code>
 <div class="block">Test BOGUS_SERVER_NAME among groups do not overwrite each other.</div>
 </td>
 </tr>
-<tr id="i20" class="altColor">
+<tr id="i21" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#updateLoad-org.apache.hbase.thirdparty.com.google.common.collect.ArrayListMultimap-org.apache.hadoop.hbase.ServerName-int-">updateLoad</a></span>(org.apache.hbase.thirdparty.com.google.common.collect.ArrayListMultimap&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>,org.apache.hadoop.hbase.master.balancer.ServerAndLoad&gt;&nbsp;previousLoad,
           org.apache.hadoop.hbase.ServerName&nbsp;sn,
@@ -379,13 +387,22 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <pre>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>[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.77">groups</a></pre>
 </li>
 </ul>
+<a name="table0">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>table0</h4>
+<pre>static&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.78">table0</a></pre>
+</li>
+</ul>
 <a name="tables">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>tables</h4>
-<pre>static&nbsp;org.apache.hadoop.hbase.TableName[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.78">tables</a></pre>
+<pre>static&nbsp;org.apache.hadoop.hbase.TableName[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.79">tables</a></pre>
 </li>
 </ul>
 <a name="servers">
@@ -394,7 +411,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>servers</h4>
-<pre>static&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;org.apache.hadoop.hbase.ServerName&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.83">servers</a></pre>
+<pre>static&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;org.apache.hadoop.hbase.ServerName&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.84">servers</a></pre>
 </li>
 </ul>
 <a name="groupMap">
@@ -403,7 +420,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>groupMap</h4>
-<pre>static&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>,org.apache.hadoop.hbase.rsgroup.RSGroupInfo&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.84">groupMap</a></pre>
+<pre>static&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>,org.apache.hadoop.hbase.rsgroup.RSGroupInfo&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.85">groupMap</a></pre>
 </li>
 </ul>
 <a name="tableMap">
@@ -412,7 +429,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>tableMap</h4>
-<pre>static&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;org.apache.hadoop.hbase.TableName,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.85">tableMap</a></pre>
+<pre>static&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;org.apache.hadoop.hbase.TableName,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.86">tableMap</a></pre>
 </li>
 </ul>
 <a name="tableDescs">
@@ -421,7 +438,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>tableDescs</h4>
-<pre>static&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;org.apache.hadoop.hbase.HTableDescriptor&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.86">tableDescs</a></pre>
+<pre>static&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;org.apache.hadoop.hbase.HTableDescriptor&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.87">tableDescs</a></pre>
 </li>
 </ul>
 <a name="regionAssignment">
@@ -430,7 +447,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>regionAssignment</h4>
-<pre>int[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.87">regionAssignment</a></pre>
+<pre>int[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.88">regionAssignment</a></pre>
 </li>
 </ul>
 <a name="regionId">
@@ -439,7 +456,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>regionId</h4>
-<pre>static&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.88">regionId</a></pre>
+<pre>static&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.89">regionId</a></pre>
 </li>
 </ul>
 </li>
@@ -473,7 +490,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>beforeAllTests</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.91">beforeAllTests</a>()
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.92">beforeAllTests</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>
@@ -487,7 +504,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testBalanceCluster</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.114">testBalanceCluster</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.115">testBalanceCluster</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>
 <div class="block">Test the load balancing algorithm.
 
@@ -505,7 +522,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>assertClusterAsBalanced</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.129">assertClusterAsBalanced</a>(org.apache.hbase.thirdparty.com.google.common.collect.ArrayListMultimap&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>,org.apache.hadoop.hbase.master.balancer.ServerAndLoad&gt;&nbsp;groupLoadMap)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.130">assertClusterAsBalanced</a>(org.apache.hbase.thirdparty.com.google.common.collect.ArrayListMultimap&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>,org.apache.hadoop.hbase.master.balancer.ServerAndLoad&gt;&nbsp;groupLoadMap)</pre>
 <div class="block">Invariant is that all servers of a group have load between floor(avg) and
  ceiling(avg) number of regions.</div>
 </li>
@@ -516,7 +533,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>assertImmediateAssignment</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.164">assertImmediateAssignment</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.client.RegionInfo&gt;&nbsp;regions,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.165">assertImmediateAssignment</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.client.RegionInfo&gt;&nbsp;regions,
                                        <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.ServerName&gt;&nbsp;servers,
                                        <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;org.apache.hadoop.hbase.client.RegionInfo,org.apache.hadoop.hbase.ServerName&gt;&nbsp;assignments)
                                 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>
@@ -533,7 +550,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testBulkAssignment</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.189">testBulkAssignment</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.190">testBulkAssignment</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>
 <div class="block">Tests the bulk assignment used during cluster startup.
 
@@ -546,13 +563,27 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 </dl>
 </li>
 </ul>
+<a name="testGetMisplacedRegions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>testGetMisplacedRegions</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.219">testGetMisplacedRegions</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="testRetainAssignment--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>testRetainAssignment</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.221">testRetainAssignment</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.236">testRetainAssignment</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>
 <div class="block">Test the cluster startup bulk assignment which attempts to retain assignment info.</div>
 <dl>
@@ -567,7 +598,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testRoundRobinAssignment</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.241">testRoundRobinAssignment</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.256">testRoundRobinAssignment</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>
 <div class="block">Test BOGUS_SERVER_NAME among groups do not overwrite each other.</div>
 <dl>
@@ -582,7 +613,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>assertRetainedAssignment</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.277">assertRetainedAssignment</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;org.apache.hadoop.hbase.client.RegionInfo,org.apache.hadoop.hbase.ServerName&gt;&nbsp;existing,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.292">assertRetainedAssignment</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;org.apache.hadoop.hbase.client.RegionInfo,org.apache.hadoop.hbase.ServerName&gt;&nbsp;existing,
                                       <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.ServerName&gt;&nbsp;servers,
                                       <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;org.apache.hadoop.hbase.ServerName,<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.client.RegionInfo&gt;&gt;&nbsp;assignment)
                                throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/FileNotFoundException.html?is-external=true" title="class or interface in java.io">FileNotFoundException</a>,
@@ -608,7 +639,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>printStats</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/balancer/TestRSGroupBasedLoadBalancer.html#line.327">printStats</a>(org.apache.hbase.thirdparty.com.google.common.collect.ArrayListMultimap&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>,org.apache.hadoop.hbase.master.balancer.ServerAndLoad&gt;&nbsp;groupBasedLoad)</pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.342">printStats</a>(org.apache.hbase.thirdparty.com.google.common.collect.ArrayListMultimap&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>,org.apache.hadoop.hbase.master.balancer.ServerAndLoad&gt;&nbsp;groupBasedLoad)</pre>
 </li>
 </ul>
 <a name="convertToGroupBasedMap-java.util.Map-">
@@ -617,7 +648,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>convertToGroupBasedMap</h4>
-<pre>private&nbsp;org.apache.hbase.thirdparty.com.google.common.collect.ArrayListMultimap&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>,org.apache.hadoop.hbase.master.balancer.ServerAndLoad&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.358">convertToGroupBasedMap</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;org.apache.hadoop.hbase.ServerName,<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.client.RegionInfo&gt;&gt;&nbsp;serversMap)
+<pre>private&nbsp;org.apache.hbase.thirdparty.com.google.common.collect.ArrayListMultimap&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>,org.apache.hadoop.hbase.master.balancer.ServerAndLoad&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.373">convertToGroupBasedMap</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;org.apache.hadoop.hbase.ServerName,<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.client.RegionInfo&gt;&gt;&nbsp;serversMap)
                                                                                                                                                               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>
@@ -631,7 +662,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>reconcile</h4>
-<pre>private&nbsp;org.apache.hbase.thirdparty.com.google.common.collect.ArrayListMultimap&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>,org.apache.hadoop.hbase.master.balancer.ServerAndLoad&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.381">reconcile</a>(org.apache.hbase.thirdparty.com.google.common.collect.ArrayListMultimap&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>,org.apache.hadoop.hbase.master.balancer.ServerAndLoad&gt;&nbsp;previousLoad,
+<pre>private&nbsp;org.apache.hbase.thirdparty.com.google.common.collect.ArrayListMultimap&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>,org.apache.hadoop.hbase.master.balancer.ServerAndLoad&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.396">reconcile</a>(org.apache.hbase.thirdparty.com.google.common.collect.ArrayListMultimap&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>,org.apache.hadoop.hbase.master.balancer.ServerAndLoad&gt;&nbsp;previousLoad,
                                                                                                                                                         <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.master.RegionPlan&gt;&nbsp;plans)</pre>
 </li>
 </ul>
@@ -641,7 +672,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>updateLoad</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.398">updateLoad</a>(org.apache.hbase.thirdparty.com.google.common.collect.ArrayListMultimap&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>,org.apache.hadoop.hbase.master.balancer.ServerAndLoad&gt;&nbsp;previousLoad,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.413">updateLoad</a>(org.apache.hbase.thirdparty.com.google.common.collect.ArrayListMultimap&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>,org.apache.hadoop.hbase.master.balancer.ServerAndLoad&gt;&nbsp;previousLoad,
                         org.apache.hadoop.hbase.ServerName&nbsp;sn,
                         int&nbsp;diff)</pre>
 </li>
@@ -652,7 +683,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>mockClusterServers</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;org.apache.hadoop.hbase.ServerName,<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.client.RegionInfo&gt;&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.419">mockClusterServers</a>()
+<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;org.apache.hadoop.hbase.ServerName,<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.client.RegionInfo&gt;&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.434">mockClusterServers</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>
@@ -666,7 +697,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>randomRegions</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;org.apache.hadoop.hbase.client.RegionInfo&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.436">randomRegions</a>(int&nbsp;numRegions)</pre>
+<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;org.apache.hadoop.hbase.client.RegionInfo&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.451">randomRegions</a>(int&nbsp;numRegions)</pre>
 <div class="block">Generate a list of regions evenly distributed between the tables.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -682,7 +713,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>assignedRegions</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;org.apache.hadoop.hbase.client.RegionInfo&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.465">assignedRegions</a>(int&nbsp;numRegions,
+<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;org.apache.hadoop.hbase.client.RegionInfo&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.480">assignedRegions</a>(int&nbsp;numRegions,
                                                                         org.apache.hadoop.hbase.ServerName&nbsp;sn)
                                                                  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">Generate assigned regions to a given server using group information.</div>
@@ -703,7 +734,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>generateServers</h4>
-<pre>private static&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;org.apache.hadoop.hbase.ServerName&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.483">generateServers</a>(int&nbsp;numServers)</pre>
+<pre>private static&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;org.apache.hadoop.hbase.ServerName&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.498">generateServers</a>(int&nbsp;numServers)</pre>
 </li>
 </ul>
 <a name="constructGroupInfo-java.util.List-java.lang.String:A-">
@@ -712,7 +743,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>constructGroupInfo</h4>
-<pre>private static&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>,org.apache.hadoop.hbase.rsgroup.RSGroupInfo&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.500">constructGroupInfo</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.ServerName&gt;&nbsp;servers,
+<pre>private static&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>,org.apache.hadoop.hbase.rsgroup.RSGroupInfo&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.515">constructGroupInfo</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.ServerName&gt;&nbsp;servers,
                                                                                           <a href="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;groups)</pre>
 <div class="block">Construct group info, with each group having at least one server.</div>
 <dl>
@@ -730,7 +761,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>constructTableDesc</h4>
-<pre>private static&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;org.apache.hadoop.hbase.HTableDescriptor&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.526">constructTableDesc</a>()</pre>
+<pre>private static&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;org.apache.hadoop.hbase.HTableDescriptor&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.541">constructTableDesc</a>()</pre>
 <div class="block">Construct table descriptors evenly distributed between the groups.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -744,7 +775,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getMockedMaster</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.master.MasterServices&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.539">getMockedMaster</a>()
+<pre>private static&nbsp;org.apache.hadoop.hbase.master.MasterServices&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.556">getMockedMaster</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>
@@ -758,7 +789,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getMockedGroupInfoManager</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.rsgroup.RSGroupInfoManager&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.552">getMockedGroupInfoManager</a>()
+<pre>private static&nbsp;org.apache.hadoop.hbase.rsgroup.RSGroupInfoManager&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.569">getMockedGroupInfoManager</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>
@@ -772,7 +803,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getTableName</h4>
-<pre>private&nbsp;org.apache.hadoop.hbase.TableName&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.575">getTableName</a>(org.apache.hadoop.hbase.ServerName&nbsp;sn)
+<pre>private&nbsp;org.apache.hadoop.hbase.TableName&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRSGroupBasedLoadBalancer.html#line.592">getTableName</a>(org.apache.hadoop.hbase.ServerName&nbsp;sn)
                                                 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>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html b/testdevapidocs/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html
index 021570e..73a9382 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html
@@ -109,7 +109,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html#line.51">TestRegionsOnMasterOptions</a>
+<pre>public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html#line.52">TestRegionsOnMasterOptions</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block">Test options for regions on master; none, system, or any (i.e. master is like any other
  regionserver). Checks how regions are deployed when each of the options are enabled.
@@ -271,7 +271,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html#line.52">LOG</a></pre>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html#line.53">LOG</a></pre>
 </li>
 </ul>
 <a name="name">
@@ -280,7 +280,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>name</h4>
-<pre>public&nbsp;org.junit.rules.TestName <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html#line.53">name</a></pre>
+<pre>public&nbsp;org.junit.rules.TestName <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html#line.54">name</a></pre>
 </li>
 </ul>
 <a name="timeout">
@@ -289,7 +289,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>timeout</h4>
-<pre>public final&nbsp;org.junit.rules.TestRule <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html#line.54">timeout</a></pre>
+<pre>public final&nbsp;org.junit.rules.TestRule <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html#line.55">timeout</a></pre>
 </li>
 </ul>
 <a name="TEST_UTIL">
@@ -298,7 +298,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>TEST_UTIL</h4>
-<pre>private static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html#line.56">TEST_UTIL</a></pre>
+<pre>private static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html#line.57">TEST_UTIL</a></pre>
 </li>
 </ul>
 <a name="c">
@@ -307,7 +307,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>c</h4>
-<pre>private&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html#line.57">c</a></pre>
+<pre>private&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html#line.58">c</a></pre>
 </li>
 </ul>
 <a name="tablesOnMasterOldValue">
@@ -316,7 +316,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>tablesOnMasterOldValue</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/master/balancer/TestRegionsOnMasterOptions.html#line.58">tablesOnMasterOldValue</a></pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html#line.59">tablesOnMasterOldValue</a></pre>
 </li>
 </ul>
 <a name="systemTablesOnMasterOldValue">
@@ -325,7 +325,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>systemTablesOnMasterOldValue</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/master/balancer/TestRegionsOnMasterOptions.html#line.59">systemTablesOnMasterOldValue</a></pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html#line.60">systemTablesOnMasterOldValue</a></pre>
 </li>
 </ul>
 <a name="SLAVES">
@@ -334,7 +334,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>SLAVES</h4>
-<pre>private static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html#line.60">SLAVES</a></pre>
+<pre>private static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html#line.61">SLAVES</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.master.balancer.TestRegionsOnMasterOptions.SLAVES">Constant Field Values</a></dd>
@@ -347,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>MASTERS</h4>
-<pre>private static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html#line.61">MASTERS</a></pre>
+<pre>private static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html#line.62">MASTERS</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.master.balancer.TestRegionsOnMasterOptions.MASTERS">Constant Field Values</a></dd>
@@ -360,7 +360,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>REGIONS</h4>
-<pre>private static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html#line.65">REGIONS</a></pre>
+<pre>private static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html#line.66">REGIONS</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.master.balancer.TestRegionsOnMasterOptions.REGIONS">Constant Field Values</a></dd>
@@ -373,7 +373,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>SYSTEM_REGIONS</h4>
-<pre>private static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html#line.66">SYSTEM_REGIONS</a></pre>
+<pre>private static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html#line.67">SYSTEM_REGIONS</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.master.balancer.TestRegionsOnMasterOptions.SYSTEM_REGIONS">Constant Field Values</a></dd>
@@ -394,7 +394,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestRegionsOnMasterOptions</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html#line.51">TestRegionsOnMasterOptions</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html#line.52">TestRegionsOnMasterOptions</a>()</pre>
 </li>
 </ul>
 </li>
@@ -411,7 +411,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>setup</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html#line.69">setup</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html#line.70">setup</a>()</pre>
 </li>
 </ul>
 <a name="tearDown--">
@@ -420,7 +420,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>tearDown</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html#line.76">tearDown</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html#line.77">tearDown</a>()</pre>
 </li>
 </ul>
 <a name="unset-java.lang.String-java.lang.String-">
@@ -429,7 +429,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>unset</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html#line.81">unset</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;key,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html#line.82">unset</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;key,
                    <a href="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;value)</pre>
 </li>
 </ul>
@@ -439,7 +439,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testRegionsOnAllServers</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html#line.90">testRegionsOnAllServers</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html#line.91">testRegionsOnAllServers</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>
@@ -453,7 +453,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testNoRegionOnMaster</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html#line.98">testNoRegionOnMaster</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html#line.99">testNoRegionOnMaster</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>
@@ -467,7 +467,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testSystemTablesOnMaster</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html#line.106">testSystemTablesOnMaster</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html#line.109">testSystemTablesOnMaster</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>
@@ -481,7 +481,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>checkBalance</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html#line.148">checkBalance</a>(int&nbsp;masterCount,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html#line.151">checkBalance</a>(int&nbsp;masterCount,
                           int&nbsp;rsCount)
                    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>
@@ -496,7 +496,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>checkCount</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html#line.211">checkCount</a>(int&nbsp;actual,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.html#line.214">checkCount</a>(int&nbsp;actual,
                         int&nbsp;expected)</pre>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/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 97fc772..10976ce 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
@@ -586,13 +586,13 @@
 <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/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/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/ClusterManager.ServiceType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClusterManager.ServiceType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.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/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/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/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/ClusterManager.ServiceType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClusterManager.ServiceType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/IntegrationTestRegionReplicaPerf.Stat.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">IntegrationTestRegionReplicaPerf.Stat</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
index 985b7c7..b17704e 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
@@ -205,9 +205,9 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestStateMachineProcedure.TestSMProcedureState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestYieldProcedures.TestStateMachineProcedure.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestYieldProcedures.TestStateMachineProcedure.State</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestStateMachineProcedure.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureRecovery.TestStateMachineProcedure.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestYieldProcedures.TestStateMachineProcedure.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestYieldProcedures.TestStateMachineProcedure.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestStateMachineProcedure.TestSMProcedureState</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/org/apache/hadoop/hbase/regionserver/OOMERegionServer.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/regionserver/OOMERegionServer.html b/testdevapidocs/org/apache/hadoop/hbase/regionserver/OOMERegionServer.html
index 8b4816b..7b017e0 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/OOMERegionServer.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/OOMERegionServer.html
@@ -180,7 +180,7 @@ extends org.apache.hadoop.hbase.regionserver.HRegionServer</pre>
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.HRegionServer</h3>
-<code>cacheConfig, cacheFlusher, clusterConnection, clusterStatusTracker, compactedFileDischarger, compactionChecker, compactSplitThread, conf, configurationManager, csm, executorService, fs, fsOk, fsUtilizationChore, hMemManager, infoServer, killed, leases, lock, MASTER_HOSTNAME_KEY, MASTERLESS_CONFIG_NAME, metaTableLocator, metricsRegionServer, metricsTable, mobCacheConfig, movedRegions, msgInterval, nonceManager, numRegionsToReport, numRetries, online, onlineRegions, periodicFlusher, regionFavoredNodesMap, REGIONSERVER, regionsInTransitionInRS, replicationSinkHandler, replicationSourceHandler, rowlocks, rpcClient, rpcServices, RS_HOSTNAME_DISABLE_MASTER_REVERSEDNS_KEY, RS_HOSTNAME_KEY, secureBulkLoadManager, serverName, sleeper, startcode, tableDescriptors, TEST_SKIP_REPORTING_TRANSITION, threadWakeFrequency, useThisHostnameInstead, walFactory, walFs, walRoller, zooKeeper</code></li>
+<code>cacheConfig, cacheFlusher, clusterConnection, clusterId, clusterStatusTracker, compactedFileDischarger, compactionChecker, compactSplitThread, conf, configurationManager, csm, executorService, fs, fsOk, fsUtilizationChore, hMemManager, infoServer, killed, leases, lock, MASTER_HOSTNAME_KEY, MASTERLESS_CONFIG_NAME, metaTableLocator, metricsRegionServer, metricsTable, mobCacheConfig, movedRegions, msgInterval, nonceManager, numRegionsToReport, numRetries, online, onlineRegions, periodicFlusher, regionFavoredNodesMap, REGIONSERVER, regionsInTransitionInRS, replicationSinkHandler, replicationSourceHandler, rowlocks, rpcClient, rpcServices, RS_HOSTNAME_DISABLE_MASTER_REVERSEDNS_KEY, RS_HOSTNAME_KEY, secureBulkLoadManager, serverName, sleeper, startcode, tableDescriptors, TEST_SKIP_REPORTING_TRANSITION, threadWakeFrequency, useThisHostnameInstead, walFactory, walFs, walRoller, zooKeeper</code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestCompactionInDeadRegionServer.IgnoreYouAreDeadRS.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestCompactionInDeadRegionServer.IgnoreYouAreDeadRS.html b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestCompactionInDeadRegionServer.IgnoreYouAreDeadRS.html
index af778e3..40151e0 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestCompactionInDeadRegionServer.IgnoreYouAreDeadRS.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestCompactionInDeadRegionServer.IgnoreYouAreDeadRS.html
@@ -168,7 +168,7 @@ extends org.apache.hadoop.hbase.regionserver.HRegionServer</pre>
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.HRegionServer</h3>
-<code>cacheConfig, cacheFlusher, clusterConnection, clusterStatusTracker, compactedFileDischarger, compactionChecker, compactSplitThread, conf, configurationManager, csm, executorService, fs, fsOk, fsUtilizationChore, hMemManager, infoServer, killed, leases, lock, MASTER_HOSTNAME_KEY, MASTERLESS_CONFIG_NAME, metaTableLocator, metricsRegionServer, metricsTable, mobCacheConfig, movedRegions, msgInterval, nonceManager, numRegionsToReport, numRetries, online, onlineRegions, periodicFlusher, regionFavoredNodesMap, REGIONSERVER, regionsInTransitionInRS, replicationSinkHandler, replicationSourceHandler, rowlocks, rpcClient, rpcServices, RS_HOSTNAME_DISABLE_MASTER_REVERSEDNS_KEY, RS_HOSTNAME_KEY, secureBulkLoadManager, serverName, sleeper, startcode, tableDescriptors, TEST_SKIP_REPORTING_TRANSITION, threadWakeFrequency, useThisHostnameInstead, walFactory, walFs, walRoller, zooKeeper</code></li>
+<code>cacheConfig, cacheFlusher, clusterConnection, clusterId, clusterStatusTracker, compactedFileDischarger, compactionChecker, compactSplitThread, conf, configurationManager, csm, executorService, fs, fsOk, fsUtilizationChore, hMemManager, infoServer, killed, leases, lock, MASTER_HOSTNAME_KEY, MASTERLESS_CONFIG_NAME, metaTableLocator, metricsRegionServer, metricsTable, mobCacheConfig, movedRegions, msgInterval, nonceManager, numRegionsToReport, numRetries, online, onlineRegions, periodicFlusher, regionFavoredNodesMap, REGIONSERVER, regionsInTransitionInRS, replicationSinkHandler, replicationSourceHandler, rowlocks, rpcClient, rpcServices, RS_HOSTNAME_DISABLE_MASTER_REVERSEDNS_KEY, RS_HOSTNAME_KEY, secureBulkLoadManager, serverName, sleeper, startcode, tableDescriptors, TEST_SKIP_REPORTING_TRANSITION, threadWakeFrequency, useThisHostnameInstead, walFactory, walFs, walRoller, zooKeeper</code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestRSKilledWhenInitializing.RegisterAndDieRegionServer.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestRSKilledWhenInitializing.RegisterAndDieRegionServer.html b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestRSKilledWhenInitializing.RegisterAndDieRegionServer.html
index 5c54f4a..8833eb9 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestRSKilledWhenInitializing.RegisterAndDieRegionServer.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestRSKilledWhenInitializing.RegisterAndDieRegionServer.html
@@ -176,7 +176,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/MiniHBaseCluster.MiniHBa
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.HRegionServer</h3>
-<code>cacheConfig, cacheFlusher, clusterConnection, clusterStatusTracker, compactedFileDischarger, compactionChecker, compactSplitThread, conf, configurationManager, csm, executorService, fs, fsOk, fsUtilizationChore, hMemManager, infoServer, killed, leases, lock, MASTER_HOSTNAME_KEY, MASTERLESS_CONFIG_NAME, metaTableLocator, metricsRegionServer, metricsTable, mobCacheConfig, movedRegions, msgInterval, nonceManager, numRegionsToReport, numRetries, online, onlineRegions, periodicFlusher, regionFavoredNodesMap, REGIONSERVER, regionsInTransitionInRS, replicationSinkHandler, replicationSourceHandler, rowlocks, rpcClient, rpcServices, RS_HOSTNAME_DISABLE_MASTER_REVERSEDNS_KEY, RS_HOSTNAME_KEY, secureBulkLoadManager, serverName, sleeper, startcode, tableDescriptors, TEST_SKIP_REPORTING_TRANSITION, threadWakeFrequency, useThisHostnameInstead, walFactory, walFs, walRoller, zooKeeper</code></li>
+<code>cacheConfig, cacheFlusher, clusterConnection, clusterId, clusterStatusTracker, compactedFileDischarger, compactionChecker, compactSplitThread, conf, configurationManager, csm, executorService, fs, fsOk, fsUtilizationChore, hMemManager, infoServer, killed, leases, lock, MASTER_HOSTNAME_KEY, MASTERLESS_CONFIG_NAME, metaTableLocator, metricsRegionServer, metricsTable, mobCacheConfig, movedRegions, msgInterval, nonceManager, numRegionsToReport, numRetries, online, onlineRegions, periodicFlusher, regionFavoredNodesMap, REGIONSERVER, regionsInTransitionInRS, replicationSinkHandler, replicationSourceHandler, rowlocks, rpcClient, rpcServices, RS_HOSTNAME_DISABLE_MASTER_REVERSEDNS_KEY, RS_HOSTNAME_KEY, secureBulkLoadManager, serverName, sleeper, startcode, tableDescriptors, TEST_SKIP_REPORTING_TRANSITION, threadWakeFrequency, useThisHostnameInstead, walFactory, walFs, walRoller, zooKeeper</code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestRegionMergeTransactionOnCluster.MyMaster.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestRegionMergeTransactionOnCluster.MyMaster.html b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestRegionMergeTransactionOnCluster.MyMaster.html
index 6c2c432..5ff64cc 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestRegionMergeTransactionOnCluster.MyMaster.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestRegionMergeTransactionOnCluster.MyMaster.html
@@ -187,7 +187,7 @@ extends org.apache.hadoop.hbase.master.HMaster</pre>
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.HRegionServer</h3>
-<code>cacheConfig, cacheFlusher, clusterConnection, clusterStatusTracker, compactedFileDischarger, compactionChecker, compactSplitThread, conf, configurationManager, csm, executorService, fs, fsOk, fsUtilizationChore, hMemManager, infoServer, killed, leases, lock, MASTER_HOSTNAME_KEY, MASTERLESS_CONFIG_NAME, metaTableLocator, metricsRegionServer, metricsTable, mobCacheConfig, movedRegions, msgInterval, nonceManager, numRegionsToReport, numRetries, online, onlineRegions, periodicFlusher, regionFavoredNodesMap, REGIONSERVER, regionsInTransitionInRS, replicationSinkHandler, replicationSourceHandler, rowlocks, rpcClient, rpcServices, RS_HOSTNAME_DISABLE_MASTER_REVERSEDNS_KEY, RS_HOSTNAME_KEY, secureBulkLoadManager, serverName, sleeper, startcode, tableDescriptors, TEST_SKIP_REPORTING_TRANSITION, threadWakeFrequency, useThisHostnameInstead, walFactory, walFs, walRoller, zooKeeper</code></li>
+<code>cacheConfig, cacheFlusher, clusterConnection, clusterId, clusterStatusTracker, compactedFileDischarger, compactionChecker, compactSplitThread, conf, configurationManager, csm, executorService, fs, fsOk, fsUtilizationChore, hMemManager, infoServer, killed, leases, lock, MASTER_HOSTNAME_KEY, MASTERLESS_CONFIG_NAME, metaTableLocator, metricsRegionServer, metricsTable, mobCacheConfig, movedRegions, msgInterval, nonceManager, numRegionsToReport, numRetries, online, onlineRegions, periodicFlusher, regionFavoredNodesMap, REGIONSERVER, regionsInTransitionInRS, replicationSinkHandler, replicationSourceHandler, rowlocks, rpcClient, rpcServices, RS_HOSTNAME_DISABLE_MASTER_REVERSEDNS_KEY, RS_HOSTNAME_KEY, secureBulkLoadManager, serverName, sleeper, startcode, tableDescriptors, TEST_SKIP_REPORTING_TRANSITION, threadWakeFrequency, useThisHostnameInstead, walFactory, walFs, walRoller, zooKeeper</code></li>
 </ul>
 </li>
 </ul>
@@ -230,14 +230,14 @@ extends org.apache.hadoop.hbase.master.HMaster</pre>
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.master.HMaster</h3>
-<code>abort, abortProcedure, addColumn, addReplicationPeer, balance, balance, balanceSwitch, canCreateBaseZNode, canUpdateTableDescriptor, checkIfShouldMoveSystemRegionAsync, checkTableModifiable, configureInfoServer, constructMaster, createSystemTable, createTable, decommissionRegionServers, deleteColumn, deleteTable, disableReplicationPeer, disableTable, enableReplicationPeer, enableTable, getAssignmentManager, getAverageLoad, getCatalogJanitor, getClientIdAuditPrefix, getClusterMetrics, getClusterMetrics, getClusterMetricsWithoutCoprocessor, getClusterMetricsWithoutCoprocessor, getClusterSchema, getDumpServlet, getFavoredNodesManager, getHFileCleaner, getInitializedEvent, getLastMajorCompactionTimestamp, getLastMajorCompactionTimestampForRegion, getLoadBalancer, getLoadBalancerClassName, getLoadedCoprocessors, getLockManager, getLocks, getLogCleaner, getMasterActiveTime, getMasterCoprocessorHost, getMasterCoprocessors, getMasterFileSystem, getMasterFinishedInitializationTime, get
 MasterMetrics, getMasterProcedureExecutor, getMasterProcedureManagerHost, getMasterQuotaManager, getMasterRpcServices, getMasterStartTime, getMasterWalManager, getMergePlanCount, getMetaTableObserver, getMobCompactionState, getNumWALFiles, getProcedures, getProcessName, getQuotaObserverChore, getRegionNormalizer, getRegionNormalizerTracker, getRegionServerFatalLogBuffer, getRegionServerInfoPort, getRegionServerVersion, getReplicationPeerConfig, getReplicationPeerManager, getServerCrashProcessingEnabledEvent, getServerManager, getServerName, getSnapshotManager, getSpaceQuotaSnapshotNotifier, getSplitOrMergeTracker, getSplitPlanCount, getTableDescriptors, getTableStateManager, getWalProcedureStore, getZooKeeper, isActiveMaster, isBalancerOn, isInitialized, isInMaintenanceMode, isNormalizerOn, isServerCrashProcessingEnabled, isSplitOrMergeEnabled, listDecommissionedRegionServers, listReplicationPeers, listTableDescriptors, listTableDescriptorsByNamespace, listTableNames, listTableNames
 ByNamespace, login, main, mergeRegions, modifyColumn, modifyTable, move, normalizeRegions, recommissionRegionServer, recoverMeta, registerService, remoteProcedureCompleted, remoteProcedureFailed, removeReplicationPeer, reportMobCompactionEnd, reportMobCompactionStart, requestMobCompaction, restoreSnapshot, run, setCatalogJanitorEnabled, setInitialized, setServerCrashProcessingEnabled, shutdown, splitRegion, stopMaster, stopServiceThreads, truncateTable, updateConfigurationForSpaceQuotaObserver, updateReplicationPeerConfig, waitForMasterActive</code></li>
+<code>abort, abortProcedure, addColumn, addReplicationPeer, balance, balance, balanceSwitch, canCreateBaseZNode, canUpdateTableDescriptor, checkIfShouldMoveSystemRegionAsync, checkTableModifiable, configureInfoServer, constructMaster, createSystemTable, createTable, decommissionRegionServers, deleteColumn, deleteTable, disableReplicationPeer, disableTable, enableReplicationPeer, enableTable, getAssignmentManager, getAverageLoad, getCatalogJanitor, getClientIdAuditPrefix, getClusterMetrics, getClusterMetrics, getClusterMetricsWithoutCoprocessor, getClusterMetricsWithoutCoprocessor, getClusterSchema, getDumpServlet, getFavoredNodesManager, getHFileCleaner, getInitializedEvent, getLastMajorCompactionTimestamp, getLastMajorCompactionTimestampForRegion, getLoadBalancer, getLoadBalancerClassName, getLoadedCoprocessors, getLockManager, getLocks, getLogCleaner, getMasterActiveTime, getMasterCoprocessorHost, getMasterCoprocessors, getMasterFileSystem, getMasterFinishedInitializationTime, get
 MasterMetrics, getMasterProcedureExecutor, getMasterProcedureManagerHost, getMasterQuotaManager, getMasterRpcServices, getMasterStartTime, getMasterWalManager, getMergePlanCount, getMetaTableObserver, getMobCompactionState, getNumWALFiles, getProcedures, getProcessName, getQuotaObserverChore, getRegionNormalizer, getRegionNormalizerTracker, getRegionServerFatalLogBuffer, getRegionServerInfoPort, getRegionServerVersion, getReplicationPeerConfig, getReplicationPeerManager, getServerCrashProcessingEnabledEvent, getServerManager, getServerName, getSnapshotManager, getSpaceQuotaSnapshotNotifier, getSplitOrMergeTracker, getSplitPlanCount, getTableDescriptors, getTableStateManager, getWalProcedureStore, getZooKeeper, isActiveMaster, isBalancerOn, isInitialized, isInMaintenanceMode, isNormalizerOn, isServerCrashProcessingEnabled, isSplitOrMergeEnabled, listDecommissionedRegionServers, listReplicationPeers, listTableDescriptors, listTableDescriptorsByNamespace, listTableNames, listTableNames
 ByNamespace, login, main, mergeRegions, modifyColumn, modifyTable, move, normalizeRegions, recommissionRegionServer, recoverMeta, registerService, remoteProcedureCompleted, remoteProcedureFailed, removeReplicationPeer, reportMobCompactionEnd, reportMobCompactionStart, requestMobCompaction, restoreSnapshot, run, setCatalogJanitorEnabled, setInitialized, setServerCrashProcessingEnabled, shutdown, splitRegion, stop, stopMaster, stopServiceThreads, truncateTable, updateConfigurationForSpaceQuotaObserver, updateReplicationPeerConfig, waitForMasterActive</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.regionserver.HRegionServer">
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.HRegionServer</h3>
-<code>abort, addRegion, addToMovedRegions, buildRegionSpaceUseReportRequest, buildServerLoad, checkFileSystem, cleanMovedRegions, clearRegionBlockCache, closeAllRegions, closeAndOfflineRegionForSplitOrMerge, closeMetaTableRegions, closeRegion, closeUserRegions, constructRegionServer, convertRegionSize, convertThrowableToIOE, createClusterConnection, createConnection, createRegionLoad, createRegionLoad, createRegionServerStatusStub, createRegionServerStatusStub, execRegionServerService, executeProcedure, getCacheConfig, getChoreService, getClusterConnection, getClusterId, getCompactionPressure, getCompactionRequestor, getCompactSplitThread, getConfiguration, getConfigurationManager, getConnection, getCoordinatedStateManager, getCopyOfOnlineRegionsSortedBySize, getEventLoopGroupConfig, getExecutorService, getFavoredNodesForRegion, getFileSystem, getFlushPressure, getFlushRequester, getFlushThroughputController, getFsTableDescriptors, getHeapMemoryManager, getInfoServer, getLastSequenc
 eId, getLeases, getMasterAddressTracker, getMetaTableLocator, getMetrics, getMostLoadedRegions, getNonceManager, getNumberOfOnlineRegions, getOnlineRegion, getOnlineRegionsAsPrintableString, getOnlineRegionsLocalContext, getOnlineTables, getRegion, getRegion, getRegionBlockLocations, getRegionByEncodedName, getRegionByEncodedName, getRegions, getRegions, getRegionServerAccounting, getRegionServerCoprocessorHost, getRegionServerCoprocessors, getRegionServerMetrics, getRegionServerRpcQuotaManager, getRegionServerSpaceQuotaManager, getRegionsInTransitionInRS, getReplicationSinkService, getReplicationSourceService, getRootDir, getRpcServer, getRSRpcServices, getSecureBulkLoadManager, getStartcode, getThreadWakeFrequency, getWAL, getWALFileSystem, getWalRoller, getWALRootDir, getWALs, getWriteLock, handleReportForDutyResponse, initializeMemStoreChunkCreator, isAborted, isOnline, isOnlineRegionsEmpty, isStopped, isStopping, kill, movedRegionCleanerPeriod, onConfigurationChange, postOpenDe
 ployTasks, regionLock, remoteProcedureComplete, removeFromMovedRegions, removeRegion, reportProcedureDone, reportRegionSizesForQuotas, reportRegionStateTransition, sendShutdownInterrupt, setupClusterConnection, shouldUseThisHostnameInstead, stop, stop, toString, triggerFlushInPrimaryRegion, tryRegionServerReport, unassign, updateConfiguration, updateRegionFavoredNodesMapping, waitForServerOnline, walRollRequestFinished</code></li>
+<code>abort, addRegion, addToMovedRegions, buildRegionSpaceUseReportRequest, buildServerLoad, checkFileSystem, cleanMovedRegions, clearRegionBlockCache, closeAllRegions, closeAndOfflineRegionForSplitOrMerge, closeMetaTableRegions, closeRegion, closeUserRegions, constructRegionServer, convertRegionSize, convertThrowableToIOE, createClusterConnection, createConnection, createRegionLoad, createRegionLoad, createRegionServerStatusStub, createRegionServerStatusStub, execRegionServerService, executeProcedure, getCacheConfig, getChoreService, getClusterConnection, getClusterId, getCompactionPressure, getCompactionRequestor, getCompactSplitThread, getConfiguration, getConfigurationManager, getConnection, getCoordinatedStateManager, getCopyOfOnlineRegionsSortedBySize, getEventLoopGroupConfig, getExecutorService, getFavoredNodesForRegion, getFileSystem, getFlushPressure, getFlushRequester, getFlushThroughputController, getFsTableDescriptors, getHeapMemoryManager, getInfoServer, getLastSequenc
 eId, getLeases, getMasterAddressTracker, getMetaTableLocator, getMetrics, getMostLoadedRegions, getNonceManager, getNumberOfOnlineRegions, getOnlineRegion, getOnlineRegionsAsPrintableString, getOnlineRegionsLocalContext, getOnlineTables, getRegion, getRegion, getRegionBlockLocations, getRegionByEncodedName, getRegionByEncodedName, getRegions, getRegions, getRegionServerAccounting, getRegionServerCoprocessorHost, getRegionServerCoprocessors, getRegionServerMetrics, getRegionServerRpcQuotaManager, getRegionServerSpaceQuotaManager, getRegionsInTransitionInRS, getReplicationSinkService, getReplicationSourceService, getRootDir, getRpcServer, getRSRpcServices, getSecureBulkLoadManager, getStartcode, getThreadWakeFrequency, getWAL, getWALFileSystem, getWalRoller, getWALRootDir, getWALs, getWriteLock, handleReportForDutyResponse, initializeMemStoreChunkCreator, isAborted, isOnline, isOnlineRegionsEmpty, isStopped, isStopping, kill, movedRegionCleanerPeriod, onConfigurationChange, postOpenDe
 ployTasks, regionLock, remoteProcedureComplete, removeFromMovedRegions, removeRegion, reportProcedureDone, reportRegionSizesForQuotas, reportRegionStateTransition, sendShutdownInterrupt, setupClusterConnection, shouldUseThisHostnameInstead, stop, toString, triggerFlushInPrimaryRegion, tryRegionServerReport, unassign, updateConfiguration, updateRegionFavoredNodesMapping, waitForServerOnline, walRollRequestFinished</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.util.HasThread">
@@ -279,7 +279,7 @@ extends org.apache.hadoop.hbase.master.HMaster</pre>
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.Stoppable</h3>
-<code>isStopped, stop</code></li>
+<code>isStopped</code></li>
 </ul>
 </li>
 </ul>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.WALItem.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.WALItem.html b/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.WALItem.html
index 514ad87..3f74159 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.WALItem.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.WALItem.html
@@ -50,17 +50,17 @@
 <span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.Cell;<a name="line.42"></a>
 <span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.CellUtil;<a name="line.43"></a>
 <span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.HBaseConfiguration;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.ServerName;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.TableName;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.backup.BackupInfo;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.backup.BackupInfo.BackupState;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.backup.BackupRestoreConstants;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.backup.BackupType;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.backup.util.BackupUtils;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.client.Admin;<a name="line.55"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.ServerName;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.TableName;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.backup.BackupInfo;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.backup.BackupInfo.BackupState;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.backup.BackupRestoreConstants;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.backup.BackupType;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.backup.util.BackupUtils;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.client.Admin;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;<a name="line.55"></a>
 <span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.client.Connection;<a name="line.56"></a>
 <span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.client.Delete;<a name="line.57"></a>
 <span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.client.Get;<a name="line.58"></a>
@@ -70,1955 +70,2008 @@
 <span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.client.Scan;<a name="line.62"></a>
 <span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.client.SnapshotDescription;<a name="line.63"></a>
 <span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.client.Table;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.slf4j.Logger;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.slf4j.LoggerFactory;<a name="line.70"></a>
-<span class="sourceLineNo">071</span><a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.BackupProtos;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;<a name="line.73"></a>
-<span class="sourceLineNo">074</span><a name="line.74"></a>
-<span class="sourceLineNo">075</span>/**<a name="line.75"></a>
-<span class="sourceLineNo">076</span> * This class provides API to access backup system table&lt;br&gt;<a name="line.76"></a>
-<span class="sourceLineNo">077</span> *<a name="line.77"></a>
-<span class="sourceLineNo">078</span> * Backup system table schema:&lt;br&gt;<a name="line.78"></a>
-<span class="sourceLineNo">079</span> * &lt;p&gt;&lt;ul&gt;<a name="line.79"></a>
-<span class="sourceLineNo">080</span> * &lt;li&gt;1. Backup sessions rowkey= "session:"+backupId; value =serialized BackupInfo&lt;/li&gt;<a name="line.80"></a>
-<span class="sourceLineNo">081</span> * &lt;li&gt;2. Backup start code rowkey = "startcode:"+backupRoot; value = startcode&lt;/li&gt;<a name="line.81"></a>
-<span class="sourceLineNo">082</span> * &lt;li&gt;3. Incremental backup set rowkey="incrbackupset:"+backupRoot; value=[list of tables]&lt;/li&gt;<a name="line.82"></a>
-<span class="sourceLineNo">083</span> * &lt;li&gt;4. Table-RS-timestamp map rowkey="trslm:"+backupRoot+table_name;<a name="line.83"></a>
-<span class="sourceLineNo">084</span> * value = map[RS-&gt; last WAL timestamp]&lt;/li&gt;<a name="line.84"></a>
-<span class="sourceLineNo">085</span> * &lt;li&gt;5. RS - WAL ts map rowkey="rslogts:"+backupRoot +server; value = last WAL timestamp&lt;/li&gt;<a name="line.85"></a>
-<span class="sourceLineNo">086</span> * &lt;li&gt;6. WALs recorded rowkey="wals:"+WAL unique file name;<a name="line.86"></a>
-<span class="sourceLineNo">087</span> * value = backupId and full WAL file name&lt;/li&gt;<a name="line.87"></a>
-<span class="sourceLineNo">088</span> * &lt;/ul&gt;&lt;/p&gt;<a name="line.88"></a>
-<span class="sourceLineNo">089</span> */<a name="line.89"></a>
-<span class="sourceLineNo">090</span><a name="line.90"></a>
-<span class="sourceLineNo">091</span>@InterfaceAudience.Private<a name="line.91"></a>
-<span class="sourceLineNo">092</span>public final class BackupSystemTable implements Closeable {<a name="line.92"></a>
-<span class="sourceLineNo">093</span>  private static final Logger LOG = LoggerFactory.getLogger(BackupSystemTable.class);<a name="line.93"></a>
-<span class="sourceLineNo">094</span><a name="line.94"></a>
-<span class="sourceLineNo">095</span>  static class WALItem {<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    String backupId;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    String walFile;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>    String backupRoot;<a name="line.98"></a>
-<span class="sourceLineNo">099</span><a name="line.99"></a>
-<span class="sourceLineNo">100</span>    WALItem(String backupId, String walFile, String backupRoot) {<a name="line.100"></a>
-<span class="sourceLineNo">101</span>      this.backupId = backupId;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>      this.walFile = walFile;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>      this.backupRoot = backupRoot;<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>    public String getBackupId() {<a name="line.106"></a>
-<span class="sourceLineNo">107</span>      return backupId;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    }<a name="line.108"></a>
-<span class="sourceLineNo">109</span><a name="line.109"></a>
-<span class="sourceLineNo">110</span>    public String getWalFile() {<a name="line.110"></a>
-<span class="sourceLineNo">111</span>      return walFile;<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>    public String getBackupRoot() {<a name="line.114"></a>
-<span class="sourceLineNo">115</span>      return backupRoot;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    }<a name="line.116"></a>
-<span class="sourceLineNo">117</span><a name="line.117"></a>
-<span class="sourceLineNo">118</span>    @Override<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    public String toString() {<a name="line.119"></a>
-<span class="sourceLineNo">120</span>      return Path.SEPARATOR + backupRoot + Path.SEPARATOR + backupId + Path.SEPARATOR + walFile;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    }<a name="line.121"></a>
-<span class="sourceLineNo">122</span><a name="line.122"></a>
-<span class="sourceLineNo">123</span>  }<a name="line.123"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.client.TableDescriptor;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.client.TableDescriptorBuilder;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.slf4j.Logger;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.slf4j.LoggerFactory;<a name="line.72"></a>
+<span class="sourceLineNo">073</span><a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.BackupProtos;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;<a name="line.75"></a>
+<span class="sourceLineNo">076</span><a name="line.76"></a>
+<span class="sourceLineNo">077</span>/**<a name="line.77"></a>
+<span class="sourceLineNo">078</span> * This class provides API to access backup system table&lt;br&gt;<a name="line.78"></a>
+<span class="sourceLineNo">079</span> *<a name="line.79"></a>
+<span class="sourceLineNo">080</span> * Backup system table schema:&lt;br&gt;<a name="line.80"></a>
+<span class="sourceLineNo">081</span> * &lt;p&gt;&lt;ul&gt;<a name="line.81"></a>
+<span class="sourceLineNo">082</span> * &lt;li&gt;1. Backup sessions rowkey= "session:"+backupId; value =serialized BackupInfo&lt;/li&gt;<a name="line.82"></a>
+<span class="sourceLineNo">083</span> * &lt;li&gt;2. Backup start code rowkey = "startcode:"+backupRoot; value = startcode&lt;/li&gt;<a name="line.83"></a>
+<span class="sourceLineNo">084</span> * &lt;li&gt;3. Incremental backup set rowkey="incrbackupset:"+backupRoot; value=[list of tables]&lt;/li&gt;<a name="line.84"></a>
+<span class="sourceLineNo">085</span> * &lt;li&gt;4. Table-RS-timestamp map rowkey="trslm:"+backupRoot+table_name;<a name="line.85"></a>
+<span class="sourceLineNo">086</span> * value = map[RS-&gt; last WAL timestamp]&lt;/li&gt;<a name="line.86"></a>
+<span class="sourceLineNo">087</span> * &lt;li&gt;5. RS - WAL ts map rowkey="rslogts:"+backupRoot +server; value = last WAL timestamp&lt;/li&gt;<a name="line.87"></a>
+<span class="sourceLineNo">088</span> * &lt;li&gt;6. WALs recorded rowkey="wals:"+WAL unique file name;<a name="line.88"></a>
+<span class="sourceLineNo">089</span> * value = backupId and full WAL file name&lt;/li&gt;<a name="line.89"></a>
+<span class="sourceLineNo">090</span> * &lt;/ul&gt;&lt;/p&gt;<a name="line.90"></a>
+<span class="sourceLineNo">091</span> */<a name="line.91"></a>
+<span class="sourceLineNo">092</span><a name="line.92"></a>
+<span class="sourceLineNo">093</span>@InterfaceAudience.Private<a name="line.93"></a>
+<span class="sourceLineNo">094</span>public final class BackupSystemTable implements Closeable {<a name="line.94"></a>
+<span class="sourceLineNo">095</span>  private static final Logger LOG = LoggerFactory.getLogger(BackupSystemTable.class);<a name="line.95"></a>
+<span class="sourceLineNo">096</span><a name="line.96"></a>
+<span class="sourceLineNo">097</span>  static class WALItem {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    String backupId;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    String walFile;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    String backupRoot;<a name="line.100"></a>
+<span class="sourceLineNo">101</span><a name="line.101"></a>
+<span class="sourceLineNo">102</span>    WALItem(String backupId, String walFile, String backupRoot) {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>      this.backupId = backupId;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>      this.walFile = walFile;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>      this.backupRoot = backupRoot;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    }<a name="line.106"></a>
+<span class="sourceLineNo">107</span><a name="line.107"></a>
+<span class="sourceLineNo">108</span>    public String getBackupId() {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>      return backupId;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    }<a name="line.110"></a>
+<span class="sourceLineNo">111</span><a name="line.111"></a>
+<span class="sourceLineNo">112</span>    public String getWalFile() {<a name="line.112"></a>
+<span class="sourceLineNo">113</span>      return walFile;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    }<a name="line.114"></a>
+<span class="sourceLineNo">115</span><a name="line.115"></a>
+<span class="sourceLineNo">116</span>    public String getBackupRoot() {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>      return backupRoot;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    }<a name="line.118"></a>
+<span class="sourceLineNo">119</span><a name="line.119"></a>
+<span class="sourceLineNo">120</span>    @Override<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    public String toString() {<a name="line.121"></a>
+<span class="sourceLineNo">122</span>      return Path.SEPARATOR + backupRoot + Path.SEPARATOR + backupId + Path.SEPARATOR + walFile;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    }<a name="line.123"></a>
 <span class="sourceLineNo">124</span><a name="line.124"></a>
-<span class="sourceLineNo">125</span>  private TableName tableName;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>  /**<a name="line.126"></a>
-<span class="sourceLineNo">127</span>   * Stores backup sessions (contexts)<a name="line.127"></a>
-<span class="sourceLineNo">128</span>   */<a name="line.128"></a>
-<span class="sourceLineNo">129</span>  final static byte[] SESSIONS_FAMILY = "session".getBytes();<a name="line.129"></a>
-<span class="sourceLineNo">130</span>  /**<a name="line.130"></a>
-<span class="sourceLineNo">131</span>   * Stores other meta<a name="line.131"></a>
-<span class="sourceLineNo">132</span>   */<a name="line.132"></a>
-<span class="sourceLineNo">133</span>  final static byte[] META_FAMILY = "meta".getBytes();<a name="line.133"></a>
-<span class="sourceLineNo">134</span>  final static byte[] BULK_LOAD_FAMILY = "bulk".getBytes();<a name="line.134"></a>
-<span class="sourceLineNo">135</span>  /**<a name="line.135"></a>
-<span class="sourceLineNo">136</span>   * Connection to HBase cluster, shared among all instances<a name="line.136"></a>
-<span class="sourceLineNo">137</span>   */<a name="line.137"></a>
-<span class="sourceLineNo">138</span>  private final Connection connection;<a name="line.138"></a>
+<span class="sourceLineNo">125</span>  }<a name="line.125"></a>
+<span class="sourceLineNo">126</span><a name="line.126"></a>
+<span class="sourceLineNo">127</span>  /**<a name="line.127"></a>
+<span class="sourceLineNo">128</span>   * Backup system table (main) name<a name="line.128"></a>
+<span class="sourceLineNo">129</span>   */<a name="line.129"></a>
+<span class="sourceLineNo">130</span>  private TableName tableName;<a name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span>  /**<a name="line.132"></a>
+<span class="sourceLineNo">133</span>   * Backup System table name for bulk loaded files.<a name="line.133"></a>
+<span class="sourceLineNo">134</span>   * We keep all bulk loaded file references in a separate table<a name="line.134"></a>
+<span class="sourceLineNo">135</span>   * because we have to isolate general backup operations: create, merge etc<a name="line.135"></a>
+<span class="sourceLineNo">136</span>   * from activity of RegionObserver, which controls process of a bulk loading<a name="line.136"></a>
+<span class="sourceLineNo">137</span>   * {@link org.apache.hadoop.hbase.backup.BackupObserver}<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>  private final static String BACKUP_INFO_PREFIX = "session:";<a name="line.140"></a>
-<span class="sourceLineNo">141</span>  private final static String START_CODE_ROW = "startcode:";<a name="line.141"></a>
-<span class="sourceLineNo">142</span>  private final static byte[] ACTIVE_SESSION_ROW = "activesession:".getBytes();<a name="line.142"></a>
-<span class="sourceLineNo">143</span>  private final static byte[] ACTIVE_SESSION_COL = "c".getBytes();<a name="line.143"></a>
-<span class="sourceLineNo">144</span><a name="line.144"></a>
-<span class="sourceLineNo">145</span>  private final static byte[] ACTIVE_SESSION_YES = "yes".getBytes();<a name="line.145"></a>
-<span class="sourceLineNo">146</span>  private final static byte[] ACTIVE_SESSION_NO = "no".getBytes();<a name="line.146"></a>
-<span class="sourceLineNo">147</span><a name="line.147"></a>
-<span class="sourceLineNo">148</span>  private final static String INCR_BACKUP_SET = "incrbackupset:";<a name="line.148"></a>
-<span class="sourceLineNo">149</span>  private final static String TABLE_RS_LOG_MAP_PREFIX = "trslm:";<a name="line.149"></a>
-<span class="sourceLineNo">150</span>  private final static String RS_LOG_TS_PREFIX = "rslogts:";<a name="line.150"></a>
-<span class="sourceLineNo">151</span><a name="line.151"></a>
-<span class="sourceLineNo">152</span>  private final static String BULK_LOAD_PREFIX = "bulk:";<a name="line.152"></a>
-<span class="sourceLineNo">153</span>  private final static byte[] BULK_LOAD_PREFIX_BYTES = BULK_LOAD_PREFIX.getBytes();<a name="line.153"></a>
-<span class="sourceLineNo">154</span>  private final static byte[] DELETE_OP_ROW = "delete_op_row".getBytes();<a name="line.154"></a>
-<span class="sourceLineNo">155</span>  private final static byte[] MERGE_OP_ROW = "merge_op_row".getBytes();<a name="line.155"></a>
-<span class="sourceLineNo">156</span><a name="line.156"></a>
-<span class="sourceLineNo">157</span>  final static byte[] TBL_COL = Bytes.toBytes("tbl");<a name="line.157"></a>
-<span class="sourceLineNo">158</span>  final static byte[] FAM_COL = Bytes.toBytes("fam");<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  final static byte[] PATH_COL = Bytes.toBytes("path");<a name="line.159"></a>
-<span class="sourceLineNo">160</span>  final static byte[] STATE_COL = Bytes.toBytes("state");<a name="line.160"></a>
-<span class="sourceLineNo">161</span>  // the two states a bulk loaded file can be<a name="line.161"></a>
-<span class="sourceLineNo">162</span>  final static byte[] BL_PREPARE = Bytes.toBytes("R");<a name="line.162"></a>
-<span class="sourceLineNo">163</span>  final static byte[] BL_COMMIT = Bytes.toBytes("D");<a name="line.163"></a>
-<span class="sourceLineNo">164</span><a name="line.164"></a>
-<span class="sourceLineNo">165</span>  private final static String WALS_PREFIX = "wals:";<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  private final static String SET_KEY_PREFIX = "backupset:";<a name="line.166"></a>
+<span class="sourceLineNo">140</span>  private TableName bulkLoadTableName;<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>   * Stores backup sessions (contexts)<a name="line.143"></a>
+<span class="sourceLineNo">144</span>   */<a name="line.144"></a>
+<span class="sourceLineNo">145</span>  final static byte[] SESSIONS_FAMILY = "session".getBytes();<a name="line.145"></a>
+<span class="sourceLineNo">146</span>  /**<a name="line.146"></a>
+<span class="sourceLineNo">147</span>   * Stores other meta<a name="line.147"></a>
+<span class="sourceLineNo">148</span>   */<a name="line.148"></a>
+<span class="sourceLineNo">149</span>  final static byte[] META_FAMILY = "meta".getBytes();<a name="line.149"></a>
+<span class="sourceLineNo">150</span>  final static byte[] BULK_LOAD_FAMILY = "bulk".getBytes();<a name="line.150"></a>
+<span class="sourceLineNo">151</span>  /**<a name="line.151"></a>
+<span class="sourceLineNo">152</span>   * Connection to HBase cluster, shared among all instances<a name="line.152"></a>
+<span class="sourceLineNo">153</span>   */<a name="line.153"></a>
+<span class="sourceLineNo">154</span>  private final Connection connection;<a name="line.154"></a>
+<span class="sourceLineNo">155</span><a name="line.155"></a>
+<span class="sourceLineNo">156</span>  private final static String BACKUP_INFO_PREFIX = "session:";<a name="line.156"></a>
+<span class="sourceLineNo">157</span>  private final static String START_CODE_ROW = "startcode:";<a name="line.157"></a>
+<span class="sourceLineNo">158</span>  private final static byte[] ACTIVE_SESSION_ROW = "activesession:".getBytes();<a name="line.158"></a>
+<span class="sourceLineNo">159</span>  private final static byte[] ACTIVE_SESSION_COL = "c".getBytes();<a name="line.159"></a>
+<span class="sourceLineNo">160</span><a name="line.160"></a>
+<span class="sourceLineNo">161</span>  private final static byte[] ACTIVE_SESSION_YES = "yes".getBytes();<a name="line.161"></a>
+<span class="sourceLineNo">162</span>  private final static byte[] ACTIVE_SESSION_NO = "no".getBytes();<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>  private final static String INCR_BACKUP_SET = "incrbackupset:";<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  private final static String TABLE_RS_LOG_MAP_PREFIX = "trslm:";<a name="line.165"></a>
+<span class="sourceLineNo">166</span>  private final static String RS_LOG_TS_PREFIX = "rslogts:";<a name="line.166"></a>
 <span class="sourceLineNo">167</span><a name="line.167"></a>
-<span class="sourceLineNo">168</span>  // separator between BULK_LOAD_PREFIX and ordinals<a name="line.168"></a>
-<span class="sourceLineNo">169</span>  protected final static String BLK_LD_DELIM = ":";<a name="line.169"></a>
-<span class="sourceLineNo">170</span>  private final static byte[] EMPTY_VALUE = new byte[] {};<a name="line.170"></a>
-<span class="sourceLineNo">171</span><a name="line.171"></a>
-<span class="sourceLineNo">172</span>  // Safe delimiter in a string<a name="line.172"></a>
-<span class="sourceLineNo">173</span>  private final static String NULL = "\u0000";<a name="line.173"></a>
-<span class="sourceLineNo">174</span><a name="line.174"></a>
-<span class="sourceLineNo">175</span>  public BackupSystemTable(Connection conn) throws IOException {<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    this.connection = conn;<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    tableName = BackupSystemTable.getTableName(conn.getConfiguration());<a name="line.177"></a>
-<span class="sourceLineNo">178</span>    checkSystemTable();<a name="line.178"></a>
-<span class="sourceLineNo">179</span>  }<a name="line.179"></a>
+<span class="sourceLineNo">168</span>  private final static String BULK_LOAD_PREFIX = "bulk:";<a name="line.168"></a>
+<span class="sourceLineNo">169</span>  private final static byte[] BULK_LOAD_PREFIX_BYTES = BULK_LOAD_PREFIX.getBytes();<a name="line.169"></a>
+<span class="sourceLineNo">170</span>  private final static byte[] DELETE_OP_ROW = "delete_op_row".getBytes();<a name="line.170"></a>
+<span class="sourceLineNo">171</span>  private final static byte[] MERGE_OP_ROW = "merge_op_row".getBytes();<a name="line.171"></a>
+<span class="sourceLineNo">172</span><a name="line.172"></a>
+<span class="sourceLineNo">173</span>  final static byte[] TBL_COL = Bytes.toBytes("tbl");<a name="line.173"></a>
+<span class="sourceLineNo">174</span>  final static byte[] FAM_COL = Bytes.toBytes("fam");<a name="line.174"></a>
+<span class="sourceLineNo">175</span>  final static byte[] PATH_COL = Bytes.toBytes("path");<a name="line.175"></a>
+<span class="sourceLineNo">176</span>  final static byte[] STATE_COL = Bytes.toBytes("state");<a name="line.176"></a>
+<span class="sourceLineNo">177</span>  // the two states a bulk loaded file can be<a name="line.177"></a>
+<span class="sourceLineNo">178</span>  final static byte[] BL_PREPARE = Bytes.toBytes("R");<a name="line.178"></a>
+<span class="sourceLineNo">179</span>  final static byte[] BL_COMMIT = Bytes.toBytes("D");<a name="line.179"></a>
 <span class="sourceLineNo">180</span><a name="line.180"></a>
-<span class="sourceLineNo">181</span>  private void checkSystemTable() throws IOException {<a name="line.181"></a>
-<span class="sourceLineNo">182</span>    try (Admin admin = connection.getAdmin()) {<a name="line.182"></a>
-<span class="sourceLineNo">183</span>      verifyNamespaceExists(admin);<a name="line.183"></a>
-<span class="sourceLineNo">184</span><a name="line.184"></a>
-<span class="sourceLineNo">185</span>      if (!admin.tableExists(tableName)) {<a name="line.185"></a>
-<span class="sourceLineNo">186</span>        HTableDescriptor backupHTD =<a name="line.186"></a>
-<span class="sourceLineNo">187</span>            BackupSystemTable.getSystemTableDescriptor(connection.getConfiguration());<a name="line.187"></a>
-<span class="sourceLineNo">188</span>        admin.createTable(backupHTD);<a name="line.188"></a>
-<span class="sourceLineNo">189</span>      }<a name="line.189"></a>
-<span class="sourceLineNo">190</span>      waitForSystemTable(admin);<a name="line.190"></a>
-<span class="sourceLineNo">191</span>    }<a name="line.191"></a>
-<span class="sourceLineNo">192</span>  }<a name="line.192"></a>
-<span class="sourceLineNo">193</span><a name="line.193"></a>
-<span class="sourceLineNo">194</span>  private void verifyNamespaceExists(Admin admin) throws IOException {<a name="line.194"></a>
-<span class="sourceLineNo">195</span>    String namespaceName = tableName.getNamespaceAsString();<a name="line.195"></a>
-<span class="sourceLineNo">196</span>    NamespaceDescriptor ns = NamespaceDescriptor.create(namespaceName).build();<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    NamespaceDescriptor[] list = admin.listNamespaceDescriptors();<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    boolean exists = false;<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    for (NamespaceDescriptor nsd : list) {<a name="line.199"></a>
-<span class="sourceLineNo">200</span>      if (nsd.getName().equals(ns.getName())) {<a name="line.200"></a>
-<span class="sourceLineNo">201</span>        exists = true;<a name="line.201"></a>
-<span class="sourceLineNo">202</span>        break;<a name="line.202"></a>
-<span class="sourceLineNo">203</span>      }<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    }<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    if (!exists) {<a name="line.205"></a>
-<span class="sourceLineNo">206</span>      admin.createNamespace(ns);<a name="line.206"></a>
-<span class="sourceLineNo">207</span>    }<a name="line.207"></a>
-<span class="sourceLineNo">208</span>  }<a name="line.208"></a>
-<span class="sourceLineNo">209</span><a name="line.209"></a>
-<span class="sourceLineNo">210</span>  private void waitForSystemTable(Admin admin) throws IOException {<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    long TIMEOUT = 60000;<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    long startTime = EnvironmentEdgeManager.currentTime();<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    while (!admin.tableExists(tableName) || !admin.isTableAvailable(tableName)) {<a name="line.213"></a>
-<span class="sourceLineNo">214</span>      try {<a name="line.214"></a>
-<span class="sourceLineNo">215</span>        Thread.sleep(100);<a name="line.215"></a>
-<span class="sourceLineNo">216</span>      } catch (InterruptedException e) {<a name="line.216"></a>
-<span class="sourceLineNo">217</span>      }<a name="line.217"></a>
-<span class="sourceLineNo">218</span>      if (EnvironmentEdgeManager.currentTime() - startTime &gt; TIMEOUT) {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>        throw new IOException("Failed to create backup system table after " + TIMEOUT + "ms");<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>    LOG.debug("Backup table exists and available");<a name="line.222"></a>
-<span class="sourceLineNo">223</span><a name="line.223"></a>
-<span class="sourceLineNo">224</span>  }<a name="line.224"></a>
-<span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>  @Override<a name="line.226"></a>
-<span class="sourceLineNo">227</span>  public void close() {<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    // do nothing<a name="line.228"></a>
-<span class="sourceLineNo">229</span>  }<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span>  /**<a name="line.231"></a>
-<span class="sourceLineNo">232</span>   * Updates status (state) of a backup session in backup system table table<a name="line.232"></a>
-<span class="sourceLineNo">233</span>   * @param info backup info<a name="line.233"></a>
-<span class="sourceLineNo">234</span>   * @throws IOException exception<a name="line.234"></a>
-<span class="sourceLineNo">235</span>   */<a name="line.235"></a>
-<span class="sourceLineNo">236</span>  public void updateBackupInfo(BackupInfo info) throws IOException {<a name="line.236"></a>
-<span class="sourceLineNo">237</span><a name="line.237"></a>
-<span class="sourceLineNo">238</span>    if (LOG.isTraceEnabled()) {<a name="line.238"></a>
-<span class="sourceLineNo">239</span>      LOG.trace("update backup status in backup system table for: " + info.getBackupId()<a name="line.239"></a>
-<span class="sourceLineNo">240</span>          + " set status=" + info.getState());<a name="line.240"></a>
-<span class="sourceLineNo">241</span>    }<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    try (Table table = connection.getTable(tableName)) {<a name="line.242"></a>
-<span class="sourceLineNo">243</span>      Put put = createPutForBackupInfo(info);<a name="line.243"></a>
-<span class="sourceLineNo">244</span>      table.put(put);<a name="line.244"></a>
-<span class="sourceLineNo">245</span>    }<a name="line.245"></a>
-<span class="sourceLineNo">246</span>  }<a name="line.246"></a>
-<span class="sourceLineNo">247</span><a name="line.247"></a>
-<span class="sourceLineNo">248</span>  /*<a name="line.248"></a>
-<span class="sourceLineNo">249</span>   * @param backupId the backup Id<a name="line.249"></a>
-<span class="sourceLineNo">250</span>   * @return Map of rows to path of bulk loaded hfile<a name="line.250"></a>
-<span class="sourceLineNo">251</span>   */<a name="line.251"></a>
-<span class="sourceLineNo">252</span>  Map&lt;byte[], String&gt; readBulkLoadedFiles(String backupId) throws IOException {<a name="line.252"></a>
-<span class="sourceLineNo">253</span>    Scan scan = BackupSystemTable.createScanForBulkLoadedFiles(backupId);<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    try (Table table = connection.getTable(tableName);<a name="line.254"></a>
-<span class="sourceLineNo">255</span>        ResultScanner scanner = table.getScanner(scan)) {<a name="line.255"></a>
-<span class="sourceLineNo">256</span>      Result res = null;<a name="line.256"></a>
-<span class="sourceLineNo">257</span>      Map&lt;byte[], String&gt; map = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      while ((res = scanner.next()) != null) {<a name="line.258"></a>
-<span class="sourceLineNo">259</span>        res.advance();<a name="line.259"></a>
-<span class="sourceLineNo">260</span>        byte[] row = CellUtil.cloneRow(res.listCells().get(0));<a name="line.260"></a>
-<span class="sourceLineNo">261</span>        for (Cell cell : res.listCells()) {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>          if (CellUtil.compareQualifiers(cell, BackupSystemTable.PATH_COL, 0,<a name="line.262"></a>
-<span class="sourceLineNo">263</span>            BackupSystemTable.PATH_COL.length) == 0) {<a name="line.263"></a>
-<span class="sourceLineNo">264</span>            map.put(row, Bytes.toString(CellUtil.cloneValue(cell)));<a name="line.264"></a>
-<span class="sourceLineNo">265</span>          }<a name="line.265"></a>
-<span class="sourceLineNo">266</span>        }<a name="line.266"></a>
-<span class="sourceLineNo">267</span>      }<a name="line.267"></a>
-<span class="sourceLineNo">268</span>      return map;<a name="line.268"></a>
-<span class="sourceLineNo">269</span>    }<a name="line.269"></a>
-<span class="sourceLineNo">270</span>  }<a name="line.270"></a>
-<span class="sourceLineNo">271</span><a name="line.271"></a>
-<span class="sourceLineNo">272</span>  /*<a name="line.272"></a>
-<span class="sourceLineNo">273</span>   * Used during restore<a name="line.273"></a>
-<span class="sourceLineNo">274</span>   * @param backupId the backup Id<a name="line.274"></a>
-<span class="sourceLineNo">275</span>   * @param sTableList List of tables<a name="line.275"></a>
-<span class="sourceLineNo">276</span>   * @return array of Map of family to List of Paths<a name="line.276"></a>
+<span class="sourceLineNo">181</span>  private final static String WALS_PREFIX = "wals:";<a name="line.181"></a>
+<span class="sourceLineNo">182</span>  private final static String SET_KEY_PREFIX = "backupset:";<a name="line.182"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
+<span class="sourceLineNo">184</span>  // separator between BULK_LOAD_PREFIX and ordinals<a name="line.184"></a>
+<span class="sourceLineNo">185</span>  protected final static String BLK_LD_DELIM = ":";<a name="line.185"></a>
+<span class="sourceLineNo">186</span>  private final static byte[] EMPTY_VALUE = new byte[] {};<a name="line.186"></a>
+<span class="sourceLineNo">187</span><a name="line.187"></a>
+<span class="sourceLineNo">188</span>  // Safe delimiter in a string<a name="line.188"></a>
+<span class="sourceLineNo">189</span>  private final static String NULL = "\u0000";<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>  public BackupSystemTable(Connection conn) throws IOException {<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    this.connection = conn;<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    Configuration conf = this.connection.getConfiguration();<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    tableName = BackupSystemTable.getTableName(conf);<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    bulkLoadTableName = BackupSystemTable.getTableNameForBulkLoadedData(conf);<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    checkSystemTable();<a name="line.196"></a>
+<span class="sourceLineNo">197</span>  }<a name="line.197"></a>
+<span class="sourceLineNo">198</span><a name="line.198"></a>
+<span class="sourceLineNo">199</span>  private void checkSystemTable() throws IOException {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    try (Admin admin = connection.getAdmin()) {<a name="line.200"></a>
+<span class="sourceLineNo">201</span>      verifyNamespaceExists(admin);<a name="line.201"></a>
+<span class="sourceLineNo">202</span>      Configuration conf = connection.getConfiguration();<a name="line.202"></a>
+<span class="sourceLineNo">203</span>      if (!admin.tableExists(tableName)) {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>        TableDescriptor backupHTD =<a name="line.204"></a>
+<span class="sourceLineNo">205</span>            BackupSystemTable.getSystemTableDescriptor(conf);<a name="line.205"></a>
+<span class="sourceLineNo">206</span>        admin.createTable(backupHTD);<a name="line.206"></a>
+<span class="sourceLineNo">207</span>      }<a name="line.207"></a>
+<span class="sourceLineNo">208</span>      if (!admin.tableExists(bulkLoadTableName)) {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>        TableDescriptor blHTD =<a name="line.209"></a>
+<span class="sourceLineNo">210</span>            BackupSystemTable.getSystemTableForBulkLoadedDataDescriptor(conf);<a name="line.210"></a>
+<span class="sourceLineNo">211</span>        admin.createTable(blHTD);<a name="line.211"></a>
+<span class="sourceLineNo">212</span>      }<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      waitForSystemTable(admin, tableName);<a name="line.213"></a>
+<span class="sourceLineNo">214</span>      waitForSystemTable(admin, bulkLoadTableName);<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>  }<a name="line.217"></a>
+<span class="sourceLineNo">218</span><a name="line.218"></a>
+<span class="sourceLineNo">219</span>  private void verifyNamespaceExists(Admin admin) throws IOException {<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    String namespaceName = tableName.getNamespaceAsString();<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    NamespaceDescriptor ns = NamespaceDescriptor.create(namespaceName).build();<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    NamespaceDescriptor[] list = admin.listNamespaceDescriptors();<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    boolean exists = false;<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    for (NamespaceDescriptor nsd : list) {<a name="line.224"></a>
+<span class="sourceLineNo">225</span>      if (nsd.getName().equals(ns.getName())) {<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        exists = true;<a name="line.226"></a>
+<span class="sourceLineNo">227</span>        break;<a name="line.227"></a>
+<span class="sourceLineNo">228</span>      }<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    }<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    if (!exists) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>      admin.createNamespace(ns);<a name="line.231"></a>
+<span class="sourceLineNo">232</span>    }<a name="line.232"></a>
+<span class="sourceLineNo">233</span>  }<a name="line.233"></a>
+<span class="sourceLineNo">234</span><a name="line.234"></a>
+<span class="sourceLineNo">235</span>  private void waitForSystemTable(Admin admin, TableName tableName) throws IOException {<a name="line.235"></a>
+<span class="sourceLineNo">236</span>    long TIMEOUT = 60000;<a name="line.236"></a>
+<span class="sourceLineNo">237</span>    long startTime = EnvironmentEdgeManager.currentTime();<a name="line.237"></a>
+<span class="sourceLineNo">238</span>    while (!admin.tableExists(tableName) || !admin.isTableAvailable(tableName)) {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>      try {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>        Thread.sleep(100);<a name="line.240"></a>
+<span class="sourceLineNo">241</span>      } catch (InterruptedException e) {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      }<a name="line.242"></a>
+<span class="sourceLineNo">243</span>      if (EnvironmentEdgeManager.currentTime() - startTime &gt; TIMEOUT) {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>        throw new IOException("Failed to create backup system table "+<a name="line.244"></a>
+<span class="sourceLineNo">245</span>      tableName +" after " + TIMEOUT + "ms");<a name="line.245"></a>
+<span class="sourceLineNo">246</span>      }<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    }<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    LOG.debug("Backup table "+tableName+" exists and available");<a name="line.248"></a>
+<span class="sourceLineNo">249</span><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 void close() {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>    // do nothing<a name="line.254"></a>
+<span class="sourceLineNo">255</span>  }<a name="line.255"></a>
+<span class="sourceLineNo">256</span><a name="line.256"></a>
+<span class="sourceLineNo">257</span>  /**<a name="line.257"></a>
+<span class="sourceLineNo">258</span>   * Updates status (state) of a backup session in backup system table table<a name="line.258"></a>
+<span class="sourceLineNo">259</span>   * @param info backup info<a name="line.259"></a>
+<span class="sourceLineNo">260</span>   * @throws IOException exception<a name="line.260"></a>
+<span class="sourceLineNo">261</span>   */<a name="line.261"></a>
+<span class="sourceLineNo">262</span>  public void updateBackupInfo(BackupInfo info) throws IOException {<a name="line.262"></a>
+<span class="sourceLineNo">263</span><a name="line.263"></a>
+<span class="sourceLineNo">264</span>    if (LOG.isTraceEnabled()) {<a name="line.264"></a>
+<span class="sourceLineNo">265</span>      LOG.trace("update backup status in backup system table for: " + info.getBackupId()<a name="line.265"></a>
+<span class="sourceLineNo">266</span>          + " set status=" + info.getState());<a name="line.266"></a>
+<span class="sourceLineNo">267</span>    }<a name="line.267"></a>
+<span class="sourceLineNo">268</span>    try (Table table = connection.getTable(tableName)) {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>      Put put = createPutForBackupInfo(info);<a name="line.269"></a>
+<span class="sourceLineNo">270</span>      table.put(put);<a name="line.270"></a>
+<span class="sourceLineNo">271</span>    }<a name="line.271"></a>
+<span class="sourceLineNo">272</span>  }<a name="line.272"></a>
+<span class="sourceLineNo">273</span><a name="line.273"></a>
+<span class="sourceLineNo">274</span>  /*<a name="line.274"></a>
+<span class="sourceLineNo">275</span>   * @param backupId the backup Id<a name="line.275"></a>
+<span class="sourceLineNo">276</span>   * @return Map of rows to path of bulk loaded hfile<a name="line.276"></a>
 <span class="sourceLineNo">277</span>   */<a name="line.277"></a>
-<span class="sourceLineNo">278</span>  public Map&lt;byte[], List&lt;Path&gt;&gt;[] readBulkLoadedFiles(String backupId, List&lt;TableName&gt; sTableList)<a name="line.278"></a>
-<span class="sourceLineNo">279</span>      throws IOException {<a name="line.279"></a>
-<span class="sourceLineNo">280</span>    Scan scan = BackupSystemTable.createScanForBulkLoadedFiles(backupId);<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    Map&lt;byte[], List&lt;Path&gt;&gt;[] mapForSrc = new Map[sTableList == null ? 1 : sTableList.size()];<a name="line.281"></a>
-<span class="sourceLineNo">282</span>    try (Table table = connection.getTable(tableName);<a name="line.282"></a>
-<span class="sourceLineNo">283</span>        ResultScanner scanner = table.getScanner(scan)) {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>      Result res = null;<a name="line.284"></a>
-<span class="sourceLineNo">285</span>      while ((res = scanner.next()) != null) {<a name="line.285"></a>
-<span class="sourceLineNo">286</span>        res.advance();<a name="line.286"></a>
-<span class="sourceLineNo">287</span>        TableName tbl = null;<a name="line.287"></a>
-<span class="sourceLineNo">288</span>        byte[] fam = null;<a name="line.288"></a>
-<span class="sourceLineNo">289</span>        String path = null;<a name="line.289"></a>
-<span class="sourceLineNo">290</span>        for (Cell cell : res.listCells()) {<a name="line.290"></a>
-<span class="sourceLineNo">291</span>          if (CellUtil.compareQualifiers(cell, BackupSystemTable.TBL_COL, 0,<a name="line.291"></a>
-<span class="sourceLineNo">292</span>            BackupSystemTable.TBL_COL.length) == 0) {<a name="line.292"></a>
-<span class="sourceLineNo">293</span>            tbl = TableName.valueOf(CellUtil.cloneValue(cell));<a name="line.293"></a>
-<span class="sourceLineNo">294</span>          } else if (CellUtil.compareQualifiers(cell, BackupSystemTable.FAM_COL, 0,<a name="line.294"></a>
-<span class="sourceLineNo">295</span>            BackupSystemTable.FAM_COL.length) == 0) {<a name="line.295"></a>
-<span class="sourceLineNo">296</span>            fam = CellUtil.cloneValue(cell);<a name="line.296"></a>
-<span class="sourceLineNo">297</span>          } else if (CellUtil.compareQualifiers(cell, BackupSystemTable.PATH_COL, 0,<a name="line.297"></a>
-<span class="sourceLineNo">298</span>            BackupSystemTable.PATH_COL.length) == 0) {<a name="line.298"></a>
-<span class="sourceLineNo">299</span>            path = Bytes.toString(CellUtil.cloneValue(cell));<a name="line.299"></a>
-<span class="sourceLineNo">300</span>          }<a name="line.300"></a>
-<span class="sourceLineNo">301</span>        }<a name="line.301"></a>
-<span class="sourceLineNo">302</span>        int srcIdx = IncrementalTableBackupClient.getIndex(tbl, sTableList);<a name="line.302"></a>
-<span class="sourceLineNo">303</span>        if (srcIdx == -1) {<a name="line.303"></a>
-<span class="sourceLineNo">304</span>          // the table is not among the query<a name="line.304"></a>
-<span class="sourceLineNo">305</span>          continue;<a name="line.305"></a>
-<span class="sourceLineNo">306</span>        }<a name="line.306"></a>
-<span class="sourceLineNo">307</span>        if (mapForSrc[srcIdx] == null) {<a name="line.307"></a>
-<span class="sourceLineNo">308</span>          mapForSrc[srcIdx] = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.308"></a>
-<span class="sourceLineNo">309</span>        }<a name="line.309"></a>
-<span class="sourceLineNo">310</span>        List&lt;Path&gt; files;<a name="line.310"></a>
-<span class="sourceLineNo">311</span>        if (!mapForSrc[srcIdx].containsKey(fam)) {<a name="line.311"></a>
-<span class="sourceLineNo">312</span>          files = new ArrayList&lt;Path&gt;();<a name="line.312"></a>
-<span class="sourceLineNo">313</span>          mapForSrc[srcIdx].put(fam, files);<a name="line.313"></a>
-<span class="sourceLineNo">314</span>        } else {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>          files = mapForSrc[srcIdx].get(fam);<a name="line.315"></a>
-<span class="sourceLineNo">316</span>        }<a name="line.316"></a>
-<span class="sourceLineNo">317</span>        files.add(new Path(path));<a name="line.317"></a>
-<span class="sourceLineNo">318</span>        if (LOG.isDebugEnabled()) {<a name="line.318"></a>
-<span class="sourceLineNo">319</span>          LOG.debug("found bulk loaded file : " + tbl + " " + Bytes.toString(fam) + " " + path);<a name="line.319"></a>
-<span class="sourceLineNo">320</span>        }<a name="line.320"></a>
-<span class="sourceLineNo">321</span>      }<a name="line.321"></a>
-<span class="sourceLineNo">322</span><a name="line.322"></a>
-<span class="sourceLineNo">323</span>      return mapForSrc;<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    }<a name="line.324"></a>
-<span class="sourceLineNo">325</span>  }<a name="line.325"></a>
-<span class="sourceLineNo">326</span><a name="line.326"></a>
-<span class="sourceLineNo">327</span>  /*<a name="line.327"></a>
-<span class="sourceLineNo">328</span>   * @param map Map of row keys to path of bulk loaded hfile<a name="line.328"></a>
-<span class="sourceLineNo">329</span>   */<a name="line.329"></a>
-<span class="sourceLineNo">330</span>  void deleteBulkLoadedFiles(Map&lt;byte[], String&gt; map) throws IOException {<a name="line.330"></a>
-<span class="sourceLineNo">331</span>    try (Table table = connection.getTable(tableName)) {<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      List&lt;Delete&gt; dels = new ArrayList&lt;&gt;();<a name="line.332"></a>
-<span class="sourceLineNo">333</span>      for (byte[] row : map.keySet()) {<a name="line.333"></a>
-<span class="sourceLineNo">334</span>        dels.add(new Delete(row).addFamily(BackupSystemTable.META_FAMILY));<a name="line.334"></a>
-<span class="sourceLineNo">335</span>      }<a name="line.335"></a>
-<span class="sourceLineNo">336</span>      table.delete(dels);<a name="line.336"></a>
-<span class="sourceLineNo">337</span>    }<a name="line.337"></a>
-<span class="sourceLineNo">338</span>  }<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span>  /**<a name="line.340"></a>
-<span class="sourceLineNo">341</span>   * Deletes backup status from backup system table table<a name="line.341"></a>
-<span class="sourceLineNo">342</span>   * @param backupId backup id<a name="line.342"></a>
-<span class="sourceLineNo">343</span>   * @throws IOException exception<a name="line.343"></a>
-<span class="sourceLineNo">344</span>   */<a name="line.344"></a>
-<span class="sourceLineNo">345</span><a name="line.345"></a>
-<span class="sourceLineNo">346</span>  public void deleteBackupInfo(String backupId) throws IOException {<a name="line.346"></a>
-<span class="sourceLineNo">347</span><a name="line.347"></a>
-<span class="sourceLineNo">348</span>    if (LOG.isTraceEnabled()) {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>      LOG.trace("delete backup status in backup system table for " + backupId);<a name="line.349"></a>
+<span class="sourceLineNo">278</span>  Map&lt;byte[], String&gt; readBulkLoadedFiles(String backupId) throws IOException {<a name="line.278"></a>
+<span class="sourceLineNo">279</span>    Scan scan = BackupSystemTable.createScanForBulkLoadedFiles(backupId);<a name="line.279"></a>
+<span class="sourceLineNo">280</span>    try (Table table = connection.getTable(bulkLoadTableName);<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        ResultScanner scanner = table.getScanner(scan)) {<a name="line.281"></a>
+<span class="sourceLineNo">282</span>      Result res = null;<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      Map&lt;byte[], String&gt; map = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      while ((res = scanner.next()) != null) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>        res.advance();<a name="line.285"></a>
+<span class="sourceLineNo">286</span>        byte[] row = CellUtil.cloneRow(res.listCells().get(0));<a name="line.286"></a>
+<span class="sourceLineNo">287</span>        for (Cell cell : res.listCells()) {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>          if (CellUtil.compareQualifiers(cell, BackupSystemTable.PATH_COL, 0,<a name="line.288"></a>
+<span class="sourceLineNo">289</span>            BackupSystemTable.PATH_COL.length) == 0) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>            map.put(row, Bytes.toString(CellUtil.cloneValue(cell)));<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>      return map;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    }<a name="line.295"></a>
+<span class="sourceLineNo">296</span>  }<a name="line.296"></a>
+<span class="sourceLineNo">297</span><a name="line.297"></a>
+<span class="sourceLineNo">298</span>  /*<a name="line.298"></a>
+<span class="sourceLineNo">299</span>   * Used during restore<a name="line.299"></a>
+<span class="sourceLineNo">300</span>   * @param backupId the backup Id<a name="line.300"></a>
+<span class="sourceLineNo">301</span>   * @param sTableList List of tables<a name="line.301"></a>
+<span class="sourceLineNo">302</span>   * @return array of Map of family to List of Paths<a name="line.302"></a>
+<span class="sourceLineNo">303</span>   */<a name="line.303"></a>
+<span class="sourceLineNo">304</span>  public Map&lt;byte[], List&lt;Path&gt;&gt;[] readBulkLoadedFiles(String backupId, List&lt;TableName&gt; sTableList)<a name="line.304"></a>
+<span class="sourceLineNo">305</span>      throws IOException {<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    Scan scan = BackupSystemTable.createScanForBulkLoadedFiles(backupId);<a name="line.306"></a>
+<span class="sourceLineNo">307</span>    Map&lt;byte[], List&lt;Path&gt;&gt;[] mapForSrc = new Map[sTableList == null ? 1 : sTableList.size()];<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    try (Table table = connection.getTable(bulkLoadTableName);<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        ResultScanner scanner = table.getScanner(scan)) {<a name="line.309"></a>
+<span class="sourceLineNo">310</span>      Result res = null;<a name="line.310"></a>
+<span class="sourceLineNo">311</span>      while ((res = scanner.next()) != null) {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>        res.advance();<a name="line.312"></a>
+<span class="sourceLineNo">313</span>        TableName tbl = null;<a name="line.313"></a>
+<span class="sourceLineNo">314</span>        byte[] fam = null;<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        String path = null;<a name="line.315"></a>
+<span class="sourceLineNo">316</span>        for (Cell cell : res.listCells()) {<a name="line.316"></a>
+<span class="sourceLineNo">317</span>          if (CellUtil.compareQualifiers(cell, BackupSystemTable.TBL_COL, 0,<a name="line.317"></a>
+<span class="sourceLineNo">318</span>            BackupSystemTable.TBL_COL.length) == 0) {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>            tbl = TableName.valueOf(CellUtil.cloneValue(cell));<a name="line.319"></a>
+<span class="sourceLineNo">320</span>          } else if (CellUtil.compareQualifiers(cell, BackupSystemTable.FAM_COL, 0,<a name="line.320"></a>
+<span class="sourceLineNo">321</span>            BackupSystemTable.FAM_COL.length) == 0) {<a name="line.321"></a>
+<span class="sourceLineNo">322</span>            fam = CellUtil.cloneValue(cell);<a name="line.322"></a>
+<span class="sourceLineNo">323</span>          } else if (CellUtil.compareQualifiers(cell, BackupSystemTable.PATH_COL, 0,<a name="line.323"></a>
+<span class="sourceLineNo">324</span>            BackupSystemTable.PATH_COL.length) == 0) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>            path = Bytes.toString(CellUtil.cloneValue(cell));<a name="line.325"></a>
+<span class="sourceLineNo">326</span>          }<a name="line.326"></a>
+<span class="sourceLineNo">327</span>        }<a name="line.327"></a>
+<span class="sourceLineNo">328</span>        int srcIdx = IncrementalTableBackupClient.getIndex(tbl, sTableList);<a name="line.328"></a>
+<span class="sourceLineNo">329</span>        if (srcIdx == -1) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>          // the table is not among the query<a name="line.330"></a>
+<span class="sourceLineNo">331</span>          continue;<a name="line.331"></a>
+<span class="sourceLineNo">332</span>        }<a name="line.332"></a>
+<span class="sourceLineNo">333</span>        if (mapForSrc[srcIdx] == null) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span>          mapForSrc[srcIdx] = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        }<a name="line.335"></a>
+<span class="sourceLineNo">336</span>        List&lt;Path&gt; files;<a name="line.336"></a>
+<span class="sourceLineNo">337</span>        if (!mapForSrc[srcIdx].containsKey(fam)) {<a name="line.337"></a>
+<span class="sourceLineNo">338</span>          files = new ArrayList&lt;Path&gt;();<a name="line.338"></a>
+<span class="sourceLineNo">339</span>          mapForSrc[srcIdx].put(fam, files);<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        } else {<a name="line.340"></a>
+<span class="sourceLineNo">341</span>          files = mapForSrc[srcIdx].get(fam);<a name="line.341"></a>
+<span class="sourceLineNo">342</span>        }<a name="line.342"></a>
+<span class="sourceLineNo">343</span>        files.add(new Path(path));<a name="line.343"></a>
+<span class="sourceLineNo">344</span>        if (LOG.isDebugEnabled()) {<a name="line.344"></a>
+<span class="sourceLineNo">345</span>          LOG.debug("found bulk loaded file : " + tbl + " " + Bytes.toString(fam) + " " + path);<a name="line.345"></a>
+<span class="sourceLineNo">346</span>        }<a name="line.346"></a>
+<span class="sourceLineNo">347</span>      }<a name="line.347"></a>
+<span class="sourceLineNo">348</span><a name="line.348"></a>
+<span class="sourceLineNo">349</span>      return mapForSrc;<a name="line.349"></a>
 <span class="sourceLineNo">350</span>    }<a name="line.350"></a>
-<span class="sourceLineNo">351</span>    try (Table table = connection.getTable(tableName)) {<a name="line.351"></a>
-<span class="sourceLineNo">352</span>      Delete del = createDeleteForBackupInfo(backupId);<a name="line.352"></a>
-<span class="sourceLineNo">353</span>      table.delete(del);<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    }<a name="line.354"></a>
-<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
-<span class="sourceLineNo">356</span><a name="line.356"></a>
-<span class="sourceLineNo">357</span>  /*<a name="line.357"></a>
-<span class="sourceLineNo">358</span>   * For postBulkLoadHFile() hook.<a name="line.358"></a>
-<span class="sourceLineNo">359</span>   * @param tabName table name<a name="line.359"></a>
-<span class="sourceLineNo">360</span>   * @param region the region receiving hfile<a name="line.360"></a>
-<span class="sourceLineNo">361</span>   * @param finalPaths family and associated hfiles<a name="line.361"></a>
-<span class="sourceLineNo">362</span>   */<a name="line.362"></a>
-<span class="sourceLineNo">363</span>  public void writePathsPostBulkLoad(TableName tabName, byte[] region,<a name="line.363"></a>
-<span class="sourceLineNo">364</span>      Map&lt;byte[], List&lt;Path&gt;&gt; finalPaths) throws IOException {<a name="line.364"></a>
-<span class="sourceLineNo">365</span>    if (LOG.isDebugEnabled()) {<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      LOG.debug("write bulk load descriptor to backup " + tabName + " with " + finalPaths.size()<a name="line.366"></a>
-<span class="sourceLineNo">367</span>          + " entries");<a name="line.367"></a>
+<span class="sourceLineNo">351</span>  }<a name="line.351"></a>
+<span class="sourceLineNo">352</span><a name="line.352"></a>
+<span class="sourceLineNo">353</span><a name="line.353"></a>
+<span class="sourceLineNo">354</span>  /**<a name="line.354"></a>
+<span class="sourceLineNo">355</span>   * Deletes backup status from backup system table table<a name="line.355"></a>
+<span class="sourceLineNo">356</span>   * @param backupId backup id<a name="line.356"></a>
+<span class="sourceLineNo">357</span>   * @throws IOException exception<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>  public void deleteBackupInfo(String backupId) throws IOException {<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span>    if (LOG.isTraceEnabled()) {<a name="line.362"></a>
+<span class="sourceLineNo">363</span>      LOG.trace("delete backup status in backup system table for " + backupId);<a name="line.363"></a>
+<span class="sourceLineNo">364</span>    }<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    try (Table table = connection.getTable(tableName)) {<a name="line.365"></a>
+<span class="sourceLineNo">366</span>      Delete del = createDeleteForBackupInfo(backupId);<a name="line.366"></a>
+<span class="sourceLineNo">367</span>      table.delete(del);<a name="line.367"></a>
 <span class="sourceLineNo">368</span>    }<a name="line.368"></a>
-<span class="sourceLineNo">369</span>    try (Table table = connection.getTable(tableName)) {<a name="line.369"></a>
-<span class="sourceLineNo">370</span>      List&lt;Put&gt; puts = BackupSystemTable.createPutForCommittedBulkload(tabName, region, finalPaths);<a name="line.370"></a>
-<span class="sourceLineNo">371</span>      table.put(puts);<a name="line.371"></a>
-<span class="sourceLineNo">372</span>      LOG.debug("written " + puts.size() + " rows for bulk load of " + tabName);<a name="line.372"></a>
-<span class="sourceLineNo">373</span>    }<a name="line.373"></a>
-<span class="sourceLineNo">374</span>  }<a name="line.374"></a>
-<span class="sourceLineNo">375</span><a name="line.375"></a>
-<span class="sourceLineNo">376</span>  /*<a name="line.376"></a>
-<span class="sourceLineNo">377</span>   * For preCommitStoreFile() hook<a name="line.377"></a>
-<span class="sourceLineNo">378</span>   * @param tabName table name<a name="line.378"></a>
-<span class="sourceLineNo">379</span>   * @param region the region receiving hfile<a name="line.379"></a>
-<span class="sourceLineNo">380</span>   * @param family column family<a name="line.380"></a>
-<span class="sourceLineNo">381</span>   * @param pairs list of paths for hfiles<a name="line.381"></a>
-<span class="sourceLineNo">382</span>   */<a name="line.382"></a>
-<span class="sourceLineNo">383</span>  public void writeFilesForBulkLoadPreCommit(TableName tabName, byte[] region, final byte[] family,<a name="line.383"></a>
-<span class="sourceLineNo">384</span>      final List&lt;Pair&lt;Path, Path&gt;&gt; pairs) throws IOException {<a name="line.384"></a>
-<span class="sourceLineNo">385</span>    if (LOG.isDebugEnabled()) {<a name="line.385"></a>
-<span class="sourceLineNo">386</span>      LOG.debug("write bulk load descriptor to backup " + tabName + " with " + pairs.size()<a name="line.386"></a>
-<span class="sourceLineNo">387</span>          + " entries");<a name="line.387"></a>
-<span class="sourceLineNo">388</span>    }<a name="line.388"></a>
-<span class="sourceLineNo">389</span>    try (Table table = connection.getTable(tableName)) {<a name="line.389"></a>
-<span class="sourceLineNo">390</span>      List&lt;Put&gt; puts =<a name="line.390"></a>
-<span class="sourceLineNo">391</span>          BackupSystemTable.createPutForPreparedBulkload(tabName, region, family, pairs);<a name="line.391"></a>
-<span class="sourceLineNo">392</span>      table.put(puts);<a name="line.392"></a>
-<span class="sourceLineNo">393</span>      LOG.debug("written " + puts.size() + " rows for bulk load of " + tabName);<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    }<a name="line.394"></a>
-<span class="sourceLineNo">395</span>  }<a name="line.395"></a>
-<span class="sourceLineNo">396</span><a name="line.396"></a>
-<span class="sourceLineNo">397</span>  /*<a name="line.397"></a>
-<span class="sourceLineNo">398</span>   * Removes rows recording bulk loaded hfiles from backup table<a name="line.398"></a>
-<span class="sourceLineNo">399</span>   * @param lst list of table names<a name="line.399"></a>
-<span class="sourceLineNo">400</span>   * @param rows the rows to be deleted<a name="line.400"></a>
-<span class="sourceLineNo">401</span>   */<a name="line.401"></a>
-<span class="sourceLineNo">402</span>  public void removeBulkLoadedRows(List&lt;TableName&gt; lst, List&lt;byte[]&gt; rows) throws IOException {<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    try (Table table = connection.getTable(tableName)) {<a name="line.403"></a>
-<span class="sourceLineNo">404</span>      List&lt;Delete&gt; lstDels = new ArrayList&lt;&gt;();<a name="line.404"></a>
-<span class="sourceLineNo">405</span>      for (byte[] row : rows) {<a name="line.405"></a>
-<span class="sourceLineNo">406</span>        Delete del = new Delete(row);<a name="line.406"></a>
-<span class="sourceLineNo">407</span>        lstDels.add(del);<a name="line.407"></a>
-<span class="sourceLineNo">408</span>        LOG.debug("orig deleting the row: " + Bytes.toString(row));<a name="line.408"></a>
-<span class="sourceLineNo">409</span>      }<a name="line.409"></a>
-<span class="sourceLineNo">410</span>      table.delete(lstDels);<a name="line.410"></a>
-<span class="sourceLineNo">411</span>      LOG.debug("deleted " + rows.size() + " original bulkload rows for " + lst.size() + " tables");<a name="line.411"></a>
-<span class="sourceLineNo">412</span>    }<a name="line.412"></a>
-<span class="sourceLineNo">413</span>  }<a name="line.413"></a>
-<span class="sourceLineNo">414</span><a name="line.414"></a>
-<span class="sourceLineNo">415</span>  /*<a name="line.415"></a>
-<span class="sourceLineNo">416</span>   * Reads the rows from backup table recording bulk loaded hfiles<a name="line.416"></a>
-<span class="sourceLineNo">417</span>   * @param tableList list of table names<a name="line.417"></a>
-<span class="sourceLineNo">418</span>   * @return The keys of the Map are table, region and column family. Value of the map reflects<a name="line.418"></a>
-<span class="sourceLineNo">419</span>   * whether the hfile was recorded by preCommitStoreFile hook (true)<a name="line.419"></a>
-<span class="sourceLineNo">420</span>   */<a name="line.420"></a>
-<span class="sourceLineNo">421</span>  public Pair&lt;Map&lt;TableName, Map&lt;String, Map&lt;String, List&lt;Pair&lt;String, Boolean&gt;&gt;&gt;&gt;&gt;, List&lt;byte[]&gt;&gt;<a name="line.421"></a>
-<span class="sourceLineNo">422</span>      readBulkloadRows(List&lt;TableName&gt; tableList) throws IOException {<a name="line.422"></a>
-<span class="sourceLineNo">423</span>    Map&lt;TableName, Map&lt;String, Map&lt;String, List&lt;Pair&lt;String, Boolean&gt;&gt;&gt;&gt;&gt; map = new HashMap&lt;&gt;();<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    List&lt;byte[]&gt; rows = new ArrayList&lt;&gt;();<a name="line.424"></a>
-<span class="sourceLineNo">425</span>    for (TableName tTable : tableList) {<a name="line.425"></a>
-<span class="sourceLineNo">426</span>      Scan scan = BackupSystemTable.createScanForOrigBulkLoadedFiles(tTable);<a name="line.426"></a>
-<span class="sourceLineNo">427</span>      Map&lt;String, Map&lt;String, List&lt;Pair&lt;String, Boolean&gt;&gt;&gt;&gt; tblMap = map.get(tTable);<a name="line.427"></a>
-<span class="sourceLineNo">428</span>      try (Table table = connection.getTable(tableName);<a name="line.428"></a>
-<span class="sourceLineNo">429</span>          ResultScanner scanner = table.getScanner(scan)) {<a name="line.429"></a>
-<span class="sourceLineNo">430</span>        Result res = null;<a name="line.430"></a>
-<span class="sourceLineNo">431</span>        while ((res = scanner.next()) != null) {<a name="line.431"></a>
-<span class="sourceLineNo">432</span>          res.advance();<a name="line.432"></a>
-<span class="sourceLineNo">433</span>          String fam = null;<a name="line.433"></a>
-<span class="sourceLineNo">434</span>          String path = null;<a name="line.434"></a>
-<span class="sourceLineNo">435</span>          boolean raw = false;<a name="line.435"></a>
-<span class="sourceLineNo">436</span>          byte[] row = null;<a name="line.436"></a>
-<span class="sourceLineNo">437</span>          String region = null;<a name="line.437"></a>
-<span class="sourceLineNo">438</span>          for (Cell cell : res.listCells()) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>            row = CellUtil.cloneRow(cell);<a name="line.439"></a>
-<span class="sourceLineNo">440</span>            rows.add(row);<a name="line.440"></a>
-<span class="sourceLineNo">441</span>            String rowStr = Bytes.toString(row);<a name="line.441"></a>
-<span class="sourceLineNo">442</span>            region = BackupSystemTable.getRegionNameFromOrigBulkLoadRow(rowStr);<a name="line.442"></a>
-<span class="sourceLineNo">443</span>            if (CellUtil.compareQualifiers(cell, BackupSystemTable.FAM_COL, 0,<a name="line.443"></a>
-<span class="sourceLineNo">444</span>              BackupSystemTable.FAM_COL.length) == 0) {<a name="line.444"></a>
-<span class="sourceLineNo">445</span>              fam = Bytes.toString(CellUtil.cloneValue(cell));<a name="line.445"></a>
-<span class="sourceLineNo">446</span>            } else if (CellUtil.compareQualifiers(cell, BackupSystemTable.PATH_COL, 0,<a name="line.446"></a>
-<span class="sourceLineNo">447</span>              BackupSystemTable.PATH_COL.length) == 0) {<a name="line.447"></a>
-<span class="sourceLineNo">448</span>              path = Bytes.toString(CellUtil.cloneValue(cell));<a name="line.448"></a>
-<span class="sourceLineNo">449</span>            } else if (CellUtil.compareQualifiers(cell, BackupSystemTable.STATE_COL, 0,<a name="line.449"></a>
-<span class="sourceLineNo">450</span>              BackupSystemTable.STATE_COL.length) == 0) {<a name="line.450"></a>
-<span class="sourceLineNo">451</span>              byte[] state = CellUtil.cloneValue(cell);<a name="line.451"></a>
-<span class="sourceLineNo">452</span>              if (Bytes.equals(BackupSystemTable.BL_PREPARE, state)) {<a name="line.452"></a>
-<span class="sourceLineNo">453</span>                raw = true;<a name="line.453"></a>
-<span class="sourceLineNo">454</span>              } else raw = false;<a name="line.454"></a>
-<span class="sourceLineNo">455</span>            }<a name="line.455"></a>
-<span class="sourceLineNo">456</span>          }<a name="line.456"></a>
-<span class="sourceLineNo">457</span>          if (map.get(tTable) == null) {<a name="line.457"></a>
-<span class="sourceLineNo">458</span>            map.put(tTable, new HashMap&lt;String, Map&lt;String, List&lt;Pair&lt;String, Boolean&gt;&gt;&gt;&gt;());<a name="line.458"></a>
-<span class="sourceLineNo">459</span>            tblMap = map.get(tTable);<a name="line.459"></a>
-<span class="sourceLineNo">460</span>          }<a name="line.460"></a>
-<span class="sourceLineNo">461</span>          if (tblMap.get(region) == null) {<a name="line.461"></a>
-<span class="sourceLineNo">462</span>            tblMap.put(region, new HashMap&lt;String, List&lt;Pair&lt;String, Boolean&gt;&gt;&gt;());<a name="line.462"></a>
-<span class="sourceLineNo">463</span>          }<a name="line.463"></a>
-<span class="sourceLineNo">464</span>          Map&lt;String, List&lt;Pair&lt;String, Boolean&gt;&gt;&gt; famMap = tblMap.get(region);<a name="line.464"></a>
-<span class="sourceLineNo">465</span>          if (famMap.get(fam) == null) {<a name="line.465"></a>
-<span class="sourceLineNo">466</span>            famMap.put(fam, new ArrayList&lt;Pair&lt;String, Boolean&gt;&gt;());<a name="line.466"></a>
-<span class="sourceLineNo">467</span>          }<a name="line.467"></a>
-<span class="sourceLineNo">468</span>          famMap.get(fam).add(new Pair&lt;&gt;(path, raw));<a name="line.468"></a>
-<span class="sourceLineNo">469</span>          LOG.debug("found orig " + path + " for " + fam + " of table " + region);<a name="line.469"></a>
-<span class="sourceLineNo">470</span>        }<a name="line.470"></a>
-<span class="sourceLineNo">471</span>      }<a name="line.471"></a>
-<span class="sourceLineNo">472</span>    }<a name="line.472"></a>
-<span class="sourceLineNo">473</span>    return new Pair&lt;&gt;(map, rows);<a name="line.473"></a>
-<span class="sourceLineNo">474</span>  }<a name="line.474"></a>
-<span class="sourceLineNo">475</span><a name="line.475"></a>
-<span class="sourceLineNo">476</span>  /*<a name="line.476"></a>
-<span class="sourceLineNo">477</span>   * @param sTableList List of tables<a name="line.477"></a>
-<span class="sourceLineNo">478</span>   * @param maps array of Map of family to List of Paths<a name="line.478"></a>
-<span class="sourceLineNo">479</span>   * @param backupId the backup Id<a name="line.479"></a>
-<span class="sourceLineNo">480</span>   */<a name="line.480"></a>
-<span class="sourceLineNo">481</span>  public void writeBulkLoadedFiles(List&lt;TableName&gt; sTableList, Map&lt;byte[], List&lt;Path&gt;&gt;[] maps,<a name="line.481"></a>
-<span class="sourceLineNo">482</span>      String backupId) throws IOException {<a name="line.482"></a>
-<span class="sourceLineNo">483</span>    try (Table table = connection.getTable(tableName)) {<a name="line.483"></a>
-<span class="sourceLineNo">484</span>      long ts = EnvironmentEdgeManager.currentTime();<a name="line.484"></a>
-<span class="sourceLineNo">485</span>      int cnt = 0;<a name="line.485"></a>
-<span class="sourceLineNo">486</span>      List&lt;Put&gt; puts = new ArrayList&lt;&gt;();<a name="line.486"></a>
-<span class="sourceLineNo">487</span>      for (int idx = 0; idx &lt; maps.length; idx++) {<a name="line.487"></a>
-<span class="sourceLineNo">488</span>        Map&lt;byte[], List&lt;Path&gt;&gt; map = maps[idx];<a name="line.488"></a>
-<span class="sourceLineNo">489</span>        TableName tn = sTableList.get(idx);<a name="line.489"></a>
-<span class="sourceLineNo">490</span>        if (map == null) continue;<a name="line.490"></a>
-<span class="sourceLineNo">491</span>        for (Map.Entry&lt;byte[], List&lt;Path&gt;&gt; entry : map.entrySet()) {<a name="line.491"></a>
-<span class="sourceLineNo">492</span>          byte[] fam = entry.getKey();<a name="line.492"></a>
-<span class="sourceLineNo">493</span>          List&lt;Path&gt; paths = entry.getValue();<a name="line.493"></a>
-<span class="sourceLineNo">494</span>          for (Path p : paths) {<a name="line.494"></a>
-<span class="sourceLineNo">495</span>            Put put =<a name="line.495"></a>
-<span class="sourceLineNo">496</span>                BackupSystemTable.createPutForBulkLoadedFile(tn, fam, p.toString(), backupId, ts,<a name="line.496"></a>
-<span class="sourceLineNo">497</span>                  cnt++);<a name="line.497"></a>
-<span class="sourceLineNo">498</span>            puts.add(put);<a name="line.498"></a>
-<span class="sourceLineNo">499</span>          }<a name="line.499"></a>
-<span class="sourceLineNo">500</span>        }<a name="line.500"></a>
-<span class="sourceLineNo">501</span>      }<a name="line.501"></a>
-<span class="sourceLineNo">502</span>      if (!puts.isEmpty()) {<a name="line.502"></a>
-<span class="sourceLineNo">503</span>        table.put(puts);<a name="line.503"></a>
-<span class="sourceLineNo">504</span>      }<a name="line.504"></a>
-<span class="sourceLineNo">505</span>    }<a name="line.505"></a>
-<span class="sourceLineNo">506</span>  }<a name="line.506"></a>
-<span class="sourceLineNo">507</span><a name="line.507"></a>
-<span class="sourceLineNo">508</span>  /**<a name="line.508"></a>
-<span class="sourceLineNo">509</span>   * Reads backup status object (instance of backup info) from backup system table table<a name="line.509"></a>
-<span class="sourceLineNo">510</span>   * @param backupId backup id<a name="line.510"></a>
-<span class="sourceLineNo">511</span>   * @return Current status of backup session or null<a name="line.511"></a>
-<span class="sourceLineNo">512</span>   */<a name="line.512"></a>
-<span class="sourceLineNo">513</span><a name="line.513"></a>
-<span class="sourceLineNo">514</span>  public BackupInfo readBackupInfo(String backupId) throws IOException {<a name="line.514"></a>
-<span class="sourceLineNo">515</span>    if (LOG.isTraceEnabled()) {<a name="line.515"></a>
-<span class="sourceLineNo">516</span>      LOG.trace("read backup status from backup system table for: " + backupId);<a name="line.516"></a>
-<span class="sourceLineNo">517</span>    }<a name="line.517"></a>
-<span class="sourceLineNo">518</span><a name="line.518"></a>
-<span class="sourceLineNo">519</span>    try (Table table = connection.getTable(tableName)) {<a name="line.519"></a>
-<span class="sourceLineNo">520</span>      Get get = createGetForBackupInfo(backupId);<a name="line.520"></a>
-<span class="sourceLineNo">521</span>      Result res = table.get(get);<a name="line.521"></a>
-<span class="sourceLineNo">522</span>      if (res.isEmpty()) {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>        return null;<a name="line.523"></a>
-<span class="sourceLineNo">524</span>      }<a name="line.524"></a>
-<span class="sourceLineNo">525</span>      return resultToBackupInfo(res);<a name="line.525"></a>
-<span class="sourceLineNo">526</span>    }<a name="line.526"></a>
-<span class="sourceLineNo">527</span>  }<a name="line.527"></a>
-<span class="sourceLineNo">528</span><a name="line.528"></a>
-<span class="sourceLineNo">529</span>  /**<a name="line.529"></a>
-<span class="sourceLineNo">530</span>   * Read the last backup start code (timestamp) of last successful backup. Will return null if<a name="line.530"></a>
-<span class="sourceLineNo">531</span>   * there is no start code stored on hbase or the value is of length 0. These two cases indicate<a name="line.531"></a>
-<span class="sourceLineNo">532</span>   * there is no successful backup completed so far.<a name="line.532"></a>
-<span class="sourceLineNo">533</span>   * @param backupRoot directory path to backup destination<a name="line.533"></a>
-<span class="sourceLineNo">534</span>   * @return the timestamp of last successful backup<a name="line.534"></a>
-<span class="sourceLineNo">535</span>   * @throws IOException exception<a name="line.535"></a>
-<span class="sourceLineNo">536</span>   */<a name="line.536"></a>
-<span class="sourceLineNo">537</span>  public String readBackupStartCode(String backupRoot) throws IOException {<a name="line.537"></a>
-<span class="sourceLineNo">538</span>    LOG.trace("read backup start code from backup system table");<a name="line.538"></a>
-<span class="sourceLineNo">539</span><a name="line.539"></a>
-<span class="sourceLineNo">540</span>    try (Table table = connection.getTable(tableName)) {<a name="line.540"></a>
-<span class="sourceLineNo">541</span>      Get get = createGetForStartCode(backupRoot);<a name="line.541"></a>
-<span class="sourceLineNo">542</span>      Result res = table.get(get);<a name="line.542"></a>
-<span class="sourceLineNo">543</span>      if (res.isEmpty()) {<a name="line.543"></a>
-<span class="sourceLineNo">544</span>        return null;<a name="line.544"></a>
-<span class="sourceLineNo">545</span>      }<a name="line.545"></a>
-<span class="sourceLineNo">546</span>      Cell cell = res.listCells().get(0);<a name="line.546"></a>
-<span class="sourceLineNo">547</span>      byte[] val = CellUtil.cloneValue(cell);<a name="line.547"></a>
-<span class="sourceLineNo">548</span>      if (val.length == 0) {<a name="line.548"></a>
-<span class="sourceLineNo">549</span>        return null;<a name="line.549"></a>
-<span class="sourceLineNo">550</span>      }<a name="line.550"></a>
-<span class="sourceLineNo">551</span>      return new String(val);<a name="line.551"></a>
-<span class="sourceLineNo">552</span>    }<a name="line.552"></a>
-<span class="sourceLineNo">553</span>  }<a name="line.553"></a>
-<span class="sourceLineNo">554</span><a name="line.554"></a>
-<span class="sourceLineNo">555</span>  /**<a name="line.555"></a>
-<span class="sourceLineNo">556</span>   * Write the start code (timestamp) to backup system table. If passed in null, then write 0 byte.<a name="line.556"></a>
-<span class="sourceLineNo">557</span>   * @param startCode start code<a name="line.557"></a>
-<span class="sourceLineNo">558</span>   * @param backupRoot root directory path to backup<a name="line.558"></a>
-<span class="sourceLineNo">559</span>   * @throws IOException exception<a name="line.559"></a>
-<span class="sourceLineNo">560</span>   */<a name="line.560"></a>
-<span class="sourceLineNo">561</span>  public void writeBackupStartCode(Long startCode, String backupRoot) throws IOException {<a name="line.561"></a>
-<span class="sourceLineNo">562</span>    if (LOG.isTraceEnabled()) {<a name="line.562"></a>
-<span class="sourceLineNo">563</span>      LOG.trace("write backup start code to backup system table " + startCode);<a name="line.563"></a>
-<span class="sourceLineNo">564</span>    }<a name="line.564"></a>
-<span class="sourceLineNo">565</span>    try (Table table = connection.getTable(tableName)) {<a name="line.565"></a>
-<span class="sourceLineNo">566</span>      Put put = createPutForStartCode(startCode.toString(), backupRoot);<a name="line.566"></a>
-<span class="sourceLineNo">567</span>      table.put(put);<a name="line.567"></a>
-<span class="sourceLineNo">568</span>    }<a name="line.568"></a>
-<span class="sourceLineNo">569</span>  }<a name="line.569"></a>
-<span class="sourceLineNo">570</span><a name="line.570"></a>
-<span class="sourceLineNo">571</span>  /**<a name="line.571"></a>
-<span class="sourceLineNo">572</span>   * Exclusive operations are:<a name="line.572"></a>
-<span class="sourceLineNo">573</span>   * create, delete, merge<a name="line.573"></a>
-<span class="sourceLineNo">574</span>   * @throws IOException<a name="line.574"></a>
-<span class="sourceLineNo">575</span>   */<a name="line.575"></a>
-<span class="sourceLineNo">576</span>  public void startBackupExclusiveOperation() throws IOException {<a name="line.576"></a>
-<span class="sourceLineNo">577</span>    LOG.debug("Start new backup exclusive operation");<a name="line.577"></a>
-<span class="sourceLineNo">578</span><a name="line.578"></a>
+<span class="sourceLineNo">369</span>  }<a name="line.369"></a>
+<span class="sourceLineNo">370</span><a name="line.370"></a>
+<span class="sourceLineNo">371</span>  /*<a name="line.371"></a>
+<span class="sourceLineNo">372</span>   * For postBulkLoadHFile() hook.<a name="line.372"></a>
+<span class="sourceLineNo">373</span>   * @param tabName table name<a name="line.373"></a>
+<span class="sourceLineNo">374</span>   * @param region the region receiving hfile<a name="line.374"></a>
+<span class="sourceLineNo">375</span>   * @param finalPaths family and associated hfiles<a name="line.375"></a>
+<span class="sourceLineNo">376</span>   */<a name="line.376"></a>
+<span class="sourceLineNo">377</span>  public void writePathsPostBulkLoad(TableName tabName, byte[] region,<a name="line.377"></a>
+<span class="sourceLineNo">378</span>      Map&lt;byte[], List&lt;Path&gt;&gt; finalPaths) throws IOException {<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    if (LOG.isDebugEnabled()) {<a name="line.379"></a>
+<span class="sourceLineNo">380</span>      LOG.debug("write bulk load descriptor to backup " + tabName + " with " + finalPaths.size()<a name="line.380"></a>
+<span class="sourceLineNo">381</span>          + " entries");<a name="line.381"></a>
+<span class="sourceLineNo">382</span>    }<a name="line.382"></a>
+<span class="sourceLineNo">383</span>    try (Table table = connection.getTable(bulkLoadTableName)) {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>      List&lt;Put&gt; puts = BackupSystemTable.createPutForCommittedBulkload(tabName, region, finalPaths);<a name="line.384"></a>
+<span class="sourceLineNo">385</span>      table.put(puts);<a name="line.385"></a>
+<span class="sourceLineNo">386</span>      LOG.debug("written " + puts.size() + " rows for bulk load of " + tabName);<a name="line.386"></a>
+<span class="sourceLineNo">387</span>    }<a name="line.387"></a>
+<span class="sourceLineNo">388</span>  }<a name="line.388"></a>
+<span class="sourceLineNo">389</span><a name="line.389"></a>
+<span class="sourceLineNo">390</span>  /*<a name="line.390"></a>
+<span class="sourceLineNo">391</span>   * For preCommitStoreFile() hook<a name="line.391"></a>
+<span class="sourceLineNo">392</span>   * @param tabName table name<a name="line.392"></a>
+<span class="sourceLineNo">393</span>   * @param region the region receiving hfile<a name="line.393"></a>
+<span class="sourceLineNo">394</span>   * @param family column family<a name="line.394"></a>
+<span class="sourceLineNo">395</span>   * @param pairs list of paths for hfiles<a name="line.395"></a>
+<span class="sourceLineNo">396</span>   */<a name="line.396"></a>
+<span class="sourceLineNo">397</span>  public void writeFilesForBulkLoadPreCommit(TableName tabName, byte[] region, final byte[] family,<a name="line.397"></a>
+<span class="sourceLineNo">398</span>      final List&lt;Pair&lt;Path, Path&gt;&gt; pairs) throws IOException {<a name="line.398"></a>
+<span class="sourceLineNo">399</span>    if (LOG.isDebugEnabled()) {<a name="line.399"></a>
+<span class="sourceLineNo">400</span>      LOG.debug("write bulk load descriptor to backup " + tabName + " with " + pairs.size()<a name="line.400"></a>
+<span class="sourceLineNo">401</span>          + " entries");<a name="line.401"></a>
+<span class="sourceLineNo">402</span>    }<a name="line.402"></a>
+<span class="sourceLineNo">403</span>    try (Table table = connection.getTable(bulkLoadTableName)) {<a name="line.403"></a>
+<span class="sourceLineNo">404</span>      List&lt;Put&gt; puts =<a name="line.404"></a>
+<span class="sourceLineNo">405</span>          BackupSystemTable.createPutForPreparedBulkload(tabName, region, family, pairs);<a name="line.405"></a>
+<span class="sourceLineNo">406</span>      table.put(puts);<a name="line.406"></a>
+<span class="sourceLineNo">407</span>      LOG.debug("written " + puts.size() + " rows for bulk load of " + tabName);<a name="line.407"></a>
+<span class="sourceLineNo">408</span>    }<a name="line.408"></a>
+<span class="sourceLineNo">409</span>  }<a name="line.409"></a>
+<span class="sourceLineNo">410</span><a name="line.410"></a>
+<span class="sourceLineNo">411</span>  /*<a name="line.411"></a>
+<span class="sourceLineNo">412</span>   * Removes rows recording bulk loaded hfiles from backup table<a name="line.412"></a>
+<span class="sourceLineNo">413</span>   * @param lst list of table names<a name="line.413"></a>
+<span class="sourceLineNo">414</span>   * @param rows the rows to be deleted<a name="line.414"></a>
+<span class="sourceLineNo">415</span>   */<a name="line.415"></a>
+<span class="sourceLineNo">416</span>  public void deleteBulkLoadedRows(List&lt;byte[]&gt; rows) throws IOException {<a name="line.416"></a>
+<span class="sourceLineNo">417</span>    try (Table table = connection.getTable(bulkLoadTableName)) {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>      List&lt;Delete&gt; lstDels = new ArrayList&lt;&gt;();<a name="line.418"></a>
+<span class="sourceLineNo">419</span>      for (byte[] row : rows) {<a name="line.419"></a>
+<span class="sourceLineNo">420</span>        Delete del = new Delete(row);<a name="line.420"></a>
+<span class="sourceLineNo">421</span>        lstDels.add(del);<a name="line.421"></a>
+<span class="sourceLineNo">422</span>        LOG.debug("orig deleting the row: " + Bytes.toString(row));<a name="line.422"></a>
+<span class="sourceLineNo">423</span>      }<a name="line.423"></a>
+<span class="sourceLineNo">424</span>      table.delete(lstDels);<a name="line.424"></a>
+<span class="sourceLineNo">425</span>      LOG.debug("deleted " + rows.size() + " original bulkload rows");<a name="line.425"></a>
+<span class="sourceLineNo">426</span>    }<a name="line.426"></a>
+<span c

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html
index c4e20fb..73d508d 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/backup/TestBackupBase.html
@@ -65,456 +65,452 @@
 <span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.client.HTable;<a name="line.57"></a>
 <span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.client.Put;<a name="line.58"></a>
 <span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.client.Table;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.coprocessor.CoprocessorHost;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.security.HadoopSecurityEnabledUserProviderForTesting;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.security.UserProvider;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.security.access.SecureTestUtil;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.snapshot.SnapshotTestingUtils;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.wal.WALFactory;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.junit.AfterClass;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.junit.Before;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.slf4j.Logger;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.slf4j.LoggerFactory;<a name="line.71"></a>
-<span class="sourceLineNo">072</span><a name="line.72"></a>
-<span class="sourceLineNo">073</span>/**<a name="line.73"></a>
-<span class="sourceLineNo">074</span> * This class is only a base for other integration-level backup tests. Do not add tests here.<a name="line.74"></a>
-<span class="sourceLineNo">075</span> * TestBackupSmallTests is where tests that don't require bring machines up/down should go All other<a name="line.75"></a>
-<span class="sourceLineNo">076</span> * tests should have their own classes and extend this one<a name="line.76"></a>
-<span class="sourceLineNo">077</span> */<a name="line.77"></a>
-<span class="sourceLineNo">078</span>public class TestBackupBase {<a name="line.78"></a>
-<span class="sourceLineNo">079</span><a name="line.79"></a>
-<span class="sourceLineNo">080</span>  private static final Logger LOG = LoggerFactory.getLogger(TestBackupBase.class);<a name="line.80"></a>
-<span class="sourceLineNo">081</span><a name="line.81"></a>
-<span class="sourceLineNo">082</span>  protected static HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();<a name="line.82"></a>
-<span class="sourceLineNo">083</span>  protected static HBaseTestingUtility TEST_UTIL2;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>  protected static Configuration conf1 = TEST_UTIL.getConfiguration();<a name="line.84"></a>
-<span class="sourceLineNo">085</span>  protected static Configuration conf2;<a name="line.85"></a>
-<span class="sourceLineNo">086</span><a name="line.86"></a>
-<span class="sourceLineNo">087</span>  protected static TableName table1 = TableName.valueOf("table1");<a name="line.87"></a>
-<span class="sourceLineNo">088</span>  protected static HTableDescriptor table1Desc;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>  protected static TableName table2 = TableName.valueOf("table2");<a name="line.89"></a>
-<span class="sourceLineNo">090</span>  protected static TableName table3 = TableName.valueOf("table3");<a name="line.90"></a>
-<span class="sourceLineNo">091</span>  protected static TableName table4 = TableName.valueOf("table4");<a name="line.91"></a>
-<span class="sourceLineNo">092</span><a name="line.92"></a>
-<span class="sourceLineNo">093</span>  protected static TableName table1_restore = TableName.valueOf("ns1:table1_restore");<a name="line.93"></a>
-<span class="sourceLineNo">094</span>  protected static TableName table2_restore = TableName.valueOf("ns2:table2_restore");<a name="line.94"></a>
-<span class="sourceLineNo">095</span>  protected static TableName table3_restore = TableName.valueOf("ns3:table3_restore");<a name="line.95"></a>
-<span class="sourceLineNo">096</span>  protected static TableName table4_restore = TableName.valueOf("ns4:table4_restore");<a name="line.96"></a>
-<span class="sourceLineNo">097</span><a name="line.97"></a>
-<span class="sourceLineNo">098</span>  protected static final int NB_ROWS_IN_BATCH = 99;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>  protected static final byte[] qualName = Bytes.toBytes("q1");<a name="line.99"></a>
-<span class="sourceLineNo">100</span>  protected static final byte[] famName = Bytes.toBytes("f");<a name="line.100"></a>
-<span class="sourceLineNo">101</span><a name="line.101"></a>
-<span class="sourceLineNo">102</span>  protected static String BACKUP_ROOT_DIR = Path.SEPARATOR +"backupUT";<a name="line.102"></a>
-<span class="sourceLineNo">103</span>  protected static String BACKUP_REMOTE_ROOT_DIR = Path.SEPARATOR + "backupUT";<a name="line.103"></a>
-<span class="sourceLineNo">104</span>  protected static String provider = "defaultProvider";<a name="line.104"></a>
-<span class="sourceLineNo">105</span>  protected static boolean secure = false;<a name="line.105"></a>
-<span class="sourceLineNo">106</span><a name="line.106"></a>
-<span class="sourceLineNo">107</span>  protected static boolean autoRestoreOnFailure = true;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>  protected static boolean setupIsDone = false;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>  protected static boolean useSecondCluster = false;<a name="line.109"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.security.HadoopSecurityEnabledUserProviderForTesting;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.security.UserProvider;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.security.access.SecureTestUtil;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.snapshot.SnapshotTestingUtils;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.wal.WALFactory;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.junit.AfterClass;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.junit.Before;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.slf4j.Logger;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.slf4j.LoggerFactory;<a name="line.70"></a>
+<span class="sourceLineNo">071</span><a name="line.71"></a>
+<span class="sourceLineNo">072</span>/**<a name="line.72"></a>
+<span class="sourceLineNo">073</span> * This class is only a base for other integration-level backup tests. Do not add tests here.<a name="line.73"></a>
+<span class="sourceLineNo">074</span> * TestBackupSmallTests is where tests that don't require bring machines up/down should go All other<a name="line.74"></a>
+<span class="sourceLineNo">075</span> * tests should have their own classes and extend this one<a name="line.75"></a>
+<span class="sourceLineNo">076</span> */<a name="line.76"></a>
+<span class="sourceLineNo">077</span>public class TestBackupBase {<a name="line.77"></a>
+<span class="sourceLineNo">078</span><a name="line.78"></a>
+<span class="sourceLineNo">079</span>  private static final Logger LOG = LoggerFactory.getLogger(TestBackupBase.class);<a name="line.79"></a>
+<span class="sourceLineNo">080</span><a name="line.80"></a>
+<span class="sourceLineNo">081</span>  protected static HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();<a name="line.81"></a>
+<span class="sourceLineNo">082</span>  protected static HBaseTestingUtility TEST_UTIL2;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>  protected static Configuration conf1 = TEST_UTIL.getConfiguration();<a name="line.83"></a>
+<span class="sourceLineNo">084</span>  protected static Configuration conf2;<a name="line.84"></a>
+<span class="sourceLineNo">085</span><a name="line.85"></a>
+<span class="sourceLineNo">086</span>  protected static TableName table1 = TableName.valueOf("table1");<a name="line.86"></a>
+<span class="sourceLineNo">087</span>  protected static HTableDescriptor table1Desc;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>  protected static TableName table2 = TableName.valueOf("table2");<a name="line.88"></a>
+<span class="sourceLineNo">089</span>  protected static TableName table3 = TableName.valueOf("table3");<a name="line.89"></a>
+<span class="sourceLineNo">090</span>  protected static TableName table4 = TableName.valueOf("table4");<a name="line.90"></a>
+<span class="sourceLineNo">091</span><a name="line.91"></a>
+<span class="sourceLineNo">092</span>  protected static TableName table1_restore = TableName.valueOf("ns1:table1_restore");<a name="line.92"></a>
+<span class="sourceLineNo">093</span>  protected static TableName table2_restore = TableName.valueOf("ns2:table2_restore");<a name="line.93"></a>
+<span class="sourceLineNo">094</span>  protected static TableName table3_restore = TableName.valueOf("ns3:table3_restore");<a name="line.94"></a>
+<span class="sourceLineNo">095</span>  protected static TableName table4_restore = TableName.valueOf("ns4:table4_restore");<a name="line.95"></a>
+<span class="sourceLineNo">096</span><a name="line.96"></a>
+<span class="sourceLineNo">097</span>  protected static final int NB_ROWS_IN_BATCH = 99;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>  protected static final byte[] qualName = Bytes.toBytes("q1");<a name="line.98"></a>
+<span class="sourceLineNo">099</span>  protected static final byte[] famName = Bytes.toBytes("f");<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>  protected static String BACKUP_ROOT_DIR = Path.SEPARATOR +"backupUT";<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  protected static String BACKUP_REMOTE_ROOT_DIR = Path.SEPARATOR + "backupUT";<a name="line.102"></a>
+<span class="sourceLineNo">103</span>  protected static String provider = "defaultProvider";<a name="line.103"></a>
+<span class="sourceLineNo">104</span>  protected static boolean secure = false;<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>  protected static boolean autoRestoreOnFailure = true;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>  protected static boolean setupIsDone = false;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>  protected static boolean useSecondCluster = false;<a name="line.108"></a>
+<span class="sourceLineNo">109</span><a name="line.109"></a>
 <span class="sourceLineNo">110</span><a name="line.110"></a>
-<span class="sourceLineNo">111</span><a name="line.111"></a>
-<span class="sourceLineNo">112</span>  static class IncrementalTableBackupClientForTest extends IncrementalTableBackupClient<a name="line.112"></a>
-<span class="sourceLineNo">113</span>  {<a name="line.113"></a>
-<span class="sourceLineNo">114</span><a name="line.114"></a>
-<span class="sourceLineNo">115</span>    public IncrementalTableBackupClientForTest() {<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    }<a name="line.116"></a>
-<span class="sourceLineNo">117</span><a name="line.117"></a>
-<span class="sourceLineNo">118</span>    public IncrementalTableBackupClientForTest(Connection conn,<a name="line.118"></a>
-<span class="sourceLineNo">119</span>        String backupId, BackupRequest request) throws IOException {<a name="line.119"></a>
-<span class="sourceLineNo">120</span>      super(conn, backupId, request);<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    }<a name="line.121"></a>
-<span class="sourceLineNo">122</span><a name="line.122"></a>
-<span class="sourceLineNo">123</span>    @Override<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    public void execute() throws IOException<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    {<a name="line.125"></a>
-<span class="sourceLineNo">126</span>      // case INCREMENTAL_COPY:<a name="line.126"></a>
-<span class="sourceLineNo">127</span>      try {<a name="line.127"></a>
-<span class="sourceLineNo">128</span>        // case PREPARE_INCREMENTAL:<a name="line.128"></a>
-<span class="sourceLineNo">129</span>        failStageIf(Stage.stage_0);<a name="line.129"></a>
-<span class="sourceLineNo">130</span>        beginBackup(backupManager, backupInfo);<a name="line.130"></a>
-<span class="sourceLineNo">131</span><a name="line.131"></a>
-<span class="sourceLineNo">132</span>        failStageIf(Stage.stage_1);<a name="line.132"></a>
-<span class="sourceLineNo">133</span>        backupInfo.setPhase(BackupPhase.PREPARE_INCREMENTAL);<a name="line.133"></a>
-<span class="sourceLineNo">134</span>        LOG.debug("For incremental backup, current table set is "<a name="line.134"></a>
-<span class="sourceLineNo">135</span>            + backupManager.getIncrementalBackupTableSet());<a name="line.135"></a>
-<span class="sourceLineNo">136</span>        newTimestamps = ((IncrementalBackupManager) backupManager).getIncrBackupLogFileMap();<a name="line.136"></a>
-<span class="sourceLineNo">137</span>        // copy out the table and region info files for each table<a name="line.137"></a>
-<span class="sourceLineNo">138</span>        BackupUtils.copyTableRegionInfo(conn, backupInfo, conf);<a name="line.138"></a>
-<span class="sourceLineNo">139</span>        // convert WAL to HFiles and copy them to .tmp under BACKUP_ROOT<a name="line.139"></a>
-<span class="sourceLineNo">140</span>        convertWALsToHFiles();<a name="line.140"></a>
-<span class="sourceLineNo">141</span>        incrementalCopyHFiles(new String[] {getBulkOutputDir().toString()},<a name="line.141"></a>
-<span class="sourceLineNo">142</span>          backupInfo.getBackupRootDir());<a name="line.142"></a>
-<span class="sourceLineNo">143</span>        failStageIf(Stage.stage_2);<a name="line.143"></a>
-<span class="sourceLineNo">144</span>        // Save list of WAL files copied<a name="line.144"></a>
-<span class="sourceLineNo">145</span>        backupManager.recordWALFiles(backupInfo.getIncrBackupFileList());<a name="line.145"></a>
-<span class="sourceLineNo">146</span><a name="line.146"></a>
-<span class="sourceLineNo">147</span>        // case INCR_BACKUP_COMPLETE:<a name="line.147"></a>
-<span class="sourceLineNo">148</span>        // set overall backup status: complete. Here we make sure to complete the backup.<a name="line.148"></a>
-<span class="sourceLineNo">149</span>        // After this checkpoint, even if entering cancel process, will let the backup finished<a name="line.149"></a>
-<span class="sourceLineNo">150</span>        // Set the previousTimestampMap which is before this current log roll to the manifest.<a name="line.150"></a>
-<span class="sourceLineNo">151</span>        HashMap&lt;TableName, HashMap&lt;String, Long&gt;&gt; previousTimestampMap =<a name="line.151"></a>
-<span class="sourceLineNo">152</span>            backupManager.readLogTimestampMap();<a name="line.152"></a>
-<span class="sourceLineNo">153</span>        backupInfo.setIncrTimestampMap(previousTimestampMap);<a name="line.153"></a>
-<span class="sourceLineNo">154</span><a name="line.154"></a>
-<span class="sourceLineNo">155</span>        // The table list in backupInfo is good for both full backup and incremental backup.<a name="line.155"></a>
-<span class="sourceLineNo">156</span>        // For incremental backup, it contains the incremental backup table set.<a name="line.156"></a>
-<span class="sourceLineNo">157</span>        backupManager.writeRegionServerLogTimestamp(backupInfo.getTables(), newTimestamps);<a name="line.157"></a>
-<span class="sourceLineNo">158</span>        failStageIf(Stage.stage_3);<a name="line.158"></a>
-<span class="sourceLineNo">159</span><a name="line.159"></a>
-<span class="sourceLineNo">160</span>        HashMap&lt;TableName, HashMap&lt;String, Long&gt;&gt; newTableSetTimestampMap =<a name="line.160"></a>
-<span class="sourceLineNo">161</span>            backupManager.readLogTimestampMap();<a name="line.161"></a>
-<span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span>        Long newStartCode =<a name="line.163"></a>
-<span class="sourceLineNo">164</span>            BackupUtils.getMinValue(BackupUtils.getRSLogTimestampMins(newTableSetTimestampMap));<a name="line.164"></a>
-<span class="sourceLineNo">165</span>        backupManager.writeBackupStartCode(newStartCode);<a name="line.165"></a>
-<span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span>        handleBulkLoad(backupInfo.getTableNames());<a name="line.167"></a>
-<span class="sourceLineNo">168</span>        failStageIf(Stage.stage_4);<a name="line.168"></a>
-<span class="sourceLineNo">169</span><a name="line.169"></a>
-<span class="sourceLineNo">170</span>        // backup complete<a name="line.170"></a>
-<span class="sourceLineNo">171</span>        completeBackup(conn, backupInfo, backupManager, BackupType.INCREMENTAL, conf);<a name="line.171"></a>
-<span class="sourceLineNo">172</span><a name="line.172"></a>
-<span class="sourceLineNo">173</span>      } catch (Exception e) {<a name="line.173"></a>
-<span class="sourceLineNo">174</span>        failBackup(conn, backupInfo, backupManager, e, "Unexpected Exception : ",<a name="line.174"></a>
-<span class="sourceLineNo">175</span>          BackupType.INCREMENTAL, conf);<a name="line.175"></a>
-<span class="sourceLineNo">176</span>        throw new IOException(e);<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>
-<span class="sourceLineNo">179</span>    }<a name="line.179"></a>
-<span class="sourceLineNo">180</span>  }<a name="line.180"></a>
-<span class="sourceLineNo">181</span><a name="line.181"></a>
-<span class="sourceLineNo">182</span>  static class FullTableBackupClientForTest extends FullTableBackupClient<a name="line.182"></a>
-<span class="sourceLineNo">183</span>  {<a name="line.183"></a>
+<span class="sourceLineNo">111</span>  static class IncrementalTableBackupClientForTest extends IncrementalTableBackupClient<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>    public IncrementalTableBackupClientForTest() {<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    }<a name="line.115"></a>
+<span class="sourceLineNo">116</span><a name="line.116"></a>
+<span class="sourceLineNo">117</span>    public IncrementalTableBackupClientForTest(Connection conn,<a name="line.117"></a>
+<span class="sourceLineNo">118</span>        String backupId, BackupRequest request) throws IOException {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>      super(conn, backupId, request);<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    }<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>    @Override<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    public void execute() throws IOException<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>      // case INCREMENTAL_COPY:<a name="line.125"></a>
+<span class="sourceLineNo">126</span>      try {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>        // case PREPARE_INCREMENTAL:<a name="line.127"></a>
+<span class="sourceLineNo">128</span>        failStageIf(Stage.stage_0);<a name="line.128"></a>
+<span class="sourceLineNo">129</span>        beginBackup(backupManager, backupInfo);<a name="line.129"></a>
+<span class="sourceLineNo">130</span><a name="line.130"></a>
+<span class="sourceLineNo">131</span>        failStageIf(Stage.stage_1);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>        backupInfo.setPhase(BackupPhase.PREPARE_INCREMENTAL);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>        LOG.debug("For incremental backup, current table set is "<a name="line.133"></a>
+<span class="sourceLineNo">134</span>            + backupManager.getIncrementalBackupTableSet());<a name="line.134"></a>
+<span class="sourceLineNo">135</span>        newTimestamps = ((IncrementalBackupManager) backupManager).getIncrBackupLogFileMap();<a name="line.135"></a>
+<span class="sourceLineNo">136</span>        // copy out the table and region info files for each table<a name="line.136"></a>
+<span class="sourceLineNo">137</span>        BackupUtils.copyTableRegionInfo(conn, backupInfo, conf);<a name="line.137"></a>
+<span class="sourceLineNo">138</span>        // convert WAL to HFiles and copy them to .tmp under BACKUP_ROOT<a name="line.138"></a>
+<span class="sourceLineNo">139</span>        convertWALsToHFiles();<a name="line.139"></a>
+<span class="sourceLineNo">140</span>        incrementalCopyHFiles(new String[] {getBulkOutputDir().toString()},<a name="line.140"></a>
+<span class="sourceLineNo">141</span>          backupInfo.getBackupRootDir());<a name="line.141"></a>
+<span class="sourceLineNo">142</span>        failStageIf(Stage.stage_2);<a name="line.142"></a>
+<span class="sourceLineNo">143</span>        // Save list of WAL files copied<a name="line.143"></a>
+<span class="sourceLineNo">144</span>        backupManager.recordWALFiles(backupInfo.getIncrBackupFileList());<a name="line.144"></a>
+<span class="sourceLineNo">145</span><a name="line.145"></a>
+<span class="sourceLineNo">146</span>        // case INCR_BACKUP_COMPLETE:<a name="line.146"></a>
+<span class="sourceLineNo">147</span>        // set overall backup status: complete. Here we make sure to complete the backup.<a name="line.147"></a>
+<span class="sourceLineNo">148</span>        // After this checkpoint, even if entering cancel process, will let the backup finished<a name="line.148"></a>
+<span class="sourceLineNo">149</span>        // Set the previousTimestampMap which is before this current log roll to the manifest.<a name="line.149"></a>
+<span class="sourceLineNo">150</span>        HashMap&lt;TableName, HashMap&lt;String, Long&gt;&gt; previousTimestampMap =<a name="line.150"></a>
+<span class="sourceLineNo">151</span>            backupManager.readLogTimestampMap();<a name="line.151"></a>
+<span class="sourceLineNo">152</span>        backupInfo.setIncrTimestampMap(previousTimestampMap);<a name="line.152"></a>
+<span class="sourceLineNo">153</span><a name="line.153"></a>
+<span class="sourceLineNo">154</span>        // The table list in backupInfo is good for both full backup and incremental backup.<a name="line.154"></a>
+<span class="sourceLineNo">155</span>        // For incremental backup, it contains the incremental backup table set.<a name="line.155"></a>
+<span class="sourceLineNo">156</span>        backupManager.writeRegionServerLogTimestamp(backupInfo.getTables(), newTimestamps);<a name="line.156"></a>
+<span class="sourceLineNo">157</span>        failStageIf(Stage.stage_3);<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>        HashMap&lt;TableName, HashMap&lt;String, Long&gt;&gt; newTableSetTimestampMap =<a name="line.159"></a>
+<span class="sourceLineNo">160</span>            backupManager.readLogTimestampMap();<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>        Long newStartCode =<a name="line.162"></a>
+<span class="sourceLineNo">163</span>            BackupUtils.getMinValue(BackupUtils.getRSLogTimestampMins(newTableSetTimestampMap));<a name="line.163"></a>
+<span class="sourceLineNo">164</span>        backupManager.writeBackupStartCode(newStartCode);<a name="line.164"></a>
+<span class="sourceLineNo">165</span><a name="line.165"></a>
+<span class="sourceLineNo">166</span>        handleBulkLoad(backupInfo.getTableNames());<a name="line.166"></a>
+<span class="sourceLineNo">167</span>        failStageIf(Stage.stage_4);<a name="line.167"></a>
+<span class="sourceLineNo">168</span><a name="line.168"></a>
+<span class="sourceLineNo">169</span>        // backup complete<a name="line.169"></a>
+<span class="sourceLineNo">170</span>        completeBackup(conn, backupInfo, backupManager, BackupType.INCREMENTAL, conf);<a name="line.170"></a>
+<span class="sourceLineNo">171</span><a name="line.171"></a>
+<span class="sourceLineNo">172</span>      } catch (Exception e) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>        failBackup(conn, backupInfo, backupManager, e, "Unexpected Exception : ",<a name="line.173"></a>
+<span class="sourceLineNo">174</span>          BackupType.INCREMENTAL, conf);<a name="line.174"></a>
+<span class="sourceLineNo">175</span>        throw new IOException(e);<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>    }<a name="line.178"></a>
+<span class="sourceLineNo">179</span>  }<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span>  static class FullTableBackupClientForTest extends FullTableBackupClient<a name="line.181"></a>
+<span class="sourceLineNo">182</span>  {<a name="line.182"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
 <span class="sourceLineNo">184</span><a name="line.184"></a>
-<span class="sourceLineNo">185</span><a name="line.185"></a>
-<span class="sourceLineNo">186</span>    public FullTableBackupClientForTest() {<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    }<a name="line.187"></a>
-<span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>    public FullTableBackupClientForTest(Connection conn, String backupId, BackupRequest request)<a name="line.189"></a>
-<span class="sourceLineNo">190</span>        throws IOException {<a name="line.190"></a>
-<span class="sourceLineNo">191</span>      super(conn, backupId, request);<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    }<a name="line.192"></a>
-<span class="sourceLineNo">193</span><a name="line.193"></a>
-<span class="sourceLineNo">194</span>    @Override<a name="line.194"></a>
-<span class="sourceLineNo">195</span>    public void execute() throws IOException<a name="line.195"></a>
-<span class="sourceLineNo">196</span>    {<a name="line.196"></a>
-<span class="sourceLineNo">197</span>      // Get the stage ID to fail on<a name="line.197"></a>
-<span class="sourceLineNo">198</span>      try (Admin admin = conn.getAdmin()) {<a name="line.198"></a>
-<span class="sourceLineNo">199</span>        // Begin BACKUP<a name="line.199"></a>
-<span class="sourceLineNo">200</span>        beginBackup(backupManager, backupInfo);<a name="line.200"></a>
-<span class="sourceLineNo">201</span>        failStageIf(Stage.stage_0);<a name="line.201"></a>
-<span class="sourceLineNo">202</span>        String savedStartCode = null;<a name="line.202"></a>
-<span class="sourceLineNo">203</span>        boolean firstBackup = false;<a name="line.203"></a>
-<span class="sourceLineNo">204</span>        // do snapshot for full table backup<a name="line.204"></a>
-<span class="sourceLineNo">205</span>        savedStartCode = backupManager.readBackupStartCode();<a name="line.205"></a>
-<span class="sourceLineNo">206</span>        firstBackup = savedStartCode == null || Long.parseLong(savedStartCode) == 0L;<a name="line.206"></a>
-<span class="sourceLineNo">207</span>        if (firstBackup) {<a name="line.207"></a>
-<span class="sourceLineNo">208</span>          // This is our first backup. Let's put some marker to system table so that we can hold the logs<a name="line.208"></a>
-<span class="sourceLineNo">209</span>          // while we do the backup.<a name="line.209"></a>
-<span class="sourceLineNo">210</span>          backupManager.writeBackupStartCode(0L);<a name="line.210"></a>
-<span class="sourceLineNo">211</span>        }<a name="line.211"></a>
-<span class="sourceLineNo">212</span>        failStageIf(Stage.stage_1);<a name="line.212"></a>
-<span class="sourceLineNo">213</span>        // We roll log here before we do the snapshot. It is possible there is duplicate data<a name="line.213"></a>
-<span class="sourceLineNo">214</span>        // in the log that is already in the snapshot. But if we do it after the snapshot, we<a name="line.214"></a>
-<span class="sourceLineNo">215</span>        // could have data loss.<a name="line.215"></a>
-<span class="sourceLineNo">216</span>        // A better approach is to do the roll log on each RS in the same global procedure as<a name="line.216"></a>
-<span class="sourceLineNo">217</span>        // the snapshot.<a name="line.217"></a>
-<span class="sourceLineNo">218</span>        LOG.info("Execute roll log procedure for full backup ...");<a name="line.218"></a>
-<span class="sourceLineNo">219</span><a name="line.219"></a>
-<span class="sourceLineNo">220</span>        Map&lt;String, String&gt; props = new HashMap&lt;String, String&gt;();<a name="line.220"></a>
-<span class="sourceLineNo">221</span>        props.put("backupRoot", backupInfo.getBackupRootDir());<a name="line.221"></a>
-<span class="sourceLineNo">222</span>        admin.execProcedure(LogRollMasterProcedureManager.ROLLLOG_PROCEDURE_SIGNATURE,<a name="line.222"></a>
-<span class="sourceLineNo">223</span>          LogRollMasterProcedureManager.ROLLLOG_PROCEDURE_NAME, props);<a name="line.223"></a>
-<span class="sourceLineNo">224</span>        failStageIf(Stage.stage_2);<a name="line.224"></a>
-<span class="sourceLineNo">225</span>        newTimestamps = backupManager.readRegionServerLastLogRollResult();<a name="line.225"></a>
-<span class="sourceLineNo">226</span>        if (firstBackup) {<a name="line.226"></a>
-<span class="sourceLineNo">227</span>          // Updates registered log files<a name="line.227"></a>
-<span class="sourceLineNo">228</span>          // We record ALL old WAL files as registered, because<a name="line.228"></a>
-<span class="sourceLineNo">229</span>          // this is a first full backup in the system and these<a name="line.229"></a>
-<span class="sourceLineNo">230</span>          // files are not needed for next incremental backup<a name="line.230"></a>
-<span class="sourceLineNo">231</span>          List&lt;String&gt; logFiles = BackupUtils.getWALFilesOlderThan(conf, newTimestamps);<a name="line.231"></a>
-<span class="sourceLineNo">232</span>          backupManager.recordWALFiles(logFiles);<a name="line.232"></a>
-<span class="sourceLineNo">233</span>        }<a name="line.233"></a>
-<span class="sourceLineNo">234</span><a name="line.234"></a>
-<span class="sourceLineNo">235</span>        // SNAPSHOT_TABLES:<a name="line.235"></a>
-<span class="sourceLineNo">236</span>        backupInfo.setPhase(BackupPhase.SNAPSHOT);<a name="line.236"></a>
-<span class="sourceLineNo">237</span>        for (TableName tableName : tableList) {<a name="line.237"></a>
-<span class="sourceLineNo">238</span>          String snapshotName =<a name="line.238"></a>
-<span class="sourceLineNo">239</span>              "snapshot_" + Long.toString(EnvironmentEdgeManager.currentTime()) + "_"<a name="line.239"></a>
-<span class="sourceLineNo">240</span>                  + tableName.getNamespaceAsString() + "_" + tableName.getQualifierAsString();<a name="line.240"></a>
-<span class="sourceLineNo">241</span><a name="line.241"></a>
-<span class="sourceLineNo">242</span>          snapshotTable(admin, tableName, snapshotName);<a name="line.242"></a>
-<span class="sourceLineNo">243</span>          backupInfo.setSnapshotName(tableName, snapshotName);<a name="line.243"></a>
-<span class="sourceLineNo">244</span>        }<a name="line.244"></a>
-<span class="sourceLineNo">245</span>        failStageIf(Stage.stage_3);<a name="line.245"></a>
-<span class="sourceLineNo">246</span>        // SNAPSHOT_COPY:<a name="line.246"></a>
-<span class="sourceLineNo">247</span>        // do snapshot copy<a name="line.247"></a>
-<span class="sourceLineNo">248</span>        LOG.debug("snapshot copy for " + backupId);<a name="line.248"></a>
-<span class="sourceLineNo">249</span>        snapshotCopy(backupInfo);<a name="line.249"></a>
-<span class="sourceLineNo">250</span>        // Updates incremental backup table set<a name="line.250"></a>
-<span class="sourceLineNo">251</span>        backupManager.addIncrementalBackupTableSet(backupInfo.getTables());<a name="line.251"></a>
-<span class="sourceLineNo">252</span><a name="line.252"></a>
-<span class="sourceLineNo">253</span>        // BACKUP_COMPLETE:<a name="line.253"></a>
-<span class="sourceLineNo">254</span>        // set overall backup status: complete. Here we make sure to complete the backup.<a name="line.254"></a>
-<span class="sourceLineNo">255</span>        // After this checkpoint, even if entering cancel process, will let the backup finished<a name="line.255"></a>
-<span class="sourceLineNo">256</span>        backupInfo.setState(BackupState.COMPLETE);<a name="line.256"></a>
-<span class="sourceLineNo">257</span>        // The table list in backupInfo is good for both full backup and incremental backup.<a name="line.257"></a>
-<span class="sourceLineNo">258</span>        // For incremental backup, it contains the incremental backup table set.<a name="line.258"></a>
-<span class="sourceLineNo">259</span>        backupManager.writeRegionServerLogTimestamp(backupInfo.getTables(), newTimestamps);<a name="line.259"></a>
-<span class="sourceLineNo">260</span><a name="line.260"></a>
-<span class="sourceLineNo">261</span>        HashMap&lt;TableName, HashMap&lt;String, Long&gt;&gt; newTableSetTimestampMap =<a name="line.261"></a>
-<span class="sourceLineNo">262</span>            backupManager.readLogTimestampMap();<a name="line.262"></a>
-<span class="sourceLineNo">263</span><a name="line.263"></a>
-<span class="sourceLineNo">264</span>        Long newStartCode =<a name="line.264"></a>
-<span class="sourceLineNo">265</span>            BackupUtils.getMinValue(BackupUtils<a name="line.265"></a>
-<span class="sourceLineNo">266</span>                .getRSLogTimestampMins(newTableSetTimestampMap));<a name="line.266"></a>
-<span class="sourceLineNo">267</span>        backupManager.writeBackupStartCode(newStartCode);<a name="line.267"></a>
-<span class="sourceLineNo">268</span>        failStageIf(Stage.stage_4);<a name="line.268"></a>
-<span class="sourceLineNo">269</span>        // backup complete<a name="line.269"></a>
-<span class="sourceLineNo">270</span>        completeBackup(conn, backupInfo, backupManager, BackupType.FULL, conf);<a name="line.270"></a>
-<span class="sourceLineNo">271</span><a name="line.271"></a>
-<span class="sourceLineNo">272</span>      } catch (Exception e) {<a name="line.272"></a>
-<span class="sourceLineNo">273</span><a name="line.273"></a>
-<span class="sourceLineNo">274</span>        if(autoRestoreOnFailure) {<a name="line.274"></a>
-<span class="sourceLineNo">275</span>          failBackup(conn, backupInfo, backupManager, e, "Unexpected BackupException : ",<a name="line.275"></a>
-<span class="sourceLineNo">276</span>            BackupType.FULL, conf);<a name="line.276"></a>
-<span class="sourceLineNo">277</span>        }<a name="line.277"></a>
-<span class="sourceLineNo">278</span>        throw new IOException(e);<a name="line.278"></a>
-<span class="sourceLineNo">279</span>      }<a name="line.279"></a>
-<span class="sourceLineNo">280</span>    }<a name="line.280"></a>
-<span class="sourceLineNo">281</span><a name="line.281"></a>
-<span class="sourceLineNo">282</span>  }<a name="line.282"></a>
+<span class="sourceLineNo">185</span>    public FullTableBackupClientForTest() {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>    }<a name="line.186"></a>
+<span class="sourceLineNo">187</span><a name="line.187"></a>
+<span class="sourceLineNo">188</span>    public FullTableBackupClientForTest(Connection conn, String backupId, BackupRequest request)<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        throws IOException {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>      super(conn, backupId, request);<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    }<a name="line.191"></a>
+<span class="sourceLineNo">192</span><a name="line.192"></a>
+<span class="sourceLineNo">193</span>    @Override<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    public void execute() throws IOException<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>      // Get the stage ID to fail on<a name="line.196"></a>
+<span class="sourceLineNo">197</span>      try (Admin admin = conn.getAdmin()) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>        // Begin BACKUP<a name="line.198"></a>
+<span class="sourceLineNo">199</span>        beginBackup(backupManager, backupInfo);<a name="line.199"></a>
+<span class="sourceLineNo">200</span>        failStageIf(Stage.stage_0);<a name="line.200"></a>
+<span class="sourceLineNo">201</span>        String savedStartCode = null;<a name="line.201"></a>
+<span class="sourceLineNo">202</span>        boolean firstBackup = false;<a name="line.202"></a>
+<span class="sourceLineNo">203</span>        // do snapshot for full table backup<a name="line.203"></a>
+<span class="sourceLineNo">204</span>        savedStartCode = backupManager.readBackupStartCode();<a name="line.204"></a>
+<span class="sourceLineNo">205</span>        firstBackup = savedStartCode == null || Long.parseLong(savedStartCode) == 0L;<a name="line.205"></a>
+<span class="sourceLineNo">206</span>        if (firstBackup) {<a name="line.206"></a>
+<span class="sourceLineNo">207</span>          // This is our first backup. Let's put some marker to system table so that we can hold the logs<a name="line.207"></a>
+<span class="sourceLineNo">208</span>          // while we do the backup.<a name="line.208"></a>
+<span class="sourceLineNo">209</span>          backupManager.writeBackupStartCode(0L);<a name="line.209"></a>
+<span class="sourceLineNo">210</span>        }<a name="line.210"></a>
+<span class="sourceLineNo">211</span>        failStageIf(Stage.stage_1);<a name="line.211"></a>
+<span class="sourceLineNo">212</span>        // We roll log here before we do the snapshot. It is possible there is duplicate data<a name="line.212"></a>
+<span class="sourceLineNo">213</span>        // in the log that is already in the snapshot. But if we do it after the snapshot, we<a name="line.213"></a>
+<span class="sourceLineNo">214</span>        // could have data loss.<a name="line.214"></a>
+<span class="sourceLineNo">215</span>        // A better approach is to do the roll log on each RS in the same global procedure as<a name="line.215"></a>
+<span class="sourceLineNo">216</span>        // the snapshot.<a name="line.216"></a>
+<span class="sourceLineNo">217</span>        LOG.info("Execute roll log procedure for full backup ...");<a name="line.217"></a>
+<span class="sourceLineNo">218</span><a name="line.218"></a>
+<span class="sourceLineNo">219</span>        Map&lt;String, String&gt; props = new HashMap&lt;String, String&gt;();<a name="line.219"></a>
+<span class="sourceLineNo">220</span>        props.put("backupRoot", backupInfo.getBackupRootDir());<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        admin.execProcedure(LogRollMasterProcedureManager.ROLLLOG_PROCEDURE_SIGNATURE,<a name="line.221"></a>
+<span class="sourceLineNo">222</span>          LogRollMasterProcedureManager.ROLLLOG_PROCEDURE_NAME, props);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>        failStageIf(Stage.stage_2);<a name="line.223"></a>
+<span class="sourceLineNo">224</span>        newTimestamps = backupManager.readRegionServerLastLogRollResult();<a name="line.224"></a>
+<span class="sourceLineNo">225</span>        if (firstBackup) {<a name="line.225"></a>
+<span class="sourceLineNo">226</span>          // Updates registered log files<a name="line.226"></a>
+<span class="sourceLineNo">227</span>          // We record ALL old WAL files as registered, because<a name="line.227"></a>
+<span class="sourceLineNo">228</span>          // this is a first full backup in the system and these<a name="line.228"></a>
+<span class="sourceLineNo">229</span>          // files are not needed for next incremental backup<a name="line.229"></a>
+<span class="sourceLineNo">230</span>          List&lt;String&gt; logFiles = BackupUtils.getWALFilesOlderThan(conf, newTimestamps);<a name="line.230"></a>
+<span class="sourceLineNo">231</span>          backupManager.recordWALFiles(logFiles);<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>        // SNAPSHOT_TABLES:<a name="line.234"></a>
+<span class="sourceLineNo">235</span>        backupInfo.setPhase(BackupPhase.SNAPSHOT);<a name="line.235"></a>
+<span class="sourceLineNo">236</span>        for (TableName tableName : tableList) {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>          String snapshotName =<a name="line.237"></a>
+<span class="sourceLineNo">238</span>              "snapshot_" + Long.toString(EnvironmentEdgeManager.currentTime()) + "_"<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                  + tableName.getNamespaceAsString() + "_" + tableName.getQualifierAsString();<a name="line.239"></a>
+<span class="sourceLineNo">240</span><a name="line.240"></a>
+<span class="sourceLineNo">241</span>          snapshotTable(admin, tableName, snapshotName);<a name="line.241"></a>
+<span class="sourceLineNo">242</span>          backupInfo.setSnapshotName(tableName, snapshotName);<a name="line.242"></a>
+<span class="sourceLineNo">243</span>        }<a name="line.243"></a>
+<span class="sourceLineNo">244</span>        failStageIf(Stage.stage_3);<a name="line.244"></a>
+<span class="sourceLineNo">245</span>        // SNAPSHOT_COPY:<a name="line.245"></a>
+<span class="sourceLineNo">246</span>        // do snapshot copy<a name="line.246"></a>
+<span class="sourceLineNo">247</span>        LOG.debug("snapshot copy for " + backupId);<a name="line.247"></a>
+<span class="sourceLineNo">248</span>        snapshotCopy(backupInfo);<a name="line.248"></a>
+<span class="sourceLineNo">249</span>        // Updates incremental backup table set<a name="line.249"></a>
+<span class="sourceLineNo">250</span>        backupManager.addIncrementalBackupTableSet(backupInfo.getTables());<a name="line.250"></a>
+<span class="sourceLineNo">251</span><a name="line.251"></a>
+<span class="sourceLineNo">252</span>        // BACKUP_COMPLETE:<a name="line.252"></a>
+<span class="sourceLineNo">253</span>        // set overall backup status: complete. Here we make sure to complete the backup.<a name="line.253"></a>
+<span class="sourceLineNo">254</span>        // After this checkpoint, even if entering cancel process, will let the backup finished<a name="line.254"></a>
+<span class="sourceLineNo">255</span>        backupInfo.setState(BackupState.COMPLETE);<a name="line.255"></a>
+<span class="sourceLineNo">256</span>        // The table list in backupInfo is good for both full backup and incremental backup.<a name="line.256"></a>
+<span class="sourceLineNo">257</span>        // For incremental backup, it contains the incremental backup table set.<a name="line.257"></a>
+<span class="sourceLineNo">258</span>        backupManager.writeRegionServerLogTimestamp(backupInfo.getTables(), newTimestamps);<a name="line.258"></a>
+<span class="sourceLineNo">259</span><a name="line.259"></a>
+<span class="sourceLineNo">260</span>        HashMap&lt;TableName, HashMap&lt;String, Long&gt;&gt; newTableSetTimestampMap =<a name="line.260"></a>
+<span class="sourceLineNo">261</span>            backupManager.readLogTimestampMap();<a name="line.261"></a>
+<span class="sourceLineNo">262</span><a name="line.262"></a>
+<span class="sourceLineNo">263</span>        Long newStartCode =<a name="line.263"></a>
+<span class="sourceLineNo">264</span>            BackupUtils.getMinValue(BackupUtils<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                .getRSLogTimestampMins(newTableSetTimestampMap));<a name="line.265"></a>
+<span class="sourceLineNo">266</span>        backupManager.writeBackupStartCode(newStartCode);<a name="line.266"></a>
+<span class="sourceLineNo">267</span>        failStageIf(Stage.stage_4);<a name="line.267"></a>
+<span class="sourceLineNo">268</span>        // backup complete<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        completeBackup(conn, backupInfo, backupManager, BackupType.FULL, conf);<a name="line.269"></a>
+<span class="sourceLineNo">270</span><a name="line.270"></a>
+<span class="sourceLineNo">271</span>      } catch (Exception e) {<a name="line.271"></a>
+<span class="sourceLineNo">272</span><a name="line.272"></a>
+<span class="sourceLineNo">273</span>        if(autoRestoreOnFailure) {<a name="line.273"></a>
+<span class="sourceLineNo">274</span>          failBackup(conn, backupInfo, backupManager, e, "Unexpected BackupException : ",<a name="line.274"></a>
+<span class="sourceLineNo">275</span>            BackupType.FULL, conf);<a name="line.275"></a>
+<span class="sourceLineNo">276</span>        }<a name="line.276"></a>
+<span class="sourceLineNo">277</span>        throw new IOException(e);<a name="line.277"></a>
+<span class="sourceLineNo">278</span>      }<a name="line.278"></a>
+<span class="sourceLineNo">279</span>    }<a name="line.279"></a>
+<span class="sourceLineNo">280</span><a name="line.280"></a>
+<span class="sourceLineNo">281</span>  }<a name="line.281"></a>
+<span class="sourceLineNo">282</span><a name="line.282"></a>
 <span class="sourceLineNo">283</span><a name="line.283"></a>
-<span class="sourceLineNo">284</span><a name="line.284"></a>
-<span class="sourceLineNo">285</span>  /**<a name="line.285"></a>
-<span class="sourceLineNo">286</span>   * @throws java.lang.Exception<a name="line.286"></a>
-<span class="sourceLineNo">287</span>   */<a name="line.287"></a>
-<span class="sourceLineNo">288</span>  @Before<a name="line.288"></a>
-<span class="sourceLineNo">289</span>  public void setUp() throws Exception {<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    if (setupIsDone) {<a name="line.290"></a>
-<span class="sourceLineNo">291</span>      return;<a name="line.291"></a>
-<span class="sourceLineNo">292</span>    }<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    if (secure) {<a name="line.293"></a>
-<span class="sourceLineNo">294</span>      // set the always on security provider<a name="line.294"></a>
-<span class="sourceLineNo">295</span>      UserProvider.setUserProviderForTesting(TEST_UTIL.getConfiguration(),<a name="line.295"></a>
-<span class="sourceLineNo">296</span>          HadoopSecurityEnabledUserProviderForTesting.class);<a name="line.296"></a>
-<span class="sourceLineNo">297</span>      // setup configuration<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      SecureTestUtil.enableSecurity(TEST_UTIL.getConfiguration());<a name="line.298"></a>
-<span class="sourceLineNo">299</span>    }<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    String coproc = conf1.get(CoprocessorHost.REGION_COPROCESSOR_CONF_KEY);<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    conf1.set(CoprocessorHost.REGION_COPROCESSOR_CONF_KEY, (coproc == null ? "" : coproc + ",") +<a name="line.301"></a>
-<span class="sourceLineNo">302</span>        BackupObserver.class.getName());<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    conf1.setBoolean(BackupRestoreConstants.BACKUP_ENABLE_KEY, true);<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    BackupManager.decorateMasterConfiguration(conf1);<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    BackupManager.decorateRegionServerConfiguration(conf1);<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    conf1.set(HConstants.ZOOKEEPER_ZNODE_PARENT, "/1");<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    // Set MultiWAL (with 2 default WAL files per RS)<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    conf1.set(WALFactory.WAL_PROVIDER, provider);<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    TEST_UTIL.startMiniCluster();<a name="line.309"></a>
-<span class="sourceLineNo">310</span><a name="line.310"></a>
-<span class="sourceLineNo">311</span>    if (useSecondCluster) {<a name="line.311"></a>
-<span class="sourceLineNo">312</span>      conf2 = HBaseConfiguration.create(conf1);<a name="line.312"></a>
-<span class="sourceLineNo">313</span>      conf2.set(HConstants.ZOOKEEPER_ZNODE_PARENT, "/2");<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      TEST_UTIL2 = new HBaseTestingUtility(conf2);<a name="line.314"></a>
-<span class="sourceLineNo">315</span>      TEST_UTIL2.setZkCluster(TEST_UTIL.getZkCluster());<a name="line.315"></a>
-<span class="sourceLineNo">316</span>      TEST_UTIL2.startMiniCluster();<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    }<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    conf1 = TEST_UTIL.getConfiguration();<a name="line.318"></a>
-<span class="sourceLineNo">319</span><a name="line.319"></a>
-<span class="sourceLineNo">320</span>    TEST_UTIL.startMiniMapReduceCluster();<a name="line.320"></a>
-<span class="sourceLineNo">321</span>    BACKUP_ROOT_DIR =<a name="line.321"></a>
-<span class="sourceLineNo">322</span>        new Path ( new Path(TEST_UTIL.getConfiguration().get("fs.defaultFS")),<a name="line.322"></a>
-<span class="sourceLineNo">323</span>          BACKUP_ROOT_DIR).toString();<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    LOG.info("ROOTDIR " + BACKUP_ROOT_DIR);<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    if (useSecondCluster) {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>      BACKUP_REMOTE_ROOT_DIR =<a name="line.326"></a>
-<span class="sourceLineNo">327</span>          new Path ( new Path(TEST_UTIL2.getConfiguration().get("fs.defaultFS"))<a name="line.327"></a>
-<span class="sourceLineNo">328</span>          + BACKUP_REMOTE_ROOT_DIR).toString();<a name="line.328"></a>
-<span class="sourceLineNo">329</span>      LOG.info("REMOTE ROOTDIR " + BACKUP_REMOTE_ROOT_DIR);<a name="line.329"></a>
-<span class="sourceLineNo">330</span>    }<a name="line.330"></a>
-<span class="sourceLineNo">331</span>    createTables();<a name="line.331"></a>
-<span class="sourceLineNo">332</span>    populateFromMasterConfig(TEST_UTIL.getHBaseCluster().getMaster().getConfiguration(), conf1);<a name="line.332"></a>
-<span class="sourceLineNo">333</span>    setupIsDone = true;<a name="line.333"></a>
-<span class="sourceLineNo">334</span>  }<a name="line.334"></a>
-<span class="sourceLineNo">335</span><a name="line.335"></a>
-<span class="sourceLineNo">336</span>  private static void populateFromMasterConfig(Configuration masterConf, Configuration conf) {<a name="line.336"></a>
-<span class="sourceLineNo">337</span>    Iterator&lt;Entry&lt;String, String&gt;&gt; it = masterConf.iterator();<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    while (it.hasNext()) {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>      Entry&lt;String, String&gt; e = it.next();<a name="line.339"></a>
-<span class="sourceLineNo">340</span>      conf.set(e.getKey(), e.getValue());<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    }<a name="line.341"></a>
-<span class="sourceLineNo">342</span>  }<a name="line.342"></a>
-<span class="sourceLineNo">343</span><a name="line.343"></a>
-<span class="sourceLineNo">344</span>  /**<a name="line.344"></a>
-<span class="sourceLineNo">345</span>   * @throws java.lang.Exception<a name="line.345"></a>
-<span class="sourceLineNo">346</span>   */<a name="line.346"></a>
-<span class="sourceLineNo">347</span>  @AfterClass<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  public static void tearDown() throws Exception {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    try{<a name="line.349"></a>
-<span class="sourceLineNo">350</span>      SnapshotTestingUtils.deleteAllSnapshots(TEST_UTIL.getHBaseAdmin());<a name="line.350"></a>
-<span class="sourceLineNo">351</span>    } catch (Exception e) {<a name="line.351"></a>
+<span class="sourceLineNo">284</span>  /**<a name="line.284"></a>
+<span class="sourceLineNo">285</span>   * @throws java.lang.Exception<a name="line.285"></a>
+<span class="sourceLineNo">286</span>   */<a name="line.286"></a>
+<span class="sourceLineNo">287</span>  @Before<a name="line.287"></a>
+<span class="sourceLineNo">288</span>  public void setUp() throws Exception {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>    if (setupIsDone) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      return;<a name="line.290"></a>
+<span class="sourceLineNo">291</span>    }<a name="line.291"></a>
+<span class="sourceLineNo">292</span>    if (secure) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>      // set the always on security provider<a name="line.293"></a>
+<span class="sourceLineNo">294</span>      UserProvider.setUserProviderForTesting(TEST_UTIL.getConfiguration(),<a name="line.294"></a>
+<span class="sourceLineNo">295</span>          HadoopSecurityEnabledUserProviderForTesting.class);<a name="line.295"></a>
+<span class="sourceLineNo">296</span>      // setup configuration<a name="line.296"></a>
+<span class="sourceLineNo">297</span>      SecureTestUtil.enableSecurity(TEST_UTIL.getConfiguration());<a name="line.297"></a>
+<span class="sourceLineNo">298</span>    }<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    conf1.setBoolean(BackupRestoreConstants.BACKUP_ENABLE_KEY, true);<a name="line.299"></a>
+<span class="sourceLineNo">300</span>    BackupManager.decorateMasterConfiguration(conf1);<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    BackupManager.decorateRegionServerConfiguration(conf1);<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    conf1.set(HConstants.ZOOKEEPER_ZNODE_PARENT, "/1");<a name="line.302"></a>
+<span class="sourceLineNo">303</span>    // Set MultiWAL (with 2 default WAL files per RS)<a name="line.303"></a>
+<span class="sourceLineNo">304</span>    conf1.set(WALFactory.WAL_PROVIDER, provider);<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    TEST_UTIL.startMiniCluster();<a name="line.305"></a>
+<span class="sourceLineNo">306</span><a name="line.306"></a>
+<span class="sourceLineNo">307</span>    if (useSecondCluster) {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>      conf2 = HBaseConfiguration.create(conf1);<a name="line.308"></a>
+<span class="sourceLineNo">309</span>      conf2.set(HConstants.ZOOKEEPER_ZNODE_PARENT, "/2");<a name="line.309"></a>
+<span class="sourceLineNo">310</span>      TEST_UTIL2 = new HBaseTestingUtility(conf2);<a name="line.310"></a>
+<span class="sourceLineNo">311</span>      TEST_UTIL2.setZkCluster(TEST_UTIL.getZkCluster());<a name="line.311"></a>
+<span class="sourceLineNo">312</span>      TEST_UTIL2.startMiniCluster();<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    }<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    conf1 = TEST_UTIL.getConfiguration();<a name="line.314"></a>
+<span class="sourceLineNo">315</span><a name="line.315"></a>
+<span class="sourceLineNo">316</span>    TEST_UTIL.startMiniMapReduceCluster();<a name="line.316"></a>
+<span class="sourceLineNo">317</span>    BACKUP_ROOT_DIR =<a name="line.317"></a>
+<span class="sourceLineNo">318</span>        new Path ( new Path(TEST_UTIL.getConfiguration().get("fs.defaultFS")),<a name="line.318"></a>
+<span class="sourceLineNo">319</span>          BACKUP_ROOT_DIR).toString();<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    LOG.info("ROOTDIR " + BACKUP_ROOT_DIR);<a name="line.320"></a>
+<span class="sourceLineNo">321</span>    if (useSecondCluster) {<a name="line.321"></a>
+<span class="sourceLineNo">322</span>      BACKUP_REMOTE_ROOT_DIR =<a name="line.322"></a>
+<span class="sourceLineNo">323</span>          new Path ( new Path(TEST_UTIL2.getConfiguration().get("fs.defaultFS"))<a name="line.323"></a>
+<span class="sourceLineNo">324</span>          + BACKUP_REMOTE_ROOT_DIR).toString();<a name="line.324"></a>
+<span class="sourceLineNo">325</span>      LOG.info("REMOTE ROOTDIR " + BACKUP_REMOTE_ROOT_DIR);<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    }<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    createTables();<a name="line.327"></a>
+<span class="sourceLineNo">328</span>    populateFromMasterConfig(TEST_UTIL.getHBaseCluster().getMaster().getConfiguration(), conf1);<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    setupIsDone = true;<a name="line.329"></a>
+<span class="sourceLineNo">330</span>  }<a name="line.330"></a>
+<span class="sourceLineNo">331</span><a name="line.331"></a>
+<span class="sourceLineNo">332</span>  private static void populateFromMasterConfig(Configuration masterConf, Configuration conf) {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>    Iterator&lt;Entry&lt;String, String&gt;&gt; it = masterConf.iterator();<a name="line.333"></a>
+<span class="sourceLineNo">334</span>    while (it.hasNext()) {<a name="line.334"></a>
+<span class="sourceLineNo">335</span>      Entry&lt;String, String&gt; e = it.next();<a name="line.335"></a>
+<span class="sourceLineNo">336</span>      conf.set(e.getKey(), e.getValue());<a name="line.336"></a>
+<span class="sourceLineNo">337</span>    }<a name="line.337"></a>
+<span class="sourceLineNo">338</span>  }<a name="line.338"></a>
+<span class="sourceLineNo">339</span><a name="line.339"></a>
+<span class="sourceLineNo">340</span>  /**<a name="line.340"></a>
+<span class="sourceLineNo">341</span>   * @throws java.lang.Exception<a name="line.341"></a>
+<span class="sourceLineNo">342</span>   */<a name="line.342"></a>
+<span class="sourceLineNo">343</span>  @AfterClass<a name="line.343"></a>
+<span class="sourceLineNo">344</span>  public static void tearDown() throws Exception {<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    try{<a name="line.345"></a>
+<span class="sourceLineNo">346</span>      SnapshotTestingUtils.deleteAllSnapshots(TEST_UTIL.getHBaseAdmin());<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    } catch (Exception e) {<a name="line.347"></a>
+<span class="sourceLineNo">348</span>    }<a name="line.348"></a>
+<span class="sourceLineNo">349</span>    SnapshotTestingUtils.deleteArchiveDirectory(TEST_UTIL);<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    if (useSecondCluster) {<a name="line.350"></a>
+<span class="sourceLineNo">351</span>      TEST_UTIL2.shutdownMiniCluster();<a name="line.351"></a>
 <span class="sourceLineNo">352</span>    }<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    SnapshotTestingUtils.deleteArchiveDirectory(TEST_UTIL);<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    if (useSecondCluster) {<a name="line.354"></a>
-<span class="sourceLineNo">355</span>      TEST_UTIL2.shutdownMiniCluster();<a name="line.355"></a>
-<span class="sourceLineNo">356</span>    }<a name="line.356"></a>
-<span class="sourceLineNo">357</span>    TEST_UTIL.shutdownMiniCluster();<a name="line.357"></a>
-<span class="sourceLineNo">358</span>    TEST_UTIL.shutdownMiniMapReduceCluster();<a name="line.358"></a>
-<span class="sourceLineNo">359</span>  }<a name="line.359"></a>
-<span class="sourceLineNo">360</span><a name="line.360"></a>
-<span class="sourceLineNo">361</span>  HTable insertIntoTable(Connection conn, TableName table, byte[] family, int id, int numRows)<a name="line.361"></a>
-<span class="sourceLineNo">362</span>      throws IOException {<a name="line.362"></a>
-<span class="sourceLineNo">363</span>    HTable t = (HTable) conn.getTable(table);<a name="line.363"></a>
-<span class="sourceLineNo">364</span>    Put p1;<a name="line.364"></a>
-<span class="sourceLineNo">365</span>    for (int i = 0; i &lt; numRows; i++) {<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      p1 = new Put(Bytes.toBytes("row-" + table + "-" + id + "-" + i));<a name="line.366"></a>
-<span class="sourceLineNo">367</span>      p1.addColumn(family, qualName, Bytes.toBytes("val" + i));<a name="line.367"></a>
-<span class="sourceLineNo">368</span>      t.put(p1);<a name="line.368"></a>
-<span class="sourceLineNo">369</span>    }<a name="line.369"></a>
-<span class="sourceLineNo">370</span>    return t;<a name="line.370"></a>
-<span class="sourceLineNo">371</span>  }<a name="line.371"></a>
-<span class="sourceLineNo">372</span><a name="line.372"></a>
-<span class="sourceLineNo">373</span><a name="line.373"></a>
-<span class="sourceLineNo">374</span>  protected BackupRequest createBackupRequest(BackupType type,<a name="line.374"></a>
-<span class="sourceLineNo">375</span>      List&lt;TableName&gt; tables, String path) {<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    BackupRequest.Builder builder = new BackupRequest.Builder();<a name="line.376"></a>
-<span class="sourceLineNo">377</span>    BackupRequest request = builder.withBackupType(type)<a name="line.377"></a>
-<span class="sourceLineNo">378</span>                                    .withTableList(tables)<a name="line.378"></a>
-<span class="sourceLineNo">379</span>                                    .withTargetRootDir(path).build();<a name="line.379"></a>
-<span class="sourceLineNo">380</span>    return request;<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>  protected String backupTables(BackupType type, List&lt;TableName&gt; tables, String path)<a name="line.383"></a>
-<span class="sourceLineNo">384</span>      throws IOException {<a name="line.384"></a>
-<span class="sourceLineNo">385</span>    Connection conn = null;<a name="line.385"></a>
-<span class="sourceLineNo">386</span>    BackupAdmin badmin = null;<a name="line.386"></a>
-<span class="sourceLineNo">387</span>    String backupId;<a name="line.387"></a>
-<span class="sourceLineNo">388</span>    try {<a name="line.388"></a>
-<span class="sourceLineNo">389</span>      conn = ConnectionFactory.createConnection(conf1);<a name="line.389"></a>
-<span class="sourceLineNo">390</span>      badmin = new BackupAdminImpl(conn);<a name="line.390"></a>
-<span class="sourceLineNo">391</span>      BackupRequest request = createBackupRequest(type, tables, path);<a name="line.391"></a>
-<span class="sourceLineNo">392</span>      backupId = badmin.backupTables(request);<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    } finally {<a name="line.393"></a>
-<span class="sourceLineNo">394</span>      if (badmin != null) {<a name="line.394"></a>
-<span class="sourceLineNo">395</span>        badmin.close();<a name="line.395"></a>
-<span class="sourceLineNo">396</span>      }<a name="line.396"></a>
-<span class="sourceLineNo">397</span>      if (conn != null) {<a name="line.397"></a>
-<span class="sourceLineNo">398</span>        conn.close();<a name="line.398"></a>
-<span class="sourceLineNo">399</span>      }<a name="line.399"></a>
-<span class="sourceLineNo">400</span>    }<a name="line.400"></a>
-<span class="sourceLineNo">401</span>    return backupId;<a name="line.401"></a>
+<span class="sourceLineNo">353</span>    TEST_UTIL.shutdownMiniCluster();<a name="line.353"></a>
+<span class="sourceLineNo">354</span>    TEST_UTIL.shutdownMiniMapReduceCluster();<a name="line.354"></a>
+<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>  HTable insertIntoTable(Connection conn, TableName table, byte[] family, int id, int numRows)<a name="line.357"></a>
+<span class="sourceLineNo">358</span>      throws IOException {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>    HTable t = (HTable) conn.getTable(table);<a name="line.359"></a>
+<span class="sourceLineNo">360</span>    Put p1;<a name="line.360"></a>
+<span class="sourceLineNo">361</span>    for (int i = 0; i &lt; numRows; i++) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>      p1 = new Put(Bytes.toBytes("row-" + table + "-" + id + "-" + i));<a name="line.362"></a>
+<span class="sourceLineNo">363</span>      p1.addColumn(family, qualName, Bytes.toBytes("val" + i));<a name="line.363"></a>
+<span class="sourceLineNo">364</span>      t.put(p1);<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    }<a name="line.365"></a>
+<span class="sourceLineNo">366</span>    return t;<a name="line.366"></a>
+<span class="sourceLineNo">367</span>  }<a name="line.367"></a>
+<span class="sourceLineNo">368</span><a name="line.368"></a>
+<span class="sourceLineNo">369</span><a name="line.369"></a>
+<span class="sourceLineNo">370</span>  protected BackupRequest createBackupRequest(BackupType type,<a name="line.370"></a>
+<span class="sourceLineNo">371</span>      List&lt;TableName&gt; tables, String path) {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>    BackupRequest.Builder builder = new BackupRequest.Builder();<a name="line.372"></a>
+<span class="sourceLineNo">373</span>    BackupRequest request = builder.withBackupType(type)<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                                    .withTableList(tables)<a name="line.374"></a>
+<span class="sourceLineNo">375</span>                                    .withTargetRootDir(path).build();<a name="line.375"></a>
+<span class="sourceLineNo">376</span>    return request;<a name="line.376"></a>
+<span class="sourceLineNo">377</span>  }<a name="line.377"></a>
+<span class="sourceLineNo">378</span><a name="line.378"></a>
+<span class="sourceLineNo">379</span>  protected String backupTables(BackupType type, List&lt;TableName&gt; tables, String path)<a name="line.379"></a>
+<span class="sourceLineNo">380</span>      throws IOException {<a name="line.380"></a>
+<span class="sourceLineNo">381</span>    Connection conn = null;<a name="line.381"></a>
+<span class="sourceLineNo">382</span>    BackupAdmin badmin = null;<a name="line.382"></a>
+<span class="sourceLineNo">383</span>    String backupId;<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    try {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>      conn = ConnectionFactory.createConnection(conf1);<a name="line.385"></a>
+<span class="sourceLineNo">386</span>      badmin = new BackupAdminImpl(conn);<a name="line.386"></a>
+<span class="sourceLineNo">387</span>      BackupRequest request = createBackupRequest(type, tables, path);<a name="line.387"></a>
+<span class="sourceLineNo">388</span>      backupId = badmin.backupTables(request);<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    } finally {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>      if (badmin != null) {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        badmin.close();<a name="line.391"></a>
+<span class="sourceLineNo">392</span>      }<a name="line.392"></a>
+<span class="sourceLineNo">393</span>      if (conn != null) {<a name="line.393"></a>
+<span class="sourceLineNo">394</span>        conn.close();<a name="line.394"></a>
+<span class="sourceLineNo">395</span>      }<a name="line.395"></a>
+<span class="sourceLineNo">396</span>    }<a name="line.396"></a>
+<span class="sourceLineNo">397</span>    return backupId;<a name="line.397"></a>
+<span class="sourceLineNo">398</span>  }<a name="line.398"></a>
+<span class="sourceLineNo">399</span><a name="line.399"></a>
+<span class="sourceLineNo">400</span>  protected String fullTableBackup(List&lt;TableName&gt; tables) throws IOException {<a name="line.400"></a>
+<span class="sourceLineNo">401</span>    return backupTables(BackupType.FULL, tables, BACKUP_ROOT_DIR);<a name="line.401"></a>
 <span class="sourceLineNo">402</span>  }<a name="line.402"></a>
 <span class="sourceLineNo">403</span><a name="line.403"></a>
-<span class="sourceLineNo">404</span>  protected String fullTableBackup(List&lt;TableName&gt; tables) throws IOException {<a name="line.404"></a>
-<span class="sourceLineNo">405</span>    return backupTables(BackupType.FULL, tables, BACKUP_ROOT_DIR);<a name="line.405"></a>
+<span class="sourceLineNo">404</span>  protected String incrementalTableBackup(List&lt;TableName&gt; tables) throws IOException {<a name="line.404"></a>
+<span class="sourceLineNo">405</span>    return backupTables(BackupType.INCREMENTAL, tables, BACKUP_ROOT_DIR);<a name="line.405"></a>
 <span class="sourceLineNo">406</span>  }<a name="line.406"></a>
 <span class="sourceLineNo">407</span><a name="line.407"></a>
-<span class="sourceLineNo">408</span>  protected String incrementalTableBackup(List&lt;TableName&gt; tables) throws IOException {<a name="line.408"></a>
-<span class="sourceLineNo">409</span>    return backupTables(BackupType.INCREMENTAL, tables, BACKUP_ROOT_DIR);<a name="line.409"></a>
-<span class="sourceLineNo">410</span>  }<a name="line.410"></a>
-<span class="sourceLineNo">411</span><a name="line.411"></a>
-<span class="sourceLineNo">412</span>  protected static void loadTable(Table table) throws Exception {<a name="line.412"></a>
-<span class="sourceLineNo">413</span><a name="line.413"></a>
-<span class="sourceLineNo">414</span>    Put p; // 100 + 1 row to t1_syncup<a name="line.414"></a>
-<span class="sourceLineNo">415</span>    for (int i = 0; i &lt; NB_ROWS_IN_BATCH; i++) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>      p = new Put(Bytes.toBytes("row" + i));<a name="line.416"></a>
-<span class="sourceLineNo">417</span>      p.setDurability(Durability.SKIP_WAL);<a name="line.417"></a>
-<span class="sourceLineNo">418</span>      p.addColumn(famName, qualName, Bytes.toBytes("val" + i));<a name="line.418"></a>
-<span class="sourceLineNo">419</span>      table.put(p);<a name="line.419"></a>
-<span class="sourceLineNo">420</span>    }<a name="line.420"></a>
-<span class="sourceLineNo">421</span>  }<a name="line.421"></a>
-<span class="sourceLineNo">422</span><a name="line.422"></a>
-<span class="sourceLineNo">423</span>  protected static void createTables() throws Exception {<a name="line.423"></a>
+<span class="sourceLineNo">408</span>  protected static void loadTable(Table table) throws Exception {<a name="line.408"></a>
+<span class="sourceLineNo">409</span><a name="line.409"></a>
+<span class="sourceLineNo">410</span>    Put p; // 100 + 1 row to t1_syncup<a name="line.410"></a>
+<span class="sourceLineNo">411</span>    for (int i = 0; i &lt; NB_ROWS_IN_BATCH; i++) {<a name="line.411"></a>
+<span class="sourceLineNo">412</span>      p = new Put(Bytes.toBytes("row" + i));<a name="line.412"></a>
+<span class="sourceLineNo">413</span>      p.setDurability(Durability.SKIP_WAL);<a name="line.413"></a>
+<span class="sourceLineNo">414</span>      p.addColumn(famName, qualName, Bytes.toBytes("val" + i));<a name="line.414"></a>
+<span class="sourceLineNo">415</span>      table.put(p);<a name="line.415"></a>
+<span class="sourceLineNo">416</span>    }<a name="line.416"></a>
+<span class="sourceLineNo">417</span>  }<a name="line.417"></a>
+<span class="sourceLineNo">418</span><a name="line.418"></a>
+<span class="sourceLineNo">419</span>  protected static void createTables() throws Exception {<a name="line.419"></a>
+<span class="sourceLineNo">420</span><a name="line.420"></a>
+<span class="sourceLineNo">421</span>    long tid = System.currentTimeMillis();<a name="line.421"></a>
+<span class="sourceLineNo">422</span>    table1 = TableName.valueOf("ns1:test-" + tid);<a name="line.422"></a>
+<span class="sourceLineNo">423</span>    HBaseAdmin ha = TEST_UTIL.getHBaseAdmin();<a name="line.423"></a>
 <span class="sourceLineNo">424</span><a name="line.424"></a>
-<span class="sourceLineNo">425</span>    long tid = System.currentTimeMillis();<a name="line.425"></a>
-<span class="sourceLineNo">426</span>    table1 = TableName.valueOf("ns1:test-" + tid);<a name="line.426"></a>
-<span class="sourceLineNo">427</span>    HBaseAdmin ha = TEST_UTIL.getHBaseAdmin();<a name="line.427"></a>
-<span class="sourceLineNo">428</span><a name="line.428"></a>
-<span class="sourceLineNo">429</span>    // Create namespaces<a name="line.429"></a>
-<span class="sourceLineNo">430</span>    NamespaceDescriptor desc1 = NamespaceDescriptor.create("ns1").build();<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    NamespaceDescriptor desc2 = NamespaceDescriptor.create("ns2").build();<a name="line.431"></a>
-<span class="sourceLineNo">432</span>    NamespaceDescriptor desc3 = NamespaceDescriptor.create("ns3").build();<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    NamespaceDescriptor desc4 = NamespaceDescriptor.create("ns4").build();<a name="line.433"></a>
-<span class="sourceLineNo">434</span><a name="line.434"></a>
-<span class="sourceLineNo">435</span>    ha.createNamespace(desc1);<a name="line.435"></a>
-<span class="sourceLineNo">436</span>    ha.createNamespace(desc2);<a name="line.436"></a>
-<span class="sourceLineNo">437</span>    ha.createNamespace(desc3);<a name="line.437"></a>
-<span class="sourceLineNo">438</span>    ha.createNamespace(desc4);<a name="line.438"></a>
-<span class="sourceLineNo">439</span><a name="line.439"></a>
-<span class="sourceLineNo">440</span>    HTableDescriptor desc = new HTableDescriptor(table1);<a name="line.440"></a>
-<span class="sourceLineNo">441</span>    HColumnDescriptor fam = new HColumnDescriptor(famName);<a name="line.441"></a>
-<span class="sourceLineNo">442</span>    desc.addFamily(fam);<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    ha.createTable(desc);<a name="line.443"></a>
-<span class="sourceLineNo">444</span>    table1Desc = desc;<a name="line.444"></a>
-<span class="sourceLineNo">445</span>    Connection conn = ConnectionFactory.createConnection(conf1);<a name="line.445"></a>
-<span class="sourceLineNo">446</span>    Table table = conn.getTable(table1);<a name="line.446"></a>
-<span class="sourceLineNo">447</span>    loadTable(table);<a name="line.447"></a>
-<span class="sourceLineNo">448</span>    table.close();<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    table2 = TableName.valueOf("ns2:test-" + tid + 1);<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    desc = new HTableDescriptor(table2);<a name="line.450"></a>
-<span class="sourceLineNo">451</span>    desc.addFamily(fam);<a name="line.451"></a>
-<span class="sourceLineNo">452</span>    ha.createTable(desc);<a name="line.452"></a>
-<span class="sourceLineNo">453</span>    table = conn.getTable(table2);<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    loadTable(table);<a name="line.454"></a>
-<span class="sourceLineNo">455</span>    table.close();<a name="line.455"></a>
-<span class="sourceLineNo">456</span>    table3 = TableName.valueOf("ns3:test-" + tid + 2);<a name="line.456"></a>
-<span class="sourceLineNo">457</span>    table = TEST_UTIL.createTable(table3, famName);<a name="line.457"></a>
-<span class="sourceLineNo">458</span>    table.close();<a name="line.458"></a>
-<span class="sourceLineNo">459</span>    table4 = TableName.valueOf("ns4:test-" + tid + 3);<a name="line.459"></a>
-<span class="sourceLineNo">460</span>    table = TEST_UTIL.createTable(table4, famName);<a name="line.460"></a>
-<span class="sourceLineNo">461</span>    table.close();<a name="line.461"></a>
-<span class="sourceLineNo">462</span>    ha.close();<a name="line.462"></a>
-<span class="sourceLineNo">463</span>    conn.close();<a name="line.463"></a>
-<span class="sourceLineNo">464</span>  }<a name="line.464"></a>
-<span class="sourceLineNo">465</span><a name="line.465"></a>
-<span class="sourceLineNo">466</span>  protected boolean checkSucceeded(String backupId) throws IOException {<a name="line.466"></a>
-<span class="sourceLineNo">467</span>    BackupInfo status = getBackupInfo(backupId);<a name="line.467"></a>
-<span class="sourceLineNo">468</span>    if (status == null) return false;<a name="line.468"></a>
-<span class="sourceLineNo">469</span>    return status.getState() == BackupState.COMPLETE;<a name="line.469"></a>
-<span class="sourceLineNo">470</span>  }<a name="line.470"></a>
-<span class="sourceLineNo">471</span><a name="line.471"></a>
-<span class="sourceLineNo">472</span>  protected boolean checkFailed(String backupId) throws IOException {<a name="line.472"></a>
-<span class="sourceLineNo">473</span>    BackupInfo status = getBackupInfo(backupId);<a name="line.473"></a>
-<span class="sourceLineNo">474</span>    if (status == null) return false;<a name="line.474"></a>
-<span class="sourceLineNo">475</span>    return status.getState() == BackupState.FAILED;<a name="line.475"></a>
-<span class="sourceLineNo">476</span>  }<a name="line.476"></a>
-<span class="sourceLineNo">477</span><a name="line.477"></a>
-<span class="sourceLineNo">478</span>  private BackupInfo getBackupInfo(String backupId) throws IOException {<a name="line.478"></a>
-<span class="sourceLineNo">479</span>    try (BackupSystemTable table = new BackupSystemTable(TEST_UTIL.getConnection())) {<a name="line.479"></a>
-<span class="sourceLineNo">480</span>      BackupInfo status = table.readBackupInfo(backupId);<a name="line.480"></a>
-<span class="sourceLineNo">481</span>      return status;<a name="line.481"></a>
-<span class="sourceLineNo">482</span>    }<a name="line.482"></a>
+<span class="sourceLineNo">425</span>    // Create namespaces<a name="line.425"></a>
+<span class="sourceLineNo">426</span>    NamespaceDescriptor desc1 = NamespaceDescriptor.create("ns1").build();<a name="line.426"></a>
+<span class="sourceLineNo">427</span>    NamespaceDescriptor desc2 = NamespaceDescriptor.create("ns2").build();<a name="line.427"></a>
+<span class="sourceLineNo">428</span>    NamespaceDescriptor desc3 = NamespaceDescriptor.create("ns3").build();<a name="line.428"></a>
+<span class="sourceLineNo">429</span>    NamespaceDescriptor desc4 = NamespaceDescriptor.create("ns4").build();<a name="line.429"></a>
+<span class="sourceLineNo">430</span><a name="line.430"></a>
+<span class="sourceLineNo">431</span>    ha.createNamespace(desc1);<a name="line.431"></a>
+<span class="sourceLineNo">432</span>    ha.createNamespace(desc2);<a name="line.432"></a>
+<span class="sourceLineNo">433</span>    ha.createNamespace(desc3);<a name="line.433"></a>
+<span class="sourceLineNo">434</span>    ha.createNamespace(desc4);<a name="line.434"></a>
+<span class="sourceLineNo">435</span><a name="line.435"></a>
+<span class="sourceLineNo">436</span>    HTableDescriptor desc = new HTableDescriptor(table1);<a name="line.436"></a>
+<span class="sourceLineNo">437</span>    HColumnDescriptor fam = new HColumnDescriptor(famName);<a name="line.437"></a>
+<span class="sourceLineNo">438</span>    desc.addFamily(fam);<a name="line.438"></a>
+<span class="sourceLineNo">439</span>    ha.createTable(desc);<a name="line.439"></a>
+<span class="sourceLineNo">440</span>    table1Desc = desc;<a name="line.440"></a>
+<span class="sourceLineNo">441</span>    Connection conn = ConnectionFactory.createConnection(conf1);<a name="line.441"></a>
+<span class="sourceLineNo">442</span>    Table table = conn.getTable(table1);<a name="line.442"></a>
+<span class="sourceLineNo">443</span>    loadTable(table);<a name="line.443"></a>
+<span class="sourceLineNo">444</span>    table.close();<a name="line.444"></a>
+<span class="sourceLineNo">445</span>    table2 = TableName.valueOf("ns2:test-" + tid + 1);<a name="line.445"></a>
+<span class="sourceLineNo">446</span>    desc = new HTableDescriptor(table2);<a name="line.446"></a>
+<span class="sourceLineNo">447</span>    desc.addFamily(fam);<a name="line.447"></a>
+<span class="sourceLineNo">448</span>    ha.createTable(desc);<a name="line.448"></a>
+<span class="sourceLineNo">449</span>    table = conn.getTable(table2);<a name="line.449"></a>
+<span class="sourceLineNo">450</span>    loadTable(table);<a name="line.450"></a>
+<span class="sourceLineNo">451</span>    table.close();<a name="line.451"></a>
+<span class="sourceLineNo">452</span>    table3 = TableName.valueOf("ns3:test-" + tid + 2);<a name="line.452"></a>
+<span class="sourceLineNo">453</span>    table = TEST_UTIL.createTable(table3, famName);<a name="line.453"></a>
+<span class="sourceLineNo">454</span>    table.close();<a name="line.454"></a>
+<span class="sourceLineNo">455</span>    table4 = TableName.valueOf("ns4:test-" + tid + 3);<a name="line.455"></a>
+<span class="sourceLineNo">456</span>    table = TEST_UTIL.createTable(table4, famName);<a name="line.456"></a>
+<span class="sourceLineNo">457</span>    table.close();<a name="line.457"></a>
+<span class="sourceLineNo">458</span>    ha.close();<a name="line.458"></a>
+<span class="sourceLineNo">459</span>    conn.close();<a name="line.459"></a>
+<span class="sourceLineNo">460</span>  }<a name="line.460"></a>
+<span class="sourceLineNo">461</span><a name="line.461"></a>
+<span class="sourceLineNo">462</span>  protected boolean checkSucceeded(String backupId) throws IOException {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>    BackupInfo status = getBackupInfo(backupId);<a name="line.463"></a>
+<span class="sourceLineNo">464</span>    if (status == null) return false;<a name="line.464"></a>
+<span class="sourceLineNo">465</span>    return status.getState() == BackupState.COMPLETE;<a name="line.465"></a>
+<span class="sourceLineNo">466</span>  }<a name="line.466"></a>
+<span class="sourceLineNo">467</span><a name="line.467"></a>
+<span class="sourceLineNo">468</span>  protected boolean checkFailed(String backupId) throws IOException {<a name="line.468"></a>
+<span class="sourceLineNo">469</span>    BackupInfo status = getBackupInfo(backupId);<a name="line.469"></a>
+<span class="sourceLineNo">470</span>    if (status == null) return false;<a name="line.470"></a>
+<span class="sourceLineNo">471</span>    return status.getState() == BackupState.FAILED;<a name="line.471"></a>
+<span class="sourceLineNo">472</span>  }<a name="line.472"></a>
+<span class="sourceLineNo">473</span><a name="line.473"></a>
+<span class="sourceLineNo">474</span>  private BackupInfo getBackupInfo(String backupId) throws IOException {<a name="line.474"></a>
+<span class="sourceLineNo">475</span>    try (BackupSystemTable table = new BackupSystemTable(TEST_UTIL.getConnection())) {<a name="line.475"></a>
+<span class="sourceLineNo">476</span>      BackupInfo status = table.readBackupInfo(backupId);<a name="line.476"></a>
+<span class="sourceLineNo">477</span>      return status;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>    }<a name="line.478"></a>
+<span class="sourceLineNo">479</span>  }<a name="line.479"></a>
+<span class="sourceLineNo">480</span><a name="line.480"></a>
+<span class="sourceLineNo">481</span>  protected BackupAdmin getBackupAdmin() throws IOException {<a name="line.481"></a>
+<span class="sourceLineNo">482</span>    return new BackupAdminImpl(TEST_UTIL.getConnection());<a name="line.482"></a>
 <span class="sourceLineNo">483</span>  }<a name="line.483"></a>
 <span class="sourceLineNo">484</span><a name="line.484"></a>
-<span class="sourceLineNo">485</span>  protected BackupAdmin getBackupAdmin() throws IOException {<a name="line.485"></a>
-<span class="sourceLineNo">486</span>    return new BackupAdminImpl(TEST_UTIL.getConnection());<a name="line.486"></a>
-<span class="sourceLineNo">487</span>  }<a name="line.487"></a>
-<span class="sourceLineNo">488</span><a name="line.488"></a>
-<span class="sourceLineNo">489</span>  /**<a name="line.489"></a>
-<span class="sourceLineNo">490</span>   * Helper method<a name="line.490"></a>
-<span class="sourceLineNo">491</span>   */<a name="line.491"></a>
-<span class="sourceLineNo">492</span>  protected List&lt;TableName&gt; toList(String... args) {<a name="line.492"></a>
-<span class="sourceLineNo">493</span>    List&lt;TableName&gt; ret = new ArrayList&lt;&gt;();<a name="line.493"></a>
-<span class="sourceLineNo">494</span>    for (int i = 0; i &lt; args.length; i++) {<a name="line.494"></a>
-<span class="sourceLineNo">495</span>      ret.add(TableName.valueOf(args[i]));<a name="line.495"></a>
-<span class="sourceLineNo">496</span>    }<a name="line.496"></a>
-<span class="sourceLineNo">497</span>    return ret;<a name="line.497"></a>
-<span class="sourceLineNo">498</span>  }<a name="line.498"></a>
-<span class="sourceLineNo">499</span><a name="line.499"></a>
-<span class="sourceLineNo">500</span>  protected void dumpBackupDir() throws IOException {<a name="line.500"></a>
-<span class="sourceLineNo">501</span>    // Dump Backup Dir<a name="line.501"></a>
-<span class="sourceLineNo">502</span>    FileSystem fs = FileSystem.get(conf1);<a name="line.502"></a>
-<span class="sourceLineNo">503</span>    RemoteIterator&lt;LocatedFileStatus&gt; it = fs.listFiles(new Path(BACKUP_ROOT_DIR), true);<a name="line.503"></a>
-<span class="sourceLineNo">504</span>    while (it.hasNext()) {<a name="line.504"></a>
-<span class="sourceLineNo">505</span>      LOG.debug(Objects.toString(it.next().getPath()));<a name="line.505"></a>
-<span class="sourceLineNo">506</span>    }<a name="line.506"></a>
-<span class="sourceLineNo">507</span><a name="line.507"></a>
-<span class="sourceLineNo">508</span>  }<a name="line.508"></a>
-<span class="sourceLineNo">509</span>}<a name="line.509"></a>
+<span class="sourceLineNo">485</span>  /**<a name="line.485"></a>
+<span class="sourceLineNo">486</span>   * Helper method<a name="line.486"></a>
+<span class="sourceLineNo">487</span>   */<a name="line.487"></a>
+<span class="sourceLineNo">488</span>  protected List&lt;TableName&gt; toList(String... args) {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>    List&lt;TableName&gt; ret = new ArrayList&lt;&gt;();<a name="line.489"></a>
+<span class="sourceLineNo">490</span>    for (int i = 0; i &lt; args.length; i++) {<a name="line.490"></a>
+<span class="sourceLineNo">491</span>      ret.add(TableName.valueOf(args[i]));<a name="line.491"></a>
+<span class="sourceLineNo">492</span>    }<a name="line.492"></a>
+<span class="sourceLineNo">493</span>    return ret;<a name="line.493"></a>
+<span class="sourceLineNo">494</span>  }<a name="line.494"></a>
+<span class="sourceLineNo">495</span><a name="line.495"></a>
+<span class="sourceLineNo">496</span>  protected void dumpBackupDir() throws IOException {<a name="line.496"></a>
+<span class="sourceLineNo">497</span>    // Dump Backup Dir<a name="line.497"></a>
+<span class="sourceLineNo">498</span>    FileSystem fs = FileSystem.get(conf1);<a name="line.498"></a>
+<span class="sourceLineNo">499</span>    RemoteIterator&lt;LocatedFileStatus&gt; it = fs.listFiles(new Path(BACKUP_ROOT_DIR), true);<a name="line.499"></a>
+<span class="sourceLineNo">500</span>    while (it.hasNext()) {<a name="line.500"></a>
+<span class="sourceLineNo">501</span>      LOG.debug(Objects.toString(it.next().getPath()));<a name="line.501"></a>
+<span class="sourceLineNo">502</span>    }<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">504</span>  }<a name="line.504"></a>
+<span class="sourceLineNo">505</span>}<a name="line.505"></a>
 
 
 


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html b/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html
index 6d76f98..9baf566 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html
@@ -29,158 +29,158 @@
 <span class="sourceLineNo">021</span>import static org.apache.hadoop.hbase.backup.BackupRestoreConstants.JOB_NAME_CONF_KEY;<a name="line.21"></a>
 <span class="sourceLineNo">022</span><a name="line.22"></a>
 <span class="sourceLineNo">023</span>import java.io.IOException;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import java.nio.ByteBuffer;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import java.util.ArrayList;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import java.util.Arrays;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import java.util.HashMap;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import java.util.HashSet;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import java.util.List;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import java.util.Map;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import java.util.Set;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import java.util.TreeSet;<a name="line.32"></a>
-<span class="sourceLineNo">033</span><a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.commons.lang3.StringUtils;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.conf.Configuration;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hadoop.fs.Path;<a name="line.36"></a>
+<span class="sourceLineNo">024</span>import java.util.ArrayList;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import java.util.HashMap;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import java.util.HashSet;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import java.util.List;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import java.util.Set;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import java.util.TreeSet;<a name="line.29"></a>
+<span class="sourceLineNo">030</span><a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.commons.lang3.StringUtils;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.conf.Configuration;<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.LocatedFileStatus;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.hadoop.fs.Path;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hadoop.fs.RemoteIterator;<a name="line.36"></a>
 <span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.TableName;<a name="line.37"></a>
 <span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.backup.BackupType;<a name="line.38"></a>
 <span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.backup.HBackupFileSystem;<a name="line.39"></a>
 <span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.backup.RestoreRequest;<a name="line.40"></a>
 <span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.backup.impl.BackupManifest.BackupImage;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.backup.util.BackupUtils;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.backup.util.RestoreTool;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.slf4j.Logger;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.slf4j.LoggerFactory;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.client.Admin;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.client.Connection;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.tool.LoadIncrementalHFiles;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.tool.LoadIncrementalHFiles.LoadQueueItem;<a name="line.50"></a>
-<span class="sourceLineNo">051</span><a name="line.51"></a>
-<span class="sourceLineNo">052</span>/**<a name="line.52"></a>
-<span class="sourceLineNo">053</span> * Restore table implementation<a name="line.53"></a>
-<span class="sourceLineNo">054</span> *<a name="line.54"></a>
-<span class="sourceLineNo">055</span> */<a name="line.55"></a>
-<span class="sourceLineNo">056</span>@InterfaceAudience.Private<a name="line.56"></a>
-<span class="sourceLineNo">057</span>public class RestoreTablesClient {<a name="line.57"></a>
-<span class="sourceLineNo">058</span>  private static final Logger LOG = LoggerFactory.getLogger(RestoreTablesClient.class);<a name="line.58"></a>
-<span class="sourceLineNo">059</span><a name="line.59"></a>
-<span class="sourceLineNo">060</span>  private Configuration conf;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>  private Connection conn;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>  private String backupId;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>  private TableName[] sTableArray;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>  private TableName[] tTableArray;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>  private String targetRootDir;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>  private boolean isOverwrite;<a name="line.66"></a>
-<span class="sourceLineNo">067</span><a name="line.67"></a>
-<span class="sourceLineNo">068</span>  public RestoreTablesClient(Connection conn, RestoreRequest request) throws IOException {<a name="line.68"></a>
-<span class="sourceLineNo">069</span>    this.targetRootDir = request.getBackupRootDir();<a name="line.69"></a>
-<span class="sourceLineNo">070</span>    this.backupId = request.getBackupId();<a name="line.70"></a>
-<span class="sourceLineNo">071</span>    this.sTableArray = request.getFromTables();<a name="line.71"></a>
-<span class="sourceLineNo">072</span>    this.tTableArray = request.getToTables();<a name="line.72"></a>
-<span class="sourceLineNo">073</span>    if (tTableArray == null || tTableArray.length == 0) {<a name="line.73"></a>
-<span class="sourceLineNo">074</span>      this.tTableArray = sTableArray;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>    }<a name="line.75"></a>
-<span class="sourceLineNo">076</span>    this.isOverwrite = request.isOverwrite();<a name="line.76"></a>
-<span class="sourceLineNo">077</span>    this.conn = conn;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>    this.conf = conn.getConfiguration();<a name="line.78"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.backup.util.RestoreTool;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.client.Admin;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.client.Connection;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.io.hfile.HFile;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.slf4j.Logger;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.slf4j.LoggerFactory;<a name="line.48"></a>
+<span class="sourceLineNo">049</span><a name="line.49"></a>
+<span class="sourceLineNo">050</span>/**<a name="line.50"></a>
+<span class="sourceLineNo">051</span> * Restore table implementation<a name="line.51"></a>
+<span class="sourceLineNo">052</span> *<a name="line.52"></a>
+<span class="sourceLineNo">053</span> */<a name="line.53"></a>
+<span class="sourceLineNo">054</span>@InterfaceAudience.Private<a name="line.54"></a>
+<span class="sourceLineNo">055</span>public class RestoreTablesClient {<a name="line.55"></a>
+<span class="sourceLineNo">056</span>  private static final Logger LOG = LoggerFactory.getLogger(RestoreTablesClient.class);<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span>  private Configuration conf;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>  private Connection conn;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>  private String backupId;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>  private TableName[] sTableArray;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>  private TableName[] tTableArray;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>  private String targetRootDir;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>  private boolean isOverwrite;<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span>  public RestoreTablesClient(Connection conn, RestoreRequest request) throws IOException {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>    this.targetRootDir = request.getBackupRootDir();<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    this.backupId = request.getBackupId();<a name="line.68"></a>
+<span class="sourceLineNo">069</span>    this.sTableArray = request.getFromTables();<a name="line.69"></a>
+<span class="sourceLineNo">070</span>    this.tTableArray = request.getToTables();<a name="line.70"></a>
+<span class="sourceLineNo">071</span>    if (tTableArray == null || tTableArray.length == 0) {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>      this.tTableArray = sTableArray;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    }<a name="line.73"></a>
+<span class="sourceLineNo">074</span>    this.isOverwrite = request.isOverwrite();<a name="line.74"></a>
+<span class="sourceLineNo">075</span>    this.conn = conn;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>    this.conf = conn.getConfiguration();<a name="line.76"></a>
+<span class="sourceLineNo">077</span><a name="line.77"></a>
+<span class="sourceLineNo">078</span>  }<a name="line.78"></a>
 <span class="sourceLineNo">079</span><a name="line.79"></a>
-<span class="sourceLineNo">080</span>  }<a name="line.80"></a>
-<span class="sourceLineNo">081</span><a name="line.81"></a>
-<span class="sourceLineNo">082</span>  /**<a name="line.82"></a>
-<span class="sourceLineNo">083</span>   * Validate target tables<a name="line.83"></a>
-<span class="sourceLineNo">084</span>   * @param conn connection<a name="line.84"></a>
-<span class="sourceLineNo">085</span>   * @param mgr table state manager<a name="line.85"></a>
-<span class="sourceLineNo">086</span>   * @param tTableArray: target tables<a name="line.86"></a>
-<span class="sourceLineNo">087</span>   * @param isOverwrite overwrite existing table<a name="line.87"></a>
-<span class="sourceLineNo">088</span>   * @throws IOException exception<a name="line.88"></a>
-<span class="sourceLineNo">089</span>   */<a name="line.89"></a>
-<span class="sourceLineNo">090</span>  private void checkTargetTables(TableName[] tTableArray, boolean isOverwrite) throws IOException {<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    ArrayList&lt;TableName&gt; existTableList = new ArrayList&lt;&gt;();<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    ArrayList&lt;TableName&gt; disabledTableList = new ArrayList&lt;&gt;();<a name="line.92"></a>
-<span class="sourceLineNo">093</span><a name="line.93"></a>
-<span class="sourceLineNo">094</span>    // check if the tables already exist<a name="line.94"></a>
-<span class="sourceLineNo">095</span>    try (Admin admin = conn.getAdmin()) {<a name="line.95"></a>
-<span class="sourceLineNo">096</span>      for (TableName tableName : tTableArray) {<a name="line.96"></a>
-<span class="sourceLineNo">097</span>        if (admin.tableExists(tableName)) {<a name="line.97"></a>
-<span class="sourceLineNo">098</span>          existTableList.add(tableName);<a name="line.98"></a>
-<span class="sourceLineNo">099</span>          if (admin.isTableDisabled(tableName)) {<a name="line.99"></a>
-<span class="sourceLineNo">100</span>            disabledTableList.add(tableName);<a name="line.100"></a>
-<span class="sourceLineNo">101</span>          }<a name="line.101"></a>
-<span class="sourceLineNo">102</span>        } else {<a name="line.102"></a>
-<span class="sourceLineNo">103</span>          LOG.info("HBase table " + tableName<a name="line.103"></a>
-<span class="sourceLineNo">104</span>              + " does not exist. It will be created during restore process");<a name="line.104"></a>
-<span class="sourceLineNo">105</span>        }<a name="line.105"></a>
-<span class="sourceLineNo">106</span>      }<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    }<a name="line.107"></a>
-<span class="sourceLineNo">108</span><a name="line.108"></a>
-<span class="sourceLineNo">109</span>    if (existTableList.size() &gt; 0) {<a name="line.109"></a>
-<span class="sourceLineNo">110</span>      if (!isOverwrite) {<a name="line.110"></a>
-<span class="sourceLineNo">111</span>        LOG.error("Existing table (" + existTableList<a name="line.111"></a>
-<span class="sourceLineNo">112</span>            + ") found in the restore target, please add "<a name="line.112"></a>
-<span class="sourceLineNo">113</span>            + "\"-o\" as overwrite option in the command if you mean"<a name="line.113"></a>
-<span class="sourceLineNo">114</span>            + " to restore to these existing tables");<a name="line.114"></a>
-<span class="sourceLineNo">115</span>        throw new IOException("Existing table found in target while no \"-o\" "<a name="line.115"></a>
-<span class="sourceLineNo">116</span>            + "as overwrite option found");<a name="line.116"></a>
-<span class="sourceLineNo">117</span>      } else {<a name="line.117"></a>
-<span class="sourceLineNo">118</span>        if (disabledTableList.size() &gt; 0) {<a name="line.118"></a>
-<span class="sourceLineNo">119</span>          LOG.error("Found offline table in the restore target, "<a name="line.119"></a>
-<span class="sourceLineNo">120</span>              + "please enable them before restore with \"-overwrite\" option");<a name="line.120"></a>
-<span class="sourceLineNo">121</span>          LOG.info("Offline table list in restore target: " + disabledTableList);<a name="line.121"></a>
-<span class="sourceLineNo">122</span>          throw new IOException(<a name="line.122"></a>
-<span class="sourceLineNo">123</span>              "Found offline table in the target when restore with \"-overwrite\" option");<a name="line.123"></a>
-<span class="sourceLineNo">124</span>        }<a name="line.124"></a>
-<span class="sourceLineNo">125</span>      }<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    }<a name="line.126"></a>
-<span class="sourceLineNo">127</span>  }<a name="line.127"></a>
-<span class="sourceLineNo">128</span><a name="line.128"></a>
-<span class="sourceLineNo">129</span>  /**<a name="line.129"></a>
-<span class="sourceLineNo">130</span>   * Restore operation handle each backupImage in array<a name="line.130"></a>
-<span class="sourceLineNo">131</span>   * @param svc: master services<a name="line.131"></a>
-<span class="sourceLineNo">132</span>   * @param images: array BackupImage<a name="line.132"></a>
-<span class="sourceLineNo">133</span>   * @param sTable: table to be restored<a name="line.133"></a>
-<span class="sourceLineNo">134</span>   * @param tTable: table to be restored to<a name="line.134"></a>
-<span class="sourceLineNo">135</span>   * @param truncateIfExists: truncate table<a name="line.135"></a>
-<span class="sourceLineNo">136</span>   * @throws IOException exception<a name="line.136"></a>
-<span class="sourceLineNo">137</span>   */<a name="line.137"></a>
-<span class="sourceLineNo">138</span><a name="line.138"></a>
-<span class="sourceLineNo">139</span>  private void restoreImages(BackupImage[] images, TableName sTable, TableName tTable,<a name="line.139"></a>
-<span class="sourceLineNo">140</span>      boolean truncateIfExists) throws IOException {<a name="line.140"></a>
-<span class="sourceLineNo">141</span><a name="line.141"></a>
-<span class="sourceLineNo">142</span>    // First image MUST be image of a FULL backup<a name="line.142"></a>
-<span class="sourceLineNo">143</span>    BackupImage image = images[0];<a name="line.143"></a>
-<span class="sourceLineNo">144</span>    String rootDir = image.getRootDir();<a name="line.144"></a>
-<span class="sourceLineNo">145</span>    String backupId = image.getBackupId();<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    Path backupRoot = new Path(rootDir);<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    RestoreTool restoreTool = new RestoreTool(conf, backupRoot, backupId);<a name="line.147"></a>
-<span class="sourceLineNo">148</span>    Path tableBackupPath = HBackupFileSystem.getTableBackupPath(sTable, backupRoot, backupId);<a name="line.148"></a>
-<span class="sourceLineNo">149</span>    String lastIncrBackupId = images.length == 1 ? null : images[images.length - 1].getBackupId();<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    // We need hFS only for full restore (see the code)<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    BackupManifest manifest = HBackupFileSystem.getManifest(conf, backupRoot, backupId);<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    if (manifest.getType() == BackupType.FULL) {<a name="line.152"></a>
-<span class="sourceLineNo">153</span>      LOG.info("Restoring '" + sTable + "' to '" + tTable + "' from full" + " backup image "<a name="line.153"></a>
-<span class="sourceLineNo">154</span>          + tableBackupPath.toString());<a name="line.154"></a>
-<span class="sourceLineNo">155</span>      conf.set(JOB_NAME_CONF_KEY, "Full_Restore-" + backupId + "-" + tTable);<a name="line.155"></a>
-<span class="sourceLineNo">156</span>      restoreTool.fullRestoreTable(conn, tableBackupPath, sTable, tTable, truncateIfExists,<a name="line.156"></a>
-<span class="sourceLineNo">157</span>        lastIncrBackupId);<a name="line.157"></a>
-<span class="sourceLineNo">158</span>      conf.unset(JOB_NAME_CONF_KEY);<a name="line.158"></a>
-<span class="sourceLineNo">159</span>    } else { // incremental Backup<a name="line.159"></a>
-<span class="sourceLineNo">160</span>      throw new IOException("Unexpected backup type " + image.getType());<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    }<a name="line.161"></a>
-<span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span>    if (images.length == 1) {<a name="line.163"></a>
-<span class="sourceLineNo">164</span>      // full backup restore done<a name="line.164"></a>
-<span class="sourceLineNo">165</span>      return;<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>    List&lt;Path&gt; dirList = new ArrayList&lt;Path&gt;();<a name="line.168"></a>
-<span class="sourceLineNo">169</span>    // add full backup path<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    // full backup path comes first<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    for (int i = 1; i &lt; images.length; i++) {<a name="line.171"></a>
-<span class="sourceLineNo">172</span>      BackupImage im = images[i];<a name="line.172"></a>
-<span class="sourceLineNo">173</span>      String fileBackupDir =<a name="line.173"></a>
-<span class="sourceLineNo">174</span>          HBackupFileSystem.getTableBackupDataDir(im.getRootDir(), im.getBackupId(), sTable);<a name="line.174"></a>
-<span class="sourceLineNo">175</span>      dirList.add(new Path(fileBackupDir));<a name="line.175"></a>
+<span class="sourceLineNo">080</span>  /**<a name="line.80"></a>
+<span class="sourceLineNo">081</span>   * Validate target tables<a name="line.81"></a>
+<span class="sourceLineNo">082</span>   * @param conn connection<a name="line.82"></a>
+<span class="sourceLineNo">083</span>   * @param mgr table state manager<a name="line.83"></a>
+<span class="sourceLineNo">084</span>   * @param tTableArray: target tables<a name="line.84"></a>
+<span class="sourceLineNo">085</span>   * @param isOverwrite overwrite existing table<a name="line.85"></a>
+<span class="sourceLineNo">086</span>   * @throws IOException exception<a name="line.86"></a>
+<span class="sourceLineNo">087</span>   */<a name="line.87"></a>
+<span class="sourceLineNo">088</span>  private void checkTargetTables(TableName[] tTableArray, boolean isOverwrite) throws IOException {<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    ArrayList&lt;TableName&gt; existTableList = new ArrayList&lt;&gt;();<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    ArrayList&lt;TableName&gt; disabledTableList = new ArrayList&lt;&gt;();<a name="line.90"></a>
+<span class="sourceLineNo">091</span><a name="line.91"></a>
+<span class="sourceLineNo">092</span>    // check if the tables already exist<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    try (Admin admin = conn.getAdmin()) {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>      for (TableName tableName : tTableArray) {<a name="line.94"></a>
+<span class="sourceLineNo">095</span>        if (admin.tableExists(tableName)) {<a name="line.95"></a>
+<span class="sourceLineNo">096</span>          existTableList.add(tableName);<a name="line.96"></a>
+<span class="sourceLineNo">097</span>          if (admin.isTableDisabled(tableName)) {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>            disabledTableList.add(tableName);<a name="line.98"></a>
+<span class="sourceLineNo">099</span>          }<a name="line.99"></a>
+<span class="sourceLineNo">100</span>        } else {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>          LOG.info("HBase table " + tableName<a name="line.101"></a>
+<span class="sourceLineNo">102</span>              + " does not exist. It will be created during restore process");<a name="line.102"></a>
+<span class="sourceLineNo">103</span>        }<a name="line.103"></a>
+<span class="sourceLineNo">104</span>      }<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    }<a name="line.105"></a>
+<span class="sourceLineNo">106</span><a name="line.106"></a>
+<span class="sourceLineNo">107</span>    if (existTableList.size() &gt; 0) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>      if (!isOverwrite) {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>        LOG.error("Existing table (" + existTableList<a name="line.109"></a>
+<span class="sourceLineNo">110</span>            + ") found in the restore target, please add "<a name="line.110"></a>
+<span class="sourceLineNo">111</span>            + "\"-o\" as overwrite option in the command if you mean"<a name="line.111"></a>
+<span class="sourceLineNo">112</span>            + " to restore to these existing tables");<a name="line.112"></a>
+<span class="sourceLineNo">113</span>        throw new IOException("Existing table found in target while no \"-o\" "<a name="line.113"></a>
+<span class="sourceLineNo">114</span>            + "as overwrite option found");<a name="line.114"></a>
+<span class="sourceLineNo">115</span>      } else {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>        if (disabledTableList.size() &gt; 0) {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>          LOG.error("Found offline table in the restore target, "<a name="line.117"></a>
+<span class="sourceLineNo">118</span>              + "please enable them before restore with \"-overwrite\" option");<a name="line.118"></a>
+<span class="sourceLineNo">119</span>          LOG.info("Offline table list in restore target: " + disabledTableList);<a name="line.119"></a>
+<span class="sourceLineNo">120</span>          throw new IOException(<a name="line.120"></a>
+<span class="sourceLineNo">121</span>              "Found offline table in the target when restore with \"-overwrite\" option");<a name="line.121"></a>
+<span class="sourceLineNo">122</span>        }<a name="line.122"></a>
+<span class="sourceLineNo">123</span>      }<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    }<a name="line.124"></a>
+<span class="sourceLineNo">125</span>  }<a name="line.125"></a>
+<span class="sourceLineNo">126</span><a name="line.126"></a>
+<span class="sourceLineNo">127</span>  /**<a name="line.127"></a>
+<span class="sourceLineNo">128</span>   * Restore operation handle each backupImage in array<a name="line.128"></a>
+<span class="sourceLineNo">129</span>   * @param svc: master services<a name="line.129"></a>
+<span class="sourceLineNo">130</span>   * @param images: array BackupImage<a name="line.130"></a>
+<span class="sourceLineNo">131</span>   * @param sTable: table to be restored<a name="line.131"></a>
+<span class="sourceLineNo">132</span>   * @param tTable: table to be restored to<a name="line.132"></a>
+<span class="sourceLineNo">133</span>   * @param truncateIfExists: truncate table<a name="line.133"></a>
+<span class="sourceLineNo">134</span>   * @throws IOException exception<a name="line.134"></a>
+<span class="sourceLineNo">135</span>   */<a name="line.135"></a>
+<span class="sourceLineNo">136</span><a name="line.136"></a>
+<span class="sourceLineNo">137</span>  private void restoreImages(BackupImage[] images, TableName sTable, TableName tTable,<a name="line.137"></a>
+<span class="sourceLineNo">138</span>      boolean truncateIfExists) throws IOException {<a name="line.138"></a>
+<span class="sourceLineNo">139</span><a name="line.139"></a>
+<span class="sourceLineNo">140</span>    // First image MUST be image of a FULL backup<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    BackupImage image = images[0];<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    String rootDir = image.getRootDir();<a name="line.142"></a>
+<span class="sourceLineNo">143</span>    String backupId = image.getBackupId();<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    Path backupRoot = new Path(rootDir);<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    RestoreTool restoreTool = new RestoreTool(conf, backupRoot, backupId);<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    Path tableBackupPath = HBackupFileSystem.getTableBackupPath(sTable, backupRoot, backupId);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>    String lastIncrBackupId = images.length == 1 ? null : images[images.length - 1].getBackupId();<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    // We need hFS only for full restore (see the code)<a name="line.148"></a>
+<span class="sourceLineNo">149</span>    BackupManifest manifest = HBackupFileSystem.getManifest(conf, backupRoot, backupId);<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    if (manifest.getType() == BackupType.FULL) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      LOG.info("Restoring '" + sTable + "' to '" + tTable + "' from full" + " backup image "<a name="line.151"></a>
+<span class="sourceLineNo">152</span>          + tableBackupPath.toString());<a name="line.152"></a>
+<span class="sourceLineNo">153</span>      conf.set(JOB_NAME_CONF_KEY, "Full_Restore-" + backupId + "-" + tTable);<a name="line.153"></a>
+<span class="sourceLineNo">154</span>      restoreTool.fullRestoreTable(conn, tableBackupPath, sTable, tTable, truncateIfExists,<a name="line.154"></a>
+<span class="sourceLineNo">155</span>        lastIncrBackupId);<a name="line.155"></a>
+<span class="sourceLineNo">156</span>      conf.unset(JOB_NAME_CONF_KEY);<a name="line.156"></a>
+<span class="sourceLineNo">157</span>    } else { // incremental Backup<a name="line.157"></a>
+<span class="sourceLineNo">158</span>      throw new IOException("Unexpected backup type " + image.getType());<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>    if (images.length == 1) {<a name="line.161"></a>
+<span class="sourceLineNo">162</span>      // full backup restore done<a name="line.162"></a>
+<span class="sourceLineNo">163</span>      return;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>    }<a name="line.164"></a>
+<span class="sourceLineNo">165</span><a name="line.165"></a>
+<span class="sourceLineNo">166</span>    List&lt;Path&gt; dirList = new ArrayList&lt;Path&gt;();<a name="line.166"></a>
+<span class="sourceLineNo">167</span>    // add full backup path<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    // full backup path comes first<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    for (int i = 1; i &lt; images.length; i++) {<a name="line.169"></a>
+<span class="sourceLineNo">170</span>      BackupImage im = images[i];<a name="line.170"></a>
+<span class="sourceLineNo">171</span>      String fileBackupDir =<a name="line.171"></a>
+<span class="sourceLineNo">172</span>         HBackupFileSystem.getTableBackupDir(im.getRootDir(), im.getBackupId(), sTable);<a name="line.172"></a>
+<span class="sourceLineNo">173</span>      List&lt;Path&gt; list = getFilesRecursively(fileBackupDir);<a name="line.173"></a>
+<span class="sourceLineNo">174</span>      dirList.addAll(list);<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>    String dirs = StringUtils.join(dirList, ",");<a name="line.178"></a>
@@ -193,102 +193,95 @@
 <span class="sourceLineNo">185</span>    LOG.info(sTable + " has been successfully restored to " + tTable);<a name="line.185"></a>
 <span class="sourceLineNo">186</span>  }<a name="line.186"></a>
 <span class="sourceLineNo">187</span><a name="line.187"></a>
-<span class="sourceLineNo">188</span>  /**<a name="line.188"></a>
-<span class="sourceLineNo">189</span>   * Restore operation. Stage 2: resolved Backup Image dependency<a name="line.189"></a>
-<span class="sourceLineNo">190</span>   * @param backupManifestMap : tableName, Manifest<a name="line.190"></a>
-<span class="sourceLineNo">191</span>   * @param sTableArray The array of tables to be restored<a name="line.191"></a>
-<span class="sourceLineNo">192</span>   * @param tTableArray The array of mapping tables to restore to<a name="line.192"></a>
-<span class="sourceLineNo">193</span>   * @return set of BackupImages restored<a name="line.193"></a>
-<span class="sourceLineNo">194</span>   * @throws IOException exception<a name="line.194"></a>
-<span class="sourceLineNo">195</span>   */<a name="line.195"></a>
-<span class="sourceLineNo">196</span>  private void restore(HashMap&lt;TableName, BackupManifest&gt; backupManifestMap,<a name="line.196"></a>
-<span class="sourceLineNo">197</span>      TableName[] sTableArray, TableName[] tTableArray, boolean isOverwrite) throws IOException {<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    TreeSet&lt;BackupImage&gt; restoreImageSet = new TreeSet&lt;BackupImage&gt;();<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    boolean truncateIfExists = isOverwrite;<a name="line.199"></a>
-<span class="sourceLineNo">200</span>    Set&lt;String&gt; backupIdSet = new HashSet&lt;&gt;();<a name="line.200"></a>
+<span class="sourceLineNo">188</span>  private List&lt;Path&gt; getFilesRecursively(String fileBackupDir)<a name="line.188"></a>
+<span class="sourceLineNo">189</span>      throws IllegalArgumentException, IOException {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    FileSystem fs = FileSystem.get((new Path(fileBackupDir)).toUri(), new Configuration());<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    List&lt;Path&gt; list = new ArrayList&lt;Path&gt;();<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    RemoteIterator&lt;LocatedFileStatus&gt; it = fs.listFiles(new Path(fileBackupDir), true);<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    while (it.hasNext()) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>      Path p = it.next().getPath();<a name="line.194"></a>
+<span class="sourceLineNo">195</span>      if (HFile.isHFileFormat(fs, p)) {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>        list.add(p);<a name="line.196"></a>
+<span class="sourceLineNo">197</span>      }<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    }<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    return list;<a name="line.199"></a>
+<span class="sourceLineNo">200</span>  }<a name="line.200"></a>
 <span class="sourceLineNo">201</span><a name="line.201"></a>
-<span class="sourceLineNo">202</span>    for (int i = 0; i &lt; sTableArray.length; i++) {<a name="line.202"></a>
-<span class="sourceLineNo">203</span>      TableName table = sTableArray[i];<a name="line.203"></a>
-<span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span>      BackupManifest manifest = backupManifestMap.get(table);<a name="line.205"></a>
-<span class="sourceLineNo">206</span>      // Get the image list of this backup for restore in time order from old<a name="line.206"></a>
-<span class="sourceLineNo">207</span>      // to new.<a name="line.207"></a>
-<span class="sourceLineNo">208</span>      List&lt;BackupImage&gt; list = new ArrayList&lt;BackupImage&gt;();<a name="line.208"></a>
-<span class="sourceLineNo">209</span>      list.add(manifest.getBackupImage());<a name="line.209"></a>
-<span class="sourceLineNo">210</span>      TreeSet&lt;BackupImage&gt; set = new TreeSet&lt;BackupImage&gt;(list);<a name="line.210"></a>
-<span class="sourceLineNo">211</span>      List&lt;BackupImage&gt; depList = manifest.getDependentListByTable(table);<a name="line.211"></a>
-<span class="sourceLineNo">212</span>      set.addAll(depList);<a name="line.212"></a>
-<span class="sourceLineNo">213</span>      BackupImage[] arr = new BackupImage[set.size()];<a name="line.213"></a>
-<span class="sourceLineNo">214</span>      set.toArray(arr);<a name="line.214"></a>
-<span class="sourceLineNo">215</span>      restoreImages(arr, table, tTableArray[i], truncateIfExists);<a name="line.215"></a>
-<span class="sourceLineNo">216</span>      restoreImageSet.addAll(list);<a name="line.216"></a>
-<span class="sourceLineNo">217</span>      if (restoreImageSet != null &amp;&amp; !restoreImageSet.isEmpty()) {<a name="line.217"></a>
-<span class="sourceLineNo">218</span>        LOG.info("Restore includes the following image(s):");<a name="line.218"></a>
-<span class="sourceLineNo">219</span>        for (BackupImage image : restoreImageSet) {<a name="line.219"></a>
-<span class="sourceLineNo">220</span>          LOG.info("Backup: " + image.getBackupId() + " "<a name="line.220"></a>
-<span class="sourceLineNo">221</span>              + HBackupFileSystem.getTableBackupDir(image.getRootDir(), image.getBackupId(), table));<a name="line.221"></a>
-<span class="sourceLineNo">222</span>          if (image.getType() == BackupType.INCREMENTAL) {<a name="line.222"></a>
-<span class="sourceLineNo">223</span>            backupIdSet.add(image.getBackupId());<a name="line.223"></a>
-<span class="sourceLineNo">224</span>            LOG.debug("adding " + image.getBackupId() + " for bulk load");<a name="line.224"></a>
-<span class="sourceLineNo">225</span>          }<a name="line.225"></a>
-<span class="sourceLineNo">226</span>        }<a name="line.226"></a>
-<span class="sourceLineNo">227</span>      }<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    }<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    try (BackupSystemTable table = new BackupSystemTable(conn)) {<a name="line.229"></a>
-<span class="sourceLineNo">230</span>      List&lt;TableName&gt; sTableList = Arrays.asList(sTableArray);<a name="line.230"></a>
-<span class="sourceLineNo">231</span>      for (String id : backupIdSet) {<a name="line.231"></a>
-<span class="sourceLineNo">232</span>        LOG.debug("restoring bulk load for " + id);<a name="line.232"></a>
-<span class="sourceLineNo">233</span>        Map&lt;byte[], List&lt;Path&gt;&gt;[] mapForSrc = table.readBulkLoadedFiles(id, sTableList);<a name="line.233"></a>
-<span class="sourceLineNo">234</span>        Map&lt;LoadQueueItem, ByteBuffer&gt; loaderResult;<a name="line.234"></a>
-<span class="sourceLineNo">235</span>        conf.setBoolean(LoadIncrementalHFiles.ALWAYS_COPY_FILES, true);<a name="line.235"></a>
-<span class="sourceLineNo">236</span>        LoadIncrementalHFiles loader = BackupUtils.createLoader(conf);<a name="line.236"></a>
-<span class="sourceLineNo">237</span>        for (int i = 0; i &lt; sTableList.size(); i++) {<a name="line.237"></a>
-<span class="sourceLineNo">238</span>          if (mapForSrc[i] != null &amp;&amp; !mapForSrc[i].isEmpty()) {<a name="line.238"></a>
-<span class="sourceLineNo">239</span>            loaderResult = loader.run(mapForSrc[i], tTableArray[i]);<a name="line.239"></a>
-<span class="sourceLineNo">240</span>            LOG.debug("bulk loading " + sTableList.get(i) + " to " + tTableArray[i]);<a name="line.240"></a>
-<span class="sourceLineNo">241</span>            if (loaderResult.isEmpty()) {<a name="line.241"></a>
-<span class="sourceLineNo">242</span>              String msg = "Couldn't bulk load for " + sTableList.get(i) + " to " + tTableArray[i];<a name="line.242"></a>
-<span class="sourceLineNo">243</span>              LOG.error(msg);<a name="line.243"></a>
-<span class="sourceLineNo">244</span>              throw new IOException(msg);<a name="line.244"></a>
-<span class="sourceLineNo">245</span>            }<a name="line.245"></a>
-<span class="sourceLineNo">246</span>          }<a name="line.246"></a>
-<span class="sourceLineNo">247</span>        }<a name="line.247"></a>
-<span class="sourceLineNo">248</span>      }<a name="line.248"></a>
+<span class="sourceLineNo">202</span>  /**<a name="line.202"></a>
+<span class="sourceLineNo">203</span>   * Restore operation. Stage 2: resolved Backup Image dependency<a name="line.203"></a>
+<span class="sourceLineNo">204</span>   * @param backupManifestMap : tableName, Manifest<a name="line.204"></a>
+<span class="sourceLineNo">205</span>   * @param sTableArray The array of tables to be restored<a name="line.205"></a>
+<span class="sourceLineNo">206</span>   * @param tTableArray The array of mapping tables to restore to<a name="line.206"></a>
+<span class="sourceLineNo">207</span>   * @return set of BackupImages restored<a name="line.207"></a>
+<span class="sourceLineNo">208</span>   * @throws IOException exception<a name="line.208"></a>
+<span class="sourceLineNo">209</span>   */<a name="line.209"></a>
+<span class="sourceLineNo">210</span>  private void restore(HashMap&lt;TableName, BackupManifest&gt; backupManifestMap,<a name="line.210"></a>
+<span class="sourceLineNo">211</span>      TableName[] sTableArray, TableName[] tTableArray, boolean isOverwrite) throws IOException {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    TreeSet&lt;BackupImage&gt; restoreImageSet = new TreeSet&lt;BackupImage&gt;();<a name="line.212"></a>
+<span class="sourceLineNo">213</span>    boolean truncateIfExists = isOverwrite;<a name="line.213"></a>
+<span class="sourceLineNo">214</span>    Set&lt;String&gt; backupIdSet = new HashSet&lt;&gt;();<a name="line.214"></a>
+<span class="sourceLineNo">215</span><a name="line.215"></a>
+<span class="sourceLineNo">216</span>    for (int i = 0; i &lt; sTableArray.length; i++) {<a name="line.216"></a>
+<span class="sourceLineNo">217</span>      TableName table = sTableArray[i];<a name="line.217"></a>
+<span class="sourceLineNo">218</span><a name="line.218"></a>
+<span class="sourceLineNo">219</span>      BackupManifest manifest = backupManifestMap.get(table);<a name="line.219"></a>
+<span class="sourceLineNo">220</span>      // Get the image list of this backup for restore in time order from old<a name="line.220"></a>
+<span class="sourceLineNo">221</span>      // to new.<a name="line.221"></a>
+<span class="sourceLineNo">222</span>      List&lt;BackupImage&gt; list = new ArrayList&lt;BackupImage&gt;();<a name="line.222"></a>
+<span class="sourceLineNo">223</span>      list.add(manifest.getBackupImage());<a name="line.223"></a>
+<span class="sourceLineNo">224</span>      TreeSet&lt;BackupImage&gt; set = new TreeSet&lt;BackupImage&gt;(list);<a name="line.224"></a>
+<span class="sourceLineNo">225</span>      List&lt;BackupImage&gt; depList = manifest.getDependentListByTable(table);<a name="line.225"></a>
+<span class="sourceLineNo">226</span>      set.addAll(depList);<a name="line.226"></a>
+<span class="sourceLineNo">227</span>      BackupImage[] arr = new BackupImage[set.size()];<a name="line.227"></a>
+<span class="sourceLineNo">228</span>      set.toArray(arr);<a name="line.228"></a>
+<span class="sourceLineNo">229</span>      restoreImages(arr, table, tTableArray[i], truncateIfExists);<a name="line.229"></a>
+<span class="sourceLineNo">230</span>      restoreImageSet.addAll(list);<a name="line.230"></a>
+<span class="sourceLineNo">231</span>      if (restoreImageSet != null &amp;&amp; !restoreImageSet.isEmpty()) {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>        LOG.info("Restore includes the following image(s):");<a name="line.232"></a>
+<span class="sourceLineNo">233</span>        for (BackupImage image : restoreImageSet) {<a name="line.233"></a>
+<span class="sourceLineNo">234</span>          LOG.info("Backup: " + image.getBackupId() + " "<a name="line.234"></a>
+<span class="sourceLineNo">235</span>              + HBackupFileSystem.getTableBackupDir(image.getRootDir(), image.getBackupId(), table));<a name="line.235"></a>
+<span class="sourceLineNo">236</span>          if (image.getType() == BackupType.INCREMENTAL) {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>            backupIdSet.add(image.getBackupId());<a name="line.237"></a>
+<span class="sourceLineNo">238</span>            LOG.debug("adding " + image.getBackupId() + " for bulk load");<a name="line.238"></a>
+<span class="sourceLineNo">239</span>          }<a name="line.239"></a>
+<span class="sourceLineNo">240</span>        }<a name="line.240"></a>
+<span class="sourceLineNo">241</span>      }<a name="line.241"></a>
+<span class="sourceLineNo">242</span>    }<a name="line.242"></a>
+<span class="sourceLineNo">243</span>    LOG.debug("restoreStage finished");<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>  static long getTsFromBackupId(String backupId) {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    if (backupId == null) {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>      return 0;<a name="line.248"></a>
 <span class="sourceLineNo">249</span>    }<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    LOG.debug("restoreStage finished");<a name="line.250"></a>
+<span class="sourceLineNo">250</span>    return Long.parseLong(backupId.substring(backupId.lastIndexOf("_") + 1));<a name="line.250"></a>
 <span class="sourceLineNo">251</span>  }<a name="line.251"></a>
 <span class="sourceLineNo">252</span><a name="line.252"></a>
-<span class="sourceLineNo">253</span>  static long getTsFromBackupId(String backupId) {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    if (backupId == null) {<a name="line.254"></a>
-<span class="sourceLineNo">255</span>      return 0;<a name="line.255"></a>
+<span class="sourceLineNo">253</span>  static boolean withinRange(long a, long lower, long upper) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>    if (a &lt; lower || a &gt; upper) {<a name="line.254"></a>
+<span class="sourceLineNo">255</span>      return false;<a name="line.255"></a>
 <span class="sourceLineNo">256</span>    }<a name="line.256"></a>
-<span class="sourceLineNo">257</span>    return Long.parseLong(backupId.substring(backupId.lastIndexOf("_") + 1));<a name="line.257"></a>
+<span class="sourceLineNo">257</span>    return true;<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>  static boolean withinRange(long a, long lower, long upper) {<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    if (a &lt; lower || a &gt; upper) {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>      return false;<a name="line.262"></a>
-<span class="sourceLineNo">263</span>    }<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    return true;<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>  public void execute() throws IOException {<a name="line.267"></a>
-<span class="sourceLineNo">268</span><a name="line.268"></a>
-<span class="sourceLineNo">269</span>    // case VALIDATION:<a name="line.269"></a>
-<span class="sourceLineNo">270</span>    // check the target tables<a name="line.270"></a>
-<span class="sourceLineNo">271</span>    checkTargetTables(tTableArray, isOverwrite);<a name="line.271"></a>
+<span class="sourceLineNo">260</span>  public void execute() throws IOException {<a name="line.260"></a>
+<span class="sourceLineNo">261</span><a name="line.261"></a>
+<span class="sourceLineNo">262</span>    // case VALIDATION:<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    // check the target tables<a name="line.263"></a>
+<span class="sourceLineNo">264</span>    checkTargetTables(tTableArray, isOverwrite);<a name="line.264"></a>
+<span class="sourceLineNo">265</span><a name="line.265"></a>
+<span class="sourceLineNo">266</span>    // case RESTORE_IMAGES:<a name="line.266"></a>
+<span class="sourceLineNo">267</span>    HashMap&lt;TableName, BackupManifest&gt; backupManifestMap = new HashMap&lt;&gt;();<a name="line.267"></a>
+<span class="sourceLineNo">268</span>    // check and load backup image manifest for the tables<a name="line.268"></a>
+<span class="sourceLineNo">269</span>    Path rootPath = new Path(targetRootDir);<a name="line.269"></a>
+<span class="sourceLineNo">270</span>    HBackupFileSystem.checkImageManifestExist(backupManifestMap, sTableArray, conf, rootPath,<a name="line.270"></a>
+<span class="sourceLineNo">271</span>      backupId);<a name="line.271"></a>
 <span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>    // case RESTORE_IMAGES:<a name="line.273"></a>
-<span class="sourceLineNo">274</span>    HashMap&lt;TableName, BackupManifest&gt; backupManifestMap = new HashMap&lt;&gt;();<a name="line.274"></a>
-<span class="sourceLineNo">275</span>    // check and load backup image manifest for the tables<a name="line.275"></a>
-<span class="sourceLineNo">276</span>    Path rootPath = new Path(targetRootDir);<a name="line.276"></a>
-<span class="sourceLineNo">277</span>    HBackupFileSystem.checkImageManifestExist(backupManifestMap, sTableArray, conf, rootPath,<a name="line.277"></a>
-<span class="sourceLineNo">278</span>      backupId);<a name="line.278"></a>
-<span class="sourceLineNo">279</span><a name="line.279"></a>
-<span class="sourceLineNo">280</span>    restore(backupManifestMap, sTableArray, tTableArray, isOverwrite);<a name="line.280"></a>
-<span class="sourceLineNo">281</span>  }<a name="line.281"></a>
-<span class="sourceLineNo">282</span><a name="line.282"></a>
-<span class="sourceLineNo">283</span>}<a name="line.283"></a>
+<span class="sourceLineNo">273</span>    restore(backupManifestMap, sTableArray, tTableArray, isOverwrite);<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>}<a name="line.276"></a>
 
 
 


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/checkstyle-aggregate.html
----------------------------------------------------------------------
diff --git a/checkstyle-aggregate.html b/checkstyle-aggregate.html
index a34f1c8..c5223b4 100644
--- a/checkstyle-aggregate.html
+++ b/checkstyle-aggregate.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180112" />
+    <meta name="Date-Revision-yyyymmdd" content="20180113" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Checkstyle Results</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -286,10 +286,10 @@
 <th><img src="images/icon_warning_sml.gif" alt="" />&#160;Warnings</th>
 <th><img src="images/icon_error_sml.gif" alt="" />&#160;Errors</th></tr>
 <tr class="b">
-<td>3499</td>
+<td>3496</td>
 <td>0</td>
 <td>0</td>
-<td>18148</td></tr></table></div>
+<td>18141</td></tr></table></div>
 <div class="section">
 <h2><a name="Files"></a>Files</h2>
 <table border="0" class="table table-striped">
@@ -824,1595 +824,1605 @@
 <td>0</td>
 <td>2</td></tr>
 <tr class="a">
+<td><a href="#org.apache.hadoop.hbase.TestJMXConnectorServer.java">org/apache/hadoop/hbase/TestJMXConnectorServer.java</a></td>
+<td>0</td>
+<td>0</td>
+<td>3</td></tr>
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.TestJMXListener.java">org/apache/hadoop/hbase/TestJMXListener.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.TestKeyValue.java">org/apache/hadoop/hbase/TestKeyValue.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.TestLocalHBaseCluster.java">org/apache/hadoop/hbase/TestLocalHBaseCluster.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.TestMetaTableAccessor.java">org/apache/hadoop/hbase/TestMetaTableAccessor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.TestMetaTableAccessorNoCluster.java">org/apache/hadoop/hbase/TestMetaTableAccessorNoCluster.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>8</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.TestMetaTableLocator.java">org/apache/hadoop/hbase/TestMetaTableLocator.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>35</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.TestMovedRegionsCleaner.java">org/apache/hadoop/hbase/TestMovedRegionsCleaner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.TestMultiVersions.java">org/apache/hadoop/hbase/TestMultiVersions.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.TestNamespace.java">org/apache/hadoop/hbase/TestNamespace.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.TestNodeHealthCheckChore.java">org/apache/hadoop/hbase/TestNodeHealthCheckChore.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.TestPartialResultsFromClientSide.java">org/apache/hadoop/hbase/TestPartialResultsFromClientSide.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>38</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.TestPerformanceEvaluation.java">org/apache/hadoop/hbase/TestPerformanceEvaluation.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.TestRegionRebalancing.java">org/apache/hadoop/hbase/TestRegionRebalancing.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.TestSerialization.java">org/apache/hadoop/hbase/TestSerialization.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.TestServerSideScanMetricsFromClientSide.java">org/apache/hadoop/hbase/TestServerSideScanMetricsFromClientSide.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>16</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.TestStochasticBalancerJmxMetrics.java">org/apache/hadoop/hbase/TestStochasticBalancerJmxMetrics.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.TestTagRewriteCell.java">org/apache/hadoop/hbase/TestTagRewriteCell.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.TestTimeout.java">org/apache/hadoop/hbase/TestTimeout.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.TestZooKeeper.java">org/apache/hadoop/hbase/TestZooKeeper.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>12</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.TimestampTestBase.java">org/apache/hadoop/hbase/TimestampTestBase.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.UnknownRegionException.java">org/apache/hadoop/hbase/UnknownRegionException.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.Waiter.java">org/apache/hadoop/hbase/Waiter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.ZKNamespaceManager.java">org/apache/hadoop/hbase/ZKNamespaceManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.ZNodeClearer.java">org/apache/hadoop/hbase/ZNodeClearer.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.backup.BackupClientFactory.java">org/apache/hadoop/hbase/backup/BackupClientFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.backup.BackupCopyJob.java">org/apache/hadoop/hbase/backup/BackupCopyJob.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.backup.BackupHFileCleaner.java">org/apache/hadoop/hbase/backup/BackupHFileCleaner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.backup.BackupInfo.java">org/apache/hadoop/hbase/backup/BackupInfo.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.backup.BackupMergeJob.java">org/apache/hadoop/hbase/backup/BackupMergeJob.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.backup.BackupRestoreConstants.java">org/apache/hadoop/hbase/backup/BackupRestoreConstants.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.backup.BackupRestoreFactory.java">org/apache/hadoop/hbase/backup/BackupRestoreFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.backup.BackupTableInfo.java">org/apache/hadoop/hbase/backup/BackupTableInfo.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.backup.FailedArchiveException.java">org/apache/hadoop/hbase/backup/FailedArchiveException.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.backup.HBackupFileSystem.java">org/apache/hadoop/hbase/backup/HBackupFileSystem.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.backup.HFileArchiver.java">org/apache/hadoop/hbase/backup/HFileArchiver.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>19</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.backup.LogUtils.java">org/apache/hadoop/hbase/backup/LogUtils.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.backup.RestoreDriver.java">org/apache/hadoop/hbase/backup/RestoreDriver.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.backup.RestoreJob.java">org/apache/hadoop/hbase/backup/RestoreJob.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.backup.RestoreRequest.java">org/apache/hadoop/hbase/backup/RestoreRequest.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.backup.TestBackupBase.java">org/apache/hadoop/hbase/backup/TestBackupBase.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>13</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.backup.TestBackupBoundaryTests.java">org/apache/hadoop/hbase/backup/TestBackupBoundaryTests.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.backup.TestBackupDelete.java">org/apache/hadoop/hbase/backup/TestBackupDelete.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.backup.TestBackupDeleteRestore.java">org/apache/hadoop/hbase/backup/TestBackupDeleteRestore.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.backup.TestBackupDeleteWithFailures.java">org/apache/hadoop/hbase/backup/TestBackupDeleteWithFailures.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>16</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.backup.TestBackupDescribe.java">org/apache/hadoop/hbase/backup/TestBackupDescribe.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.backup.TestBackupHFileCleaner.java">org/apache/hadoop/hbase/backup/TestBackupHFileCleaner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.backup.TestBackupShowHistory.java">org/apache/hadoop/hbase/backup/TestBackupShowHistory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.backup.TestBackupStatusProgress.java">org/apache/hadoop/hbase/backup/TestBackupStatusProgress.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.backup.TestBackupSystemTable.java">org/apache/hadoop/hbase/backup/TestBackupSystemTable.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.backup.TestFullBackupSet.java">org/apache/hadoop/hbase/backup/TestFullBackupSet.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.backup.TestFullRestore.java">org/apache/hadoop/hbase/backup/TestFullRestore.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>11</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.backup.TestHFileArchiving.java">org/apache/hadoop/hbase/backup/TestHFileArchiving.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>13</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.backup.TestIncrementalBackupMergeWithFailures.java">org/apache/hadoop/hbase/backup/TestIncrementalBackupMergeWithFailures.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.backup.TestIncrementalBackupWithBulkLoad.java">org/apache/hadoop/hbase/backup/TestIncrementalBackupWithBulkLoad.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>5</td></tr>
-<tr class="a">
+<td>6</td></tr>
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.backup.TestRemoteBackup.java">org/apache/hadoop/hbase/backup/TestRemoteBackup.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.backup.TestRemoteRestore.java">org/apache/hadoop/hbase/backup/TestRemoteRestore.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.backup.TestRepairAfterFailedDelete.java">org/apache/hadoop/hbase/backup/TestRepairAfterFailedDelete.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.backup.TestRestoreBoundaryTests.java">org/apache/hadoop/hbase/backup/TestRestoreBoundaryTests.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.backup.TestSystemTableSnapshot.java">org/apache/hadoop/hbase/backup/TestSystemTableSnapshot.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.backup.example.HFileArchiveManager.java">org/apache/hadoop/hbase/backup/example/HFileArchiveManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.backup.example.LongTermArchivingHFileCleaner.java">org/apache/hadoop/hbase/backup/example/LongTermArchivingHFileCleaner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.backup.example.TableHFileArchiveTracker.java">org/apache/hadoop/hbase/backup/example/TableHFileArchiveTracker.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.backup.example.TestZooKeeperTableArchiveClient.java">org/apache/hadoop/hbase/backup/example/TestZooKeeperTableArchiveClient.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>9</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.backup.example.ZKTableArchiveClient.java">org/apache/hadoop/hbase/backup/example/ZKTableArchiveClient.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.backup.impl.BackupAdminImpl.java">org/apache/hadoop/hbase/backup/impl/BackupAdminImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>15</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.backup.impl.BackupCommands.java">org/apache/hadoop/hbase/backup/impl/BackupCommands.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>57</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.backup.impl.BackupManager.java">org/apache/hadoop/hbase/backup/impl/BackupManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.backup.impl.BackupManifest.java">org/apache/hadoop/hbase/backup/impl/BackupManifest.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.backup.impl.BackupSystemTable.java">org/apache/hadoop/hbase/backup/impl/BackupSystemTable.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>21</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.backup.impl.FullTableBackupClient.java">org/apache/hadoop/hbase/backup/impl/FullTableBackupClient.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.backup.impl.IncrementalBackupManager.java">org/apache/hadoop/hbase/backup/impl/IncrementalBackupManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.backup.impl.IncrementalTableBackupClient.java">org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>10</td></tr>
-<tr class="a">
+<td>9</td></tr>
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.backup.impl.RestoreTablesClient.java">org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>2</td></tr>
-<tr class="b">
+<td>1</td></tr>
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.backup.impl.TableBackupClient.java">org/apache/hadoop/hbase/backup/impl/TableBackupClient.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>13</td></tr>
-<tr class="a">
+<td>4</td></tr>
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.backup.mapreduce.MapReduceBackupMergeJob.java">org/apache/hadoop/hbase/backup/mapreduce/MapReduceBackupMergeJob.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.backup.mapreduce.MapReduceHFileSplitterJob.java">org/apache/hadoop/hbase/backup/mapreduce/MapReduceHFileSplitterJob.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.backup.mapreduce.MapReduceRestoreJob.java">org/apache/hadoop/hbase/backup/mapreduce/MapReduceRestoreJob.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.backup.master.BackupLogCleaner.java">org/apache/hadoop/hbase/backup/master/BackupLogCleaner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.backup.master.LogRollMasterProcedureManager.java">org/apache/hadoop/hbase/backup/master/LogRollMasterProcedureManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.backup.regionserver.LogRollBackupSubprocedure.java">org/apache/hadoop/hbase/backup/regionserver/LogRollBackupSubprocedure.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.backup.regionserver.LogRollBackupSubprocedurePool.java">org/apache/hadoop/hbase/backup/regionserver/LogRollBackupSubprocedurePool.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.backup.regionserver.LogRollRegionServerProcedureManager.java">org/apache/hadoop/hbase/backup/regionserver/LogRollRegionServerProcedureManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.backup.util.BackupUtils.java">org/apache/hadoop/hbase/backup/util/BackupUtils.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.backup.util.RestoreTool.java">org/apache/hadoop/hbase/backup/util/RestoreTool.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.chaos.actions.Action.java">org/apache/hadoop/hbase/chaos/actions/Action.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.chaos.actions.ChangeCompressionAction.java">org/apache/hadoop/hbase/chaos/actions/ChangeCompressionAction.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.chaos.actions.ChangeEncodingAction.java">org/apache/hadoop/hbase/chaos/actions/ChangeEncodingAction.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.chaos.actions.ChangeSplitPolicyAction.java">org/apache/hadoop/hbase/chaos/actions/ChangeSplitPolicyAction.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.chaos.actions.ChangeVersionsAction.java">org/apache/hadoop/hbase/chaos/actions/ChangeVersionsAction.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.chaos.actions.RestartRandomDataNodeAction.java">org/apache/hadoop/hbase/chaos/actions/RestartRandomDataNodeAction.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.chaos.actions.RollingBatchRestartRsAction.java">org/apache/hadoop/hbase/chaos/actions/RollingBatchRestartRsAction.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>21</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.chaos.actions.SplitAllRegionOfTableAction.java">org/apache/hadoop/hbase/chaos/actions/SplitAllRegionOfTableAction.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.chaos.actions.TruncateTableAction.java">org/apache/hadoop/hbase/chaos/actions/TruncateTableAction.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.chaos.factories.MasterKillingMonkeyFactory.java">org/apache/hadoop/hbase/chaos/factories/MasterKillingMonkeyFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.chaos.factories.MobNoKillMonkeyFactory.java">org/apache/hadoop/hbase/chaos/factories/MobNoKillMonkeyFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.chaos.factories.MobSlowDeterministicMonkeyFactory.java">org/apache/hadoop/hbase/chaos/factories/MobSlowDeterministicMonkeyFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>24</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.chaos.factories.MonkeyConstants.java">org/apache/hadoop/hbase/chaos/factories/MonkeyConstants.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.chaos.factories.MonkeyFactory.java">org/apache/hadoop/hbase/chaos/factories/MonkeyFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.chaos.factories.NoKillMonkeyFactory.java">org/apache/hadoop/hbase/chaos/factories/NoKillMonkeyFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>18</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.chaos.factories.ServerKillingMonkeyFactory.java">org/apache/hadoop/hbase/chaos/factories/ServerKillingMonkeyFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.chaos.factories.SlowDeterministicMonkeyFactory.java">org/apache/hadoop/hbase/chaos/factories/SlowDeterministicMonkeyFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>42</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.chaos.factories.StressAssignmentManagerMonkeyFactory.java">org/apache/hadoop/hbase/chaos/factories/StressAssignmentManagerMonkeyFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>19</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.chaos.monkies.PolicyBasedChaosMonkey.java">org/apache/hadoop/hbase/chaos/monkies/PolicyBasedChaosMonkey.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.chaos.policies.PeriodicPolicy.java">org/apache/hadoop/hbase/chaos/policies/PeriodicPolicy.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.chaos.policies.TwoConcurrentActionPolicy.java">org/apache/hadoop/hbase/chaos/policies/TwoConcurrentActionPolicy.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.AbstractClientScanner.java">org/apache/hadoop/hbase/client/AbstractClientScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.AbstractResponse.java">org/apache/hadoop/hbase/client/AbstractResponse.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.Action.java">org/apache/hadoop/hbase/client/Action.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.Admin.java">org/apache/hadoop/hbase/client/Admin.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>98</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.Append.java">org/apache/hadoop/hbase/client/Append.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncAdmin.java">org/apache/hadoop/hbase/client/AsyncAdmin.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>12</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncAdminBuilder.java">org/apache/hadoop/hbase/client/AsyncAdminBuilder.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>9</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncAdminRequestRetryingCaller.java">org/apache/hadoop/hbase/client/AsyncAdminRequestRetryingCaller.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncBatchRpcRetryingCaller.java">org/apache/hadoop/hbase/client/AsyncBatchRpcRetryingCaller.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncClientScanner.java">org/apache/hadoop/hbase/client/AsyncClientScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncConnectionConfiguration.java">org/apache/hadoop/hbase/client/AsyncConnectionConfiguration.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncConnectionImpl.java">org/apache/hadoop/hbase/client/AsyncConnectionImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncHBaseAdmin.java">org/apache/hadoop/hbase/client/AsyncHBaseAdmin.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncMasterRequestRpcRetryingCaller.java">org/apache/hadoop/hbase/client/AsyncMasterRequestRpcRetryingCaller.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncMetaRegionLocator.java">org/apache/hadoop/hbase/client/AsyncMetaRegionLocator.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncNonMetaRegionLocator.java">org/apache/hadoop/hbase/client/AsyncNonMetaRegionLocator.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncProcess.java">org/apache/hadoop/hbase/client/AsyncProcess.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>13</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncProcessTask.java">org/apache/hadoop/hbase/client/AsyncProcessTask.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncRegionLocator.java">org/apache/hadoop/hbase/client/AsyncRegionLocator.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncRegistryFactory.java">org/apache/hadoop/hbase/client/AsyncRegistryFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncRequestFuture.java">org/apache/hadoop/hbase/client/AsyncRequestFuture.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncRequestFutureImpl.java">org/apache/hadoop/hbase/client/AsyncRequestFutureImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>27</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncRpcRetryingCaller.java">org/apache/hadoop/hbase/client/AsyncRpcRetryingCaller.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.java">org/apache/hadoop/hbase/client/AsyncRpcRetryingCallerFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncScanSingleRegionRpcRetryingCaller.java">org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncServerRequestRpcRetryingCaller.java">org/apache/hadoop/hbase/client/AsyncServerRequestRpcRetryingCaller.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncSingleRequestRpcRetryingCaller.java">org/apache/hadoop/hbase/client/AsyncSingleRequestRpcRetryingCaller.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncTableImpl.java">org/apache/hadoop/hbase/client/AsyncTableImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncTableResultScanner.java">org/apache/hadoop/hbase/client/AsyncTableResultScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.BatchErrors.java">org/apache/hadoop/hbase/client/BatchErrors.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.BatchScanResultCache.java">org/apache/hadoop/hbase/client/BatchScanResultCache.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.BufferingScanResultConsumer.java">org/apache/hadoop/hbase/client/BufferingScanResultConsumer.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.CancellableRegionServerCallable.java">org/apache/hadoop/hbase/client/CancellableRegionServerCallable.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.ClientAsyncPrefetchScanner.java">org/apache/hadoop/hbase/client/ClientAsyncPrefetchScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.ClientIdGenerator.java">org/apache/hadoop/hbase/client/ClientIdGenerator.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.ClientScanner.java">org/apache/hadoop/hbase/client/ClientScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.ClientServiceCallable.java">org/apache/hadoop/hbase/client/ClientServiceCallable.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.ClientSideRegionScanner.java">org/apache/hadoop/hbase/client/ClientSideRegionScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.ClientSimpleScanner.java">org/apache/hadoop/hbase/client/ClientSimpleScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.ClientUtil.java">org/apache/hadoop/hbase/client/ClientUtil.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.ClusterConnection.java">org/apache/hadoop/hbase/client/ClusterConnection.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.ColumnCountOnRowFilter.java">org/apache/hadoop/hbase/client/ColumnCountOnRowFilter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.ColumnFamilyDescriptor.java">org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>13</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder.java">org/apache/hadoop/hbase/client/ColumnFamilyDescriptorBuilder.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>54</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.CompactType.java">org/apache/hadoop/hbase/client/CompactType.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.CompleteScanResultCache.java">org/apache/hadoop/hbase/client/CompleteScanResultCache.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.ConnectionFactory.java">org/apache/hadoop/hbase/client/ConnectionFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.ConnectionImplementation.java">org/apache/hadoop/hbase/client/ConnectionImplementation.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.ConnectionUtils.java">org/apache/hadoop/hbase/client/ConnectionUtils.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.DelayingRunner.java">org/apache/hadoop/hbase/client/DelayingRunner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.Delete.java">org/apache/hadoop/hbase/client/Delete.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.Get.java">org/apache/hadoop/hbase/client/Get.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>10</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.HBaseAdmin.java">org/apache/hadoop/hbase/client/HBaseAdmin.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>72</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.HConnectionTestingUtility.java">org/apache/hadoop/hbase/client/HConnectionTestingUtility.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>14</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.HRegionLocator.java">org/apache/hadoop/hbase/client/HRegionLocator.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.HTable.java">org/apache/hadoop/hbase/client/HTable.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>46</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.HTableMultiplexer.java">org/apache/hadoop/hbase/client/HTableMultiplexer.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.ImmutableHColumnDescriptor.java">org/apache/hadoop/hbase/client/ImmutableHColumnDescriptor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.ImmutableHRegionInfo.java">org/apache/hadoop/hbase/client/ImmutableHRegionInfo.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.ImmutableHTableDescriptor.java">org/apache/hadoop/hbase/client/ImmutableHTableDescriptor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.MasterCallable.java">org/apache/hadoop/hbase/client/MasterCallable.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.MasterCoprocessorRpcChannelImpl.java">org/apache/hadoop/hbase/client/MasterCoprocessorRpcChannelImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.MasterKeepAliveConnection.java">org/apache/hadoop/hbase/client/MasterKeepAliveConnection.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.MetaCache.java">org/apache/hadoop/hbase/client/MetaCache.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.MetricsConnection.java">org/apache/hadoop/hbase/client/MetricsConnection.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>41</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.MultiAction.java">org/apache/hadoop/hbase/client/MultiAction.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.MultiResponse.java">org/apache/hadoop/hbase/client/MultiResponse.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.MultiServerCallable.java">org/apache/hadoop/hbase/client/MultiServerCallable.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.Mutation.java">org/apache/hadoop/hbase/client/Mutation.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>23</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.NoOpRetryableCallerInterceptor.java">org/apache/hadoop/hbase/client/NoOpRetryableCallerInterceptor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.NoncedRegionServerCallable.java">org/apache/hadoop/hbase/client/NoncedRegionServerCallable.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.Operation.java">org/apache/hadoop/hbase/client/Operation.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.PackagePrivateFieldAccessor.java">org/apache/hadoop/hbase/client/PackagePrivateFieldAccessor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.PreemptiveFastFailInterceptor.java">org/apache/hadoop/hbase/client/PreemptiveFastFailInterceptor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>13</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.Put.java">org/apache/hadoop/hbase/client/Put.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>9</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.Query.java">org/apache/hadoop/hbase/client/Query.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>10</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.QuotaStatusCalls.java">org/apache/hadoop/hbase/client/QuotaStatusCalls.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.RawAsyncHBaseAdmin.java">org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>89</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.RegionAdminServiceCallable.java">org/apache/hadoop/hbase/client/RegionAdminServiceCallable.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.RegionCoprocessorRpcChannel.java">org/apache/hadoop/hbase/client/RegionCoprocessorRpcChannel.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.RegionCoprocessorRpcChannelImpl.java">org/apache/hadoop/hbase/client/RegionCoprocessorRpcChannelImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.RegionCoprocessorServiceExec.java">org/apache/hadoop/hbase/client/RegionCoprocessorServiceExec.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.RegionInfo.java">org/apache/hadoop/hbase/client/RegionInfo.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>55</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.RegionInfoBuilder.java">org/apache/hadoop/hbase/client/RegionInfoBuilder.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.RegionInfoDisplay.java">org/apache/hadoop/hbase/client/RegionInfoDisplay.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>17</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.RegionLocator.java">org/apache/hadoop/hbase/client/RegionLocator.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.RegionReplicaUtil.java">org/apache/hadoop/hbase/client/RegionReplicaUtil.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>8</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.RegionServerCallable.java">org/apache/hadoop/hbase/client/RegionServerCallable.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.RegionServerCoprocessorRpcChannelImpl.java">org/apache/hadoop/hbase/client/RegionServerCoprocessorRpcChannelImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.RequestController.java">org/apache/hadoop/hbase/client/RequestController.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.RequestControllerFactory.java">org/apache/hadoop/hbase/client/RequestControllerFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.Result.java">org/apache/hadoop/hbase/client/Result.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>13</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.ResultBoundedCompletionService.java">org/apache/hadoop/hbase/client/ResultBoundedCompletionService.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.ResultScanner.java">org/apache/hadoop/hbase/client/ResultScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.RetriesExhaustedException.java">org/apache/hadoop/hbase/client/RetriesExhaustedException.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.RetriesExhaustedWithDetailsException.java">org/apache/hadoop/hbase/client/RetriesExhaustedWithDetailsException.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.RetryingCallerInterceptor.java">org/apache/hadoop/hbase/client/RetryingCallerInterceptor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.ReversedClientScanner.java">org/apache/hadoop/hbase/client/ReversedClientScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>8</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.ReversedScannerCallable.java">org/apache/hadoop/hbase/client/ReversedScannerCallable.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>11</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.RowAccess.java">org/apache/hadoop/hbase/client/RowAccess.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.RowMutations.java">org/apache/hadoop/hbase/client/RowMutations.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.RpcRetryingCaller.java">org/apache/hadoop/hbase/client/RpcRetryingCaller.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.RpcRetryingCallerImpl.java">org/apache/hadoop/hbase/client/RpcRetryingCallerImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.RpcRetryingCallerWithReadReplicas.java">org/apache/hadoop/hbase/client/RpcRetryingCallerWithReadReplicas.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>8</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.Scan.java">org/apache/hadoop/hbase/client/Scan.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>8</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.ScannerCallable.java">org/apache/hadoop/hbase/client/ScannerCallable.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.ScannerCallableWithReplicas.java">org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.SecureBulkLoadClient.java">org/apache/hadoop/hbase/client/SecureBulkLoadClient.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>19</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.ServerStatisticTracker.java">org/apache/hadoop/hbase/client/ServerStatisticTracker.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.ShortCircuitMasterConnection.java">org/apache/hadoop/hbase/client/ShortCircuitMasterConnection.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.SimpleRequestController.java">org/apache/hadoop/hbase/client/SimpleRequestController.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>10</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.SimpleScanResultConsumer.java">org/apache/hadoop/hbase/client/SimpleScanResultConsumer.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.SyncCoprocessorRpcChannel.java">org/apache/hadoop/hbase/client/SyncCoprocessorRpcChannel.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.Table.java">org/apache/hadoop/hbase/client/Table.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>17</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TableDescriptor.java">org/apache/hadoop/hbase/client/TableDescriptor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TableDescriptorBuilder.java">org/apache/hadoop/hbase/client/TableDescriptorBuilder.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>41</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TableState.java">org/apache/hadoop/hbase/client/TableState.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>36</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestAdmin1.java">org/apache/hadoop/hbase/client/TestAdmin1.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>38</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestAdmin2.java">org/apache/hadoop/hbase/client/TestAdmin2.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>13</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestAlwaysSetScannerId.java">org/apache/hadoop/hbase/client/TestAlwaysSetScannerId.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestAppendFromClientSide.java">org/apache/hadoop/hbase/client/TestAppendFromClientSide.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestAsyncAdminBuilder.java">org/apache/hadoop/hbase/client/TestAsyncAdminBuilder.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestAsyncClusterAdminApi.java">org/apache/hadoop/hbase/client/TestAsyncClusterAdminApi.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestAsyncNamespaceAdminApi.java">org/apache/hadoop/hbase/client/TestAsyncNamespaceAdminApi.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestAsyncNonMetaRegionLocator.java">org/apache/hadoop/hbase/client/TestAsyncNonMetaRegionLocator.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestAsyncProcess.java">org/apache/hadoop/hbase/client/TestAsyncProcess.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>17</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestAsyncQuotaAdminApi.java">org/apache/hadoop/hbase/client/TestAsyncQuotaAdminApi.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>8</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestAsyncRegionAdminApi.java">org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestAsyncReplicationAdminApi.java">org/apache/hadoop/hbase/client/TestAsyncReplicationAdminApi.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestAsyncSingleRequestRpcRetryingCaller.java">org/apache/hadoop/hbase/client/TestAsyncSingleRequestRpcRetryingCaller.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>17</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestAsyncSnapshotAdminApi.java">org/apache/hadoop/hbase/client/TestAsyncSnapshotAdminApi.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestAsyncTable.java">org/apache/hadoop/hbase/client/TestAsyncTable.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestAsyncTableScanMetrics.java">org/apache/hadoop/hbase/client/TestAsyncTableScanMetrics.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestAsyncTableScanner.java">org/apache/hadoop/hbase/client/TestAsyncTableScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestAttributes.java">org/apache/hadoop/hbase/client/TestAttributes.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestAvoidCellReferencesIntoShippedBlocks.java">org/apache/hadoop/hbase/client/TestAvoidCellReferencesIntoShippedBlocks.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestBlockEvictionFromClient.java">org/apache/hadoop/hbase/client/TestBlockEvictionFromClient.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestBufferedMutator.java">org/apache/hadoop/hbase/client/TestBufferedMutator.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestCIBadHostname.java">org/apache/hadoop/hbase/client/TestCIBadHostname.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestCheckAndMutate.java">org/apache/hadoop/hbase/client/TestCheckAndMutate.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestClientExponentialBackoff.java">org/apache/hadoop/hbase/client/TestClientExponentialBackoff.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestClientNoCluster.java">org/apache/hadoop/hbase/client/TestClientNoCluster.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>33</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestClientOperationInterrupt.java">org/apache/hadoop/hbase/client/TestClientOperationInterrupt.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestClientPushback.java">org/apache/hadoop/hbase/client/TestClientPushback.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>9</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestClientScanner.java">org/apache/hadoop/hbase/client/TestClientScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>11</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestClientScannerRPCTimeout.java">org/apache/hadoop/hbase/client/TestClientScannerRPCTimeout.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestClientTimeouts.java">org/apache/hadoop/hbase/client/TestClientTimeouts.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestCloneSnapshotFromClient.java">org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestColumnFamilyDescriptorBuilder.java">org/apache/hadoop/hbase/client/TestColumnFamilyDescriptorBuilder.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestConnectionImplementation.java">org/apache/hadoop/hbase/client/TestConnectionImplementation.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>15</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestConnectionUtils.java">org/apache/hadoop/hbase/client/TestConnectionUtils.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestDropTimeoutRequest.java">org/apache/hadoop/hbase/client/TestDropTimeoutRequest.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestEnableTable.java">org/apache/hadoop/hbase/client/TestEnableTable.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestFastFail.java">org/apache/hadoop/hbase/client/TestFastFail.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestFromClientSide.java">org/apache/hadoop/hbase/client/TestFromClientSide.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>155</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestFromClientSide3.java">org/apache/hadoop/hbase/client/TestFromClientSide3.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>24</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestFromClientSideNoCodec.java">org/apache/hadoop/hbase/client/TestFromClientSideNoCodec.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestFromClientSideScanExcpetion.java">org/apache/hadoop/hbase/client/TestFromClientSideScanExcpetion.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestFromClientSideWithCoprocessor.java">org/apache/hadoop/hbase/client/TestFromClientSideWithCoprocessor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestGet.java">org/apache/hadoop/hbase/client/TestGet.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestHBaseAdminNoCluster.java">org/apache/hadoop/hbase/client/TestHBaseAdminNoCluster.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>11</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestHTableMultiplexer.java">org/apache/hadoop/hbase/client/TestHTableMultiplexer.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestHTableMultiplexerFlushCache.java">org/apache/hadoop/hbase/client/TestHTableMultiplexerFlushCache.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestHTableMultiplexerViaMocks.java">org/apache/hadoop/hbase/client/TestHTableMultiplexerViaMocks.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestImmutableHColumnDescriptor.java">org/apache/hadoop/hbase/client/TestImmutableHColumnDescriptor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestImmutableHRegionInfo.java">org/apache/hadoop/hbase/client/TestImmutableHRegionInfo.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestImmutableHTableDescriptor.java">org/apache/hadoop/hbase/client/TestImmutableHTableDescriptor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestIncrementsFromClientSide.java">org/apache/hadoop/hbase/client/TestIncrementsFromClientSide.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestIntraRowPagination.java">org/apache/hadoop/hbase/client/TestIntraRowPagination.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestLeaseRenewal.java">org/apache/hadoop/hbase/client/TestLeaseRenewal.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestLimitedScanWithFilter.java">org/apache/hadoop/hbase/client/TestLimitedScanWithFilter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestMetaCache.java">org/apache/hadoop/hbase/client/TestMetaCache.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>17</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestMetaWithReplicas.java">org/apache/hadoop/hbase/client/TestMetaWithReplicas.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>9</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestMetricsConnection.java">org/apache/hadoop/hbase/client/TestMetricsConnection.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClient.java">org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestMobSnapshotCloneIndependence.java">org/apache/hadoop/hbase/client/TestMobSnapshotCloneIndependence.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestMultiParallel.java">org/apache/hadoop/hbase/client/TestMultiParallel.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>9</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestMultipleTimestamps.java">org/apache/hadoop/hbase/client/TestMultipleTimestamps.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>32</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestOperation.java">org/apache/hadoop/hbase/client/TestOperation.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>11</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestProcedureFuture.java">org/apache/hadoop/hbase/client/TestProcedureFuture.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestPutDeleteEtcCellIteration.java">org/apache/hadoop/hbase/client/TestPutDeleteEtcCellIteration.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestPutWithDelete.java">org/apache/hadoop/hbase/client/TestPutWithDelete.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestRawAsyncTableLimitedScanWithFilter.java">org/apache/hadoop/hbase/client/TestRawAsyncTableLimitedScanWithFilter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestRawAsyncTableScan.java">org/apache/hadoop/hbase/client/TestRawAsyncTableScan.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestReplicaWithCluster.java">org/apache/hadoop/hbase/client/TestReplicaWithCluster.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestReplicasClient.java">org/apache/hadoop/hbase/client/TestReplicasClient.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>11</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestRestoreSnapshotFromClient.java">org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClient.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestResult.java">org/apache/hadoop/hbase/client/TestResult.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestResultFromCoprocessor.java">org/apache/hadoop/hbase/client/TestResultFromCoprocessor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestResultSizeEstimation.java">org/apache/hadoop/hbase/client/TestResultSizeEstimation.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestRetriesExhaustedWithDetailsException.java">org/apache/hadoop/hbase/client/TestRetriesExhaustedWithDetailsException.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestReversedScannerCallable.java">org/apache/hadoop/hbase/client/TestReversedScannerCallable.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestRpcControllerFactory.java">org/apache/hadoop/hbase/client/TestRpcControllerFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestScan.java">org/apache/hadoop/hbase/client/TestScan.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestScanWithoutFetchingData.java">org/apache/hadoop/hbase/client/TestScanWithoutFetchingData.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestScannerTimeout.java">org/apache/hadoop/hbase/client/TestScannerTimeout.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestScannersFromClientSide.java">org/apache/hadoop/hbase/client/TestScannersFromClientSide.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>20</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestScannersFromClientSide2.java">org/apache/hadoop/hbase/client/TestScannersFromClientSide2.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestServerBusyException.java">org/apache/hadoop/hbase/client/TestServerBusyException.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestShortCircuitConnection.java">org/apache/hadoop/hbase/client/TestShortCircuitConnection.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestSizeFailures.java">org/apache/hadoop/hbase/client/TestSizeFailures.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestSmallReversedScanner.java">org/apache/hadoop/hbase/client/TestSmallReversedScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestSnapshotCloneIndependence.java">org/apache/hadoop/hbase/client/TestSnapshotCloneIndependence.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestSnapshotFromAdmin.java">org/apache/hadoop/hbase/client/TestSnapshotFromAdmin.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestSnapshotFromClient.java">org/apache/hadoop/hbase/client/TestSnapshotFromClient.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>13</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestSnapshotMetadata.java">org/apache/hadoop/hbase/client/TestSnapshotMetadata.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestSnapshotWithAcl.java">org/apache/hadoop/hbase/client/TestSnapshotWithAcl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestSplitOrMergeStatus.java">org/apache/hadoop/hbase/client/TestSplitOrMergeStatus.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestTableDescriptorBuilder.java">org/apache/hadoop/hbase/client/TestTableDescriptorBuilder.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>11</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestTableFavoredNodes.java">org/apache/hadoop/hbase/client/TestTableFavoredNodes.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestTableSnapshotScanner.java">org/apache/hadoop/hbase/client/TestTableSnapshotScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestTimestampsFilter.java">org/apache/hadoop/hbase/client/TestTimestampsFilter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>18</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestUpdateConfiguration.java">org/apache/hadoop/hbase/client/TestUpdateConfiguration.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
+<tr class="b">
+<td><a href="#org.apache.hadoop.hbase.client.TestZKAsyncRegistry.java">org/apache/hadoop/hbase/client/TestZKAsyncRegistry.java</a></td>
+<td>0</td>
+<td>0</td>
+<td>1</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.VersionInfoUtil.java">org/apache/hadoop/hbase/client/VersionInfoUtil.java</a></td>
 <td>0</td>
@@ -10697,7 +10707,7 @@
 <td><a href="#org.apache.hadoop.hbase.util.JVMClusterUtil.java">org/apache/hadoop/hbase/util/JVMClusterUtil.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>12</td></tr>
+<td>11</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.util.JenkinsHash.java">org/apache/hadoop/hbase/util/JenkinsHash.java</a></td>
 <td>0</td>
@@ -11424,7 +11434,7 @@
 <tr class="b">
 <td></td>
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_blocks.html#LeftCurly">LeftCurly</a></td>
-<td>218</td>
+<td>216</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="a">
 <td></td>
@@ -11492,7 +11502,7 @@
 <li>sortStaticImportsAlphabetically: <tt>&quot;true&quot;</tt></li>
 <li>groups: <tt>&quot;*,org.apache.hbase.thirdparty,org.apache.hadoop.hbase.shaded&quot;</tt></li>
 <li>option: <tt>&quot;top&quot;</tt></li></ul></td>
-<td>1918</td>
+<td>1917</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="a">
 <td></td>
@@ -11504,7 +11514,7 @@
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_imports.html#UnusedImports">UnusedImports</a>
 <ul>
 <li>processJavadoc: <tt>&quot;true&quot;</tt></li></ul></td>
-<td>153</td>
+<td>156</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="a">
 <td>indentation</td>
@@ -11515,19 +11525,19 @@
 <li>caseIndent: <tt>&quot;2&quot;</tt></li>
 <li>basicOffset: <tt>&quot;2&quot;</tt></li>
 <li>lineWrappingIndentation: <tt>&quot;2&quot;</tt></li></ul></td>
-<td>5336</td>
+<td>5330</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="b">
 <td>javadoc</td>
 <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>805</td>
+<td>790</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>4051</td>
+<td>4066</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="b">
 <td>misc</td>
@@ -11560,7 +11570,7 @@
 <tr class="a">
 <td></td>
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_whitespace.html#MethodParamPad">MethodParamPad</a></td>
-<td>199</td>
+<td>198</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="b">
 <td></td>
@@ -16051,7 +16061,7 @@
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 26 has parse error. Missed HTML close tag 'arg'. Sometimes it means that close tag missed for one of previous tags.</td>
 <td>43</td></tr></table></div>
 <div class="section">
@@ -16687,7 +16697,7 @@
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 4 has parse error. Missed HTML close tag 'pre'. Sometimes it means that close tag missed for one of previous tags.</td>
 <td>59</td></tr></table></div>
 <div class="section">
@@ -18817,7 +18827,7 @@
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 19 has parse error. Details: no viable alternative at input '&lt;code&gt;\n   *   List&lt;Future&lt;' while parsing HTML_TAG</td>
 <td>165</td></tr></table></div>
 <div class="section">
@@ -20717,6 +20727,33 @@
 <td>Wrong order for 'org.apache.hadoop.hbase.ClassFinder.And' import.</td>
 <td>36</td></tr></table></div>
 <div class="section">
+<h3 id="org.apache.hadoop.hbase.TestJMXConnectorServer.java">org/apache/hadoop/hbase/TestJMXConnectorServer.java</h3>
+<table border="0" class="table table-striped">
+<tr class="a">
+<th>Severity</th>
+<th>Category</th>
+<th>Rule</th>
+<th>Message</th>
+<th>Line</th></tr>
+<tr class="b">
+<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
+<td>imports</td>
+<td>UnusedImports</td>
+<td>Unused import - org.apache.hadoop.hbase.security.access.AccessControlLists.</td>
+<td>34</td></tr>
+<tr class="a">
+<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
+<td>imports</td>
+<td>UnusedImports</td>
+<td>Unused import - org.apache.hadoop.hbase.util.Threads.</td>
+<td>38</td></tr>
+<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 103).</td>
+<td>187</td></tr></table></div>
+<div class="section">
 <h3 id="org.apache.hadoop.hbase.TestJMXListener.java">org/apache/hadoop/hbase/TestJMXListener.java</h3>
 <table border="0" class="table table-striped">
 <tr class="a">
@@ -21859,7 +21896,7 @@
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 2 has parse error. Unrecognized error from ANTLR parser: null</td>
 <td>83</td></tr>
 <tr class="a">
@@ -22311,79 +22348,79 @@
 <td>blocks</td>
 <td>LeftCurly</td>
 <td>'{' at column 3 should be on the previous line.</td>
-<td>113</td></tr>
+<td>112</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>LeftCurly</td>
 <td>'{' at column 5 should be on the previous line.</td>
-<td>125</td></tr>
+<td>124</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>LeftCurly</td>
 <td>'{' at column 3 should be on the previous line.</td>
-<td>183</td></tr>
+<td>182</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>LeftCurly</td>
 <td>'{' at column 5 should be on the previous line.</td>
-<td>196</td></tr>
+<td>195</td></tr>
 <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 105).</td>
-<td>208</td></tr>
+<td>207</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>286</td></tr>
+<td>285</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>322</td></tr>
+<td>318</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>whitespace</td>
 <td>ParenPad</td>
 <td>'(' is followed by whitespace.</td>
-<td>322</td></tr>
+<td>318</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>327</td></tr>
+<td>323</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>whitespace</td>
 <td>ParenPad</td>
 <td>'(' is followed by whitespace.</td>
-<td>327</td></tr>
+<td>323</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>345</td></tr>
+<td>341</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>468</td></tr>
+<td>464</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>474</td></tr></table></div>
+<td>470</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.backup.TestBackupBoundaryTests.java">org/apache/hadoop/hbase/backup/TestBackupBoundaryTests.java</h3>
 <table border="0" class="table table-striped">
@@ -22910,24 +22947,30 @@
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
+<td>'array initialization' child have incorrect indentation level 10, expected level should be one of the following: 8, 23.</td>
+<td>121</td></tr>
+<tr class="b">
+<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
+<td>indentation</td>
+<td>Indentation</td>
 <td>'=' have incorrect indentation level 6, expected level should be 8.</td>
-<td>133</td></tr></table></div>
+<td>147</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.backup.TestRemoteBackup.java">org/apache/hadoop/hbase/backup/TestRemoteBackup.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>whitespace</td>
 <td>MethodParamPad</td>
 <td>'(' is preceded with whitespace.</td>
 <td>45</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>
@@ -22936,19 +22979,19 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.backup.TestRemoteRestore.java">org/apache/hadoop/hbase/backup/TestRemoteRestore.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>whitespace</td>
 <td>MethodParamPad</td>
 <td>'(' is preceded with whitespace.</td>
 <td>31</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>
@@ -22957,13 +23000,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.backup.TestRepairAfterFailedDelete.java">org/apache/hadoop/hbase/backup/TestRepairAfterFailedDelete.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>whitespace</td>
 <td>MethodParamPad</td>
@@ -22972,19 +23015,19 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.backup.TestRestoreBoundaryTests.java">org/apache/hadoop/hbase/backup/TestRestoreBoundaryTests.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>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>41</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>
@@ -22993,13 +23036,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.backup.TestSystemTableSnapshot.java">org/apache/hadoop/hbase/backup/TestSystemTableSnapshot.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>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -23008,31 +23051,31 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.backup.example.HFileArchiveManager.java">org/apache/hadoop/hbase/backup/example/HFileArchiveManager.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 'org.apache.hadoop.hbase.client.Connection' import.</td>
 <td>26</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 115).</td>
 <td>71</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>'method def' child have incorrect indentation level 6, expected level should be 4.</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>
@@ -23041,37 +23084,37 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.backup.example.LongTermArchivingHFileCleaner.java">org/apache/hadoop/hbase/backup/example/LongTermArchivingHFileCleaner.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>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.conf.Configuration' import.</td>
 <td>23</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>56</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>63</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 101).</td>
 <td>72</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>
@@ -23080,49 +23123,49 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.backup.example.TableHFileArchiveTracker.java">org/apache/hadoop/hbase/backup/example/TableHFileArchiveTracker.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>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.conf.Configuration' import.</td>
 <td>25</td></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 'org.apache.hadoop.hbase.zookeeper.ZKListener' import.</td>
 <td>28</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>design</td>
 <td>FinalClass</td>
 <td>Class TableHFileArchiveTracker should be declared as final.</td>
 <td>40</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>70</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>93</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>137</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>
@@ -23131,61 +23174,61 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.backup.example.TestZooKeeperTableArchiveClient.java">org/apache/hadoop/hbase/backup/example/TestZooKeeperTableArchiveClient.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>264</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>265</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>288</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 103).</td>
 <td>291</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>EmptyBlock</td>
 <td>Must have at least one statement.</td>
 <td>341</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>369</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>394</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>421</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>
@@ -23194,19 +23237,19 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.backup.example.ZKTableArchiveClient.java">org/apache/hadoop/hbase/backup/example/ZKTableArchiveClient.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>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.conf.Configuration' imp

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html b/devapidocs/org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html
deleted file mode 100644
index 31db111..0000000
--- a/devapidocs/org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html
+++ /dev/null
@@ -1,422 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!-- NewPage -->
-<html lang="en">
-<head>
-<!-- Generated by javadoc -->
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>ZKMetricsListener (Apache HBase 3.0.0-SNAPSHOT API)</title>
-<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
-<script type="text/javascript" src="../../../../../script.js"></script>
-</head>
-<body>
-<script type="text/javascript"><!--
-    try {
-        if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ZKMetricsListener (Apache HBase 3.0.0-SNAPSHOT API)";
-        }
-    }
-    catch(err) {
-    }
-//-->
-var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6};
-var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
-var altColor = "altColor";
-var rowColor = "rowColor";
-var tableTab = "tableTab";
-var activeTableTab = "activeTableTab";
-</script>
-<noscript>
-<div>JavaScript is disabled on your browser.</div>
-</noscript>
-<!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
-<!--   -->
-</a>
-<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
-<!--   -->
-</a>
-<ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
-<li><a href="package-summary.html">Package</a></li>
-<li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/ZKMetricsListener.html">Use</a></li>
-<li><a href="package-tree.html">Tree</a></li>
-<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../../index-all.html">Index</a></li>
-<li><a href="../../../../../help-doc.html">Help</a></li>
-</ul>
-</div>
-<div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetrics.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKNodeTracker.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html" target="_top">Frames</a></li>
-<li><a href="ZKMetricsListener.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
-</ul>
-<div>
-<script type="text/javascript"><!--
-  allClassesLink = document.getElementById("allclasses_navbar_top");
-  if(window==top) {
-    allClassesLink.style.display = "block";
-  }
-  else {
-    allClassesLink.style.display = "none";
-  }
-  //-->
-</script>
-</div>
-<div>
-<ul class="subNavList">
-<li>Summary:&nbsp;</li>
-<li>Nested&nbsp;|&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
-<li>Constr&nbsp;|&nbsp;</li>
-<li><a href="#method.summary">Method</a></li>
-</ul>
-<ul class="subNavList">
-<li>Detail:&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
-<li>Constr&nbsp;|&nbsp;</li>
-<li><a href="#method.detail">Method</a></li>
-</ul>
-</div>
-<a name="skip.navbar.top">
-<!--   -->
-</a></div>
-<!-- ========= END OF TOP NAVBAR ========= -->
-<!-- ======== START OF CLASS DATA ======== -->
-<div class="header">
-<div class="subTitle">org.apache.hadoop.hbase.zookeeper</div>
-<h2 title="Interface ZKMetricsListener" class="title">Interface ZKMetricsListener</h2>
-</div>
-<div class="contentContainer">
-<div class="description">
-<ul class="blockList">
-<li class="blockList">
-<dl>
-<dt>All Known Implementing Classes:</dt>
-<dd><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetrics.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKMetrics</a></dd>
-</dl>
-<hr>
-<br>
-<pre>@InterfaceAudience.Private
-public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#line.25">ZKMetricsListener</a></pre>
-</li>
-</ul>
-</div>
-<div class="summary">
-<ul class="blockList">
-<li class="blockList">
-<!-- ========== METHOD SUMMARY =========== -->
-<ul class="blockList">
-<li class="blockList"><a name="method.summary">
-<!--   -->
-</a>
-<h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
-<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
-</tr>
-<tr id="i0" class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerAuthFailedException--">registerAuthFailedException</a></span>()</code>
-<div class="block">An AUTHFAILED Exception was seen.</div>
-</td>
-</tr>
-<tr id="i1" class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerConnectionLossException--">registerConnectionLossException</a></span>()</code>
-<div class="block">A CONNECTIONLOSS Exception was seen.</div>
-</td>
-</tr>
-<tr id="i2" class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerDataInconsistencyException--">registerDataInconsistencyException</a></span>()</code>
-<div class="block">A DATAINCONSISTENCY Exception was seen.</div>
-</td>
-</tr>
-<tr id="i3" class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerFailedZKCall--">registerFailedZKCall</a></span>()</code>
-<div class="block">A ZooKeeper API Call failed.</div>
-</td>
-</tr>
-<tr id="i4" class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerInvalidACLException--">registerInvalidACLException</a></span>()</code>
-<div class="block">An INVALIDACL Exception was seen.</div>
-</td>
-</tr>
-<tr id="i5" class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerNoAuthException--">registerNoAuthException</a></span>()</code>
-<div class="block">A NOAUTH Exception was seen.</div>
-</td>
-</tr>
-<tr id="i6" class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerOperationTimeoutException--">registerOperationTimeoutException</a></span>()</code>
-<div class="block">A OPERATIONTIMEOUT Exception was seen.</div>
-</td>
-</tr>
-<tr id="i7" class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerReadOperationLatency-long-">registerReadOperationLatency</a></span>(long&nbsp;latency)</code>
-<div class="block">Register the latency incurred for read operations.</div>
-</td>
-</tr>
-<tr id="i8" class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerRuntimeInconsistencyException--">registerRuntimeInconsistencyException</a></span>()</code>
-<div class="block">A RUNTIMEINCONSISTENCY Exception was seen.</div>
-</td>
-</tr>
-<tr id="i9" class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerSessionExpiredException--">registerSessionExpiredException</a></span>()</code>
-<div class="block">A SESSIONEXPIRED Exception was seen.</div>
-</td>
-</tr>
-<tr id="i10" class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerSyncOperationLatency-long-">registerSyncOperationLatency</a></span>(long&nbsp;latency)</code>
-<div class="block">Register the latency incurred for sync operations.</div>
-</td>
-</tr>
-<tr id="i11" class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerSystemErrorException--">registerSystemErrorException</a></span>()</code>
-<div class="block">A SYSTEMERROR Exception was seen.</div>
-</td>
-</tr>
-<tr id="i12" class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#registerWriteOperationLatency-long-">registerWriteOperationLatency</a></span>(long&nbsp;latency)</code>
-<div class="block">Register the latency incurred for write operations.</div>
-</td>
-</tr>
-</table>
-</li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="details">
-<ul class="blockList">
-<li class="blockList">
-<!-- ============ METHOD DETAIL ========== -->
-<ul class="blockList">
-<li class="blockList"><a name="method.detail">
-<!--   -->
-</a>
-<h3>Method Detail</h3>
-<a name="registerAuthFailedException--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>registerAuthFailedException</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#line.30">registerAuthFailedException</a>()</pre>
-<div class="block">An AUTHFAILED Exception was seen.</div>
-</li>
-</ul>
-<a name="registerConnectionLossException--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>registerConnectionLossException</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#line.35">registerConnectionLossException</a>()</pre>
-<div class="block">A CONNECTIONLOSS Exception was seen.</div>
-</li>
-</ul>
-<a name="registerDataInconsistencyException--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>registerDataInconsistencyException</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#line.40">registerDataInconsistencyException</a>()</pre>
-<div class="block">A DATAINCONSISTENCY Exception was seen.</div>
-</li>
-</ul>
-<a name="registerInvalidACLException--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>registerInvalidACLException</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#line.45">registerInvalidACLException</a>()</pre>
-<div class="block">An INVALIDACL Exception was seen.</div>
-</li>
-</ul>
-<a name="registerNoAuthException--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>registerNoAuthException</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#line.50">registerNoAuthException</a>()</pre>
-<div class="block">A NOAUTH Exception was seen.</div>
-</li>
-</ul>
-<a name="registerOperationTimeoutException--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>registerOperationTimeoutException</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#line.55">registerOperationTimeoutException</a>()</pre>
-<div class="block">A OPERATIONTIMEOUT Exception was seen.</div>
-</li>
-</ul>
-<a name="registerRuntimeInconsistencyException--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>registerRuntimeInconsistencyException</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#line.60">registerRuntimeInconsistencyException</a>()</pre>
-<div class="block">A RUNTIMEINCONSISTENCY Exception was seen.</div>
-</li>
-</ul>
-<a name="registerSessionExpiredException--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>registerSessionExpiredException</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#line.65">registerSessionExpiredException</a>()</pre>
-<div class="block">A SESSIONEXPIRED Exception was seen.</div>
-</li>
-</ul>
-<a name="registerSystemErrorException--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>registerSystemErrorException</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#line.70">registerSystemErrorException</a>()</pre>
-<div class="block">A SYSTEMERROR Exception was seen.</div>
-</li>
-</ul>
-<a name="registerFailedZKCall--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>registerFailedZKCall</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#line.75">registerFailedZKCall</a>()</pre>
-<div class="block">A ZooKeeper API Call failed.</div>
-</li>
-</ul>
-<a name="registerReadOperationLatency-long-">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>registerReadOperationLatency</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#line.80">registerReadOperationLatency</a>(long&nbsp;latency)</pre>
-<div class="block">Register the latency incurred for read operations.</div>
-</li>
-</ul>
-<a name="registerWriteOperationLatency-long-">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>registerWriteOperationLatency</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#line.85">registerWriteOperationLatency</a>(long&nbsp;latency)</pre>
-<div class="block">Register the latency incurred for write operations.</div>
-</li>
-</ul>
-<a name="registerSyncOperationLatency-long-">
-<!--   -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>registerSyncOperationLatency</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html#line.90">registerSyncOperationLatency</a>(long&nbsp;latency)</pre>
-<div class="block">Register the latency incurred for sync operations.</div>
-</li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-</div>
-</div>
-<!-- ========= END OF CLASS DATA ========= -->
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
-<!--   -->
-</a>
-<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
-<!--   -->
-</a>
-<ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
-<li><a href="package-summary.html">Package</a></li>
-<li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/ZKMetricsListener.html">Use</a></li>
-<li><a href="package-tree.html">Tree</a></li>
-<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../../index-all.html">Index</a></li>
-<li><a href="../../../../../help-doc.html">Help</a></li>
-</ul>
-</div>
-<div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetrics.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKNodeTracker.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html" target="_top">Frames</a></li>
-<li><a href="ZKMetricsListener.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
-</ul>
-<div>
-<script type="text/javascript"><!--
-  allClassesLink = document.getElementById("allclasses_navbar_bottom");
-  if(window==top) {
-    allClassesLink.style.display = "block";
-  }
-  else {
-    allClassesLink.style.display = "none";
-  }
-  //-->
-</script>
-</div>
-<div>
-<ul class="subNavList">
-<li>Summary:&nbsp;</li>
-<li>Nested&nbsp;|&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
-<li>Constr&nbsp;|&nbsp;</li>
-<li><a href="#method.summary">Method</a></li>
-</ul>
-<ul class="subNavList">
-<li>Detail:&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
-<li>Constr&nbsp;|&nbsp;</li>
-<li><a href="#method.detail">Method</a></li>
-</ul>
-</div>
-<a name="skip.navbar.bottom">
-<!--   -->
-</a></div>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/org/apache/hadoop/hbase/zookeeper/ZKNodeTracker.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/zookeeper/ZKNodeTracker.html b/devapidocs/org/apache/hadoop/hbase/zookeeper/ZKNodeTracker.html
index 44ef5ed..c23386e 100644
--- a/devapidocs/org/apache/hadoop/hbase/zookeeper/ZKNodeTracker.html
+++ b/devapidocs/org/apache/hadoop/hbase/zookeeper/ZKNodeTracker.html
@@ -49,7 +49,7 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html" title="interface in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetadata.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKServerTool.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -590,7 +590,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKListener.htm
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html" title="interface in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetadata.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKServerTool.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/org/apache/hadoop/hbase/zookeeper/class-use/MetricsZooKeeperSource.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/zookeeper/class-use/MetricsZooKeeperSource.html b/devapidocs/org/apache/hadoop/hbase/zookeeper/class-use/MetricsZooKeeperSource.html
index 82e3b4d..0e9c68e 100644
--- a/devapidocs/org/apache/hadoop/hbase/zookeeper/class-use/MetricsZooKeeperSource.html
+++ b/devapidocs/org/apache/hadoop/hbase/zookeeper/class-use/MetricsZooKeeperSource.html
@@ -110,30 +110,6 @@
 </tr>
 </tbody>
 </table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
-<caption><span>Fields in <a href="../../../../../../org/apache/hadoop/hbase/zookeeper/package-summary.html">org.apache.hadoop.hbase.zookeeper</a> declared as <a href="../../../../../../org/apache/hadoop/hbase/zookeeper/MetricsZooKeeperSource.html" title="interface in org.apache.hadoop.hbase.zookeeper">MetricsZooKeeperSource</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Field and Description</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/zookeeper/MetricsZooKeeperSource.html" title="interface in org.apache.hadoop.hbase.zookeeper">MetricsZooKeeperSource</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ZKMetrics.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#source">source</a></span></code>&nbsp;</td>
-</tr>
-</tbody>
-</table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
-<caption><span>Constructors in <a href="../../../../../../org/apache/hadoop/hbase/zookeeper/package-summary.html">org.apache.hadoop.hbase.zookeeper</a> with parameters of type <a href="../../../../../../org/apache/hadoop/hbase/zookeeper/MetricsZooKeeperSource.html" title="interface in org.apache.hadoop.hbase.zookeeper">MetricsZooKeeperSource</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colOne" scope="col">Constructor and Description</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetrics.html#ZKMetrics-org.apache.hadoop.hbase.zookeeper.MetricsZooKeeperSource-">ZKMetrics</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/zookeeper/MetricsZooKeeperSource.html" title="interface in org.apache.hadoop.hbase.zookeeper">MetricsZooKeeperSource</a>&nbsp;s)</code>&nbsp;</td>
-</tr>
-</tbody>
-</table>
 </li>
 </ul>
 </li>

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

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/org/apache/hadoop/hbase/zookeeper/package-frame.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/zookeeper/package-frame.html b/devapidocs/org/apache/hadoop/hbase/zookeeper/package-frame.html
index 5cb678f..888844a 100644
--- a/devapidocs/org/apache/hadoop/hbase/zookeeper/package-frame.html
+++ b/devapidocs/org/apache/hadoop/hbase/zookeeper/package-frame.html
@@ -14,7 +14,6 @@
 <h2 title="Interfaces">Interfaces</h2>
 <ul title="Interfaces">
 <li><a href="MetricsZooKeeperSource.html" title="interface in org.apache.hadoop.hbase.zookeeper" target="classFrame"><span class="interfaceName">MetricsZooKeeperSource</span></a></li>
-<li><a href="ZKMetricsListener.html" title="interface in org.apache.hadoop.hbase.zookeeper" target="classFrame"><span class="interfaceName">ZKMetricsListener</span></a></li>
 </ul>
 <h2 title="Classes">Classes</h2>
 <ul title="Classes">
@@ -44,7 +43,6 @@
 <li><a href="ZKMainServer.html" title="class in org.apache.hadoop.hbase.zookeeper" target="classFrame">ZKMainServer</a></li>
 <li><a href="ZKMainServer.HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain.html" title="class in org.apache.hadoop.hbase.zookeeper" target="classFrame">ZKMainServer.HACK_UNTIL_ZOOKEEPER_1897_ZooKeeperMain</a></li>
 <li><a href="ZKMetadata.html" title="class in org.apache.hadoop.hbase.zookeeper" target="classFrame">ZKMetadata</a></li>
-<li><a href="ZKMetrics.html" title="class in org.apache.hadoop.hbase.zookeeper" target="classFrame">ZKMetrics</a></li>
 <li><a href="ZKNodeTracker.html" title="class in org.apache.hadoop.hbase.zookeeper" target="classFrame">ZKNodeTracker</a></li>
 <li><a href="ZKServerTool.html" title="class in org.apache.hadoop.hbase.zookeeper" target="classFrame">ZKServerTool</a></li>
 <li><a href="ZKSplitLog.html" title="class in org.apache.hadoop.hbase.zookeeper" target="classFrame">ZKSplitLog</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/org/apache/hadoop/hbase/zookeeper/package-summary.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/zookeeper/package-summary.html b/devapidocs/org/apache/hadoop/hbase/zookeeper/package-summary.html
index 5962a37..d35a912 100644
--- a/devapidocs/org/apache/hadoop/hbase/zookeeper/package-summary.html
+++ b/devapidocs/org/apache/hadoop/hbase/zookeeper/package-summary.html
@@ -88,10 +88,6 @@
 <div class="block">Interface of the source that will export metrics about the ZooKeeper.</div>
 </td>
 </tr>
-<tr class="rowColor">
-<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html" title="interface in org.apache.hadoop.hbase.zookeeper">ZKMetricsListener</a></td>
-<td class="colLast">&nbsp;</td>
-</tr>
 </tbody>
 </table>
 </li>
@@ -265,88 +261,82 @@
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetrics.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKMetrics</a></td>
-<td class="colLast">
-<div class="block">Class used to push numbers about ZooKeeper into the metrics subsystem.</div>
-</td>
-</tr>
-<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKNodeTracker.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKNodeTracker</a></td>
 <td class="colLast">
 <div class="block">Tracks the availability and value of a single ZooKeeper node.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKServerTool.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKServerTool</a></td>
 <td class="colLast">
 <div class="block">Tool for reading ZooKeeper servers from HBase XML configuration and producing
  a line-by-line list for use by bash scripts.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKSplitLog.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKSplitLog</a></td>
 <td class="colLast">
 <div class="block">Common methods and attributes used by SplitLogManager and SplitLogWorker running distributed
  splitting of WAL logs.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKUtil.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKUtil</a></td>
 <td class="colLast">
 <div class="block">Internal HBase utility class for ZooKeeper.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKUtil.JaasConfiguration.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKUtil.JaasConfiguration</a></td>
 <td class="colLast">
 <div class="block">A JAAS configuration that defines the login modules that we want to use for login.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKUtil.NodeAndData.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKUtil.NodeAndData</a></td>
 <td class="colLast">Deprecated
 <div class="block"><span class="deprecationComment">Unused</span></div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKUtil.ZKUtilOp.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKUtil.ZKUtilOp</a></td>
 <td class="colLast">
 <div class="block">Represents an action taken by ZKUtil, e.g.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKUtil.ZKUtilOp.CreateAndFailSilent.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKUtil.ZKUtilOp.CreateAndFailSilent</a></td>
 <td class="colLast">
 <div class="block">ZKUtilOp representing createAndFailSilent in ZooKeeper
  (attempt to create node, ignore error if already exists)</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKUtil.ZKUtilOp.DeleteNodeFailSilent.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKUtil.ZKUtilOp.DeleteNodeFailSilent</a></td>
 <td class="colLast">
 <div class="block">ZKUtilOp representing deleteNodeFailSilent in ZooKeeper
  (attempt to delete node, ignore error if node doesn't exist)</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKUtil.ZKUtilOp.SetData.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKUtil.ZKUtilOp.SetData</a></td>
 <td class="colLast">
 <div class="block">ZKUtilOp representing setData in ZooKeeper</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKWatcher</a></td>
 <td class="colLast">
 <div class="block">Acts as the single ZooKeeper Watcher.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZNodePaths.html" title="class in org.apache.hadoop.hbase.zookeeper">ZNodePaths</a></td>
 <td class="colLast">
 <div class="block">Class that hold all the paths of znode for HBase.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperHelper.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperHelper</a></td>
 <td class="colLast">
 <div class="block">Methods that help working with ZooKeeper</div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/org/apache/hadoop/hbase/zookeeper/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/zookeeper/package-tree.html b/devapidocs/org/apache/hadoop/hbase/zookeeper/package-tree.html
index bba81b8..f11ef99 100644
--- a/devapidocs/org/apache/hadoop/hbase/zookeeper/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/zookeeper/package-tree.html
@@ -130,7 +130,6 @@
 </li>
 <li type="circle">org.apache.hadoop.hbase.zookeeper.<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMainServer.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">ZKMainServer</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.zookeeper.<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetadata.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">ZKMetadata</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.zookeeper.<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetrics.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">ZKMetrics</span></a> (implements org.apache.hadoop.hbase.zookeeper.<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html" title="interface in org.apache.hadoop.hbase.zookeeper">ZKMetricsListener</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.zookeeper.<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKServerTool.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">ZKServerTool</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.zookeeper.<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKSplitLog.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">ZKSplitLog</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.zookeeper.<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKUtil.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">ZKUtil</span></a></li>
@@ -160,7 +159,6 @@
 <li type="circle">org.apache.hadoop.hbase.zookeeper.<a href="../../../../../org/apache/hadoop/hbase/zookeeper/MetricsZooKeeperSource.html" title="interface in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">MetricsZooKeeperSource</span></a></li>
 </ul>
 </li>
-<li type="circle">org.apache.hadoop.hbase.zookeeper.<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html" title="interface in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">ZKMetricsListener</span></a></li>
 </ul>
 </div>
 <!-- ======= START OF BOTTOM NAVBAR ====== -->

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/org/apache/hadoop/hbase/zookeeper/package-use.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/zookeeper/package-use.html b/devapidocs/org/apache/hadoop/hbase/zookeeper/package-use.html
index 587184e..a283eb4 100644
--- a/devapidocs/org/apache/hadoop/hbase/zookeeper/package-use.html
+++ b/devapidocs/org/apache/hadoop/hbase/zookeeper/package-use.html
@@ -637,48 +637,45 @@
 </td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/class-use/ZKMetricsListener.html#org.apache.hadoop.hbase.zookeeper">ZKMetricsListener</a>&nbsp;</td>
-</tr>
-<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/class-use/ZKNodeTracker.html#org.apache.hadoop.hbase.zookeeper">ZKNodeTracker</a>
 <div class="block">Tracks the availability and value of a single ZooKeeper node.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/class-use/ZKUtil.NodeAndData.html#org.apache.hadoop.hbase.zookeeper">ZKUtil.NodeAndData</a>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
 <div class="block"><span class="deprecationComment">Unused</span></div>
 </div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/class-use/ZKUtil.ZKUtilOp.html#org.apache.hadoop.hbase.zookeeper">ZKUtil.ZKUtilOp</a>
 <div class="block">Represents an action taken by ZKUtil, e.g.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/class-use/ZKUtil.ZKUtilOp.CreateAndFailSilent.html#org.apache.hadoop.hbase.zookeeper">ZKUtil.ZKUtilOp.CreateAndFailSilent</a>
 <div class="block">ZKUtilOp representing createAndFailSilent in ZooKeeper
  (attempt to create node, ignore error if already exists)</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/class-use/ZKUtil.ZKUtilOp.DeleteNodeFailSilent.html#org.apache.hadoop.hbase.zookeeper">ZKUtil.ZKUtilOp.DeleteNodeFailSilent</a>
 <div class="block">ZKUtilOp representing deleteNodeFailSilent in ZooKeeper
  (attempt to delete node, ignore error if node doesn't exist)</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/class-use/ZKUtil.ZKUtilOp.SetData.html#org.apache.hadoop.hbase.zookeeper">ZKUtil.ZKUtilOp.SetData</a>
 <div class="block">ZKUtilOp representing setData in ZooKeeper</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/class-use/ZKWatcher.html#org.apache.hadoop.hbase.zookeeper">ZKWatcher</a>
 <div class="block">Acts as the single ZooKeeper Watcher.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/zookeeper/class-use/ZNodePaths.html#org.apache.hadoop.hbase.zookeeper">ZNodePaths</a>
 <div class="block">Class that hold all the paths of znode for HBase.</div>
 </td>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/overview-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/overview-tree.html b/devapidocs/overview-tree.html
index a38cfc6..3add2a4 100644
--- a/devapidocs/overview-tree.html
+++ b/devapidocs/overview-tree.html
@@ -4140,7 +4140,6 @@
 </li>
 <li type="circle">org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZKMainServer.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">ZKMainServer</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZKMetadata.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">ZKMetadata</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZKMetrics.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">ZKMetrics</span></a> (implements org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html" title="interface in org.apache.hadoop.hbase.zookeeper">ZKMetricsListener</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.procedure.<a href="org/apache/hadoop/hbase/procedure/ZKProcedureCoordinator.html" title="class in org.apache.hadoop.hbase.procedure"><span class="typeNameLink">ZKProcedureCoordinator</span></a> (implements org.apache.hadoop.hbase.procedure.<a href="org/apache/hadoop/hbase/procedure/ProcedureCoordinatorRpcs.html" title="interface in org.apache.hadoop.hbase.procedure">ProcedureCoordinatorRpcs</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.procedure.<a href="org/apache/hadoop/hbase/procedure/ZKProcedureMemberRpcs.html" title="class in org.apache.hadoop.hbase.procedure"><span class="typeNameLink">ZKProcedureMemberRpcs</span></a> (implements org.apache.hadoop.hbase.procedure.<a href="org/apache/hadoop/hbase/procedure/ProcedureMemberRpcs.html" title="interface in org.apache.hadoop.hbase.procedure">ProcedureMemberRpcs</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/ZKReplicationStorageBase.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">ZKReplicationStorageBase</span></a>
@@ -5054,7 +5053,6 @@
 <li type="circle">org.apache.hadoop.hbase.wal.<a href="org/apache/hadoop/hbase/wal/WALProvider.html" title="interface in org.apache.hadoop.hbase.wal"><span class="typeNameLink">WALProvider</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.<a href="org/apache/hadoop/hbase/io/WritableWithSize.html" title="interface in org.apache.hadoop.hbase.io"><span class="typeNameLink">WritableWithSize</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/ZKAsyncRegistry.Converter.html" title="interface in org.apache.hadoop.hbase.client"><span class="typeNameLink">ZKAsyncRegistry.Converter</span></a>&lt;T&gt;</li>
-<li type="circle">org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZKMetricsListener.html" title="interface in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">ZKMetricsListener</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.coordination.<a href="org/apache/hadoop/hbase/coordination/ZKSplitLogManagerCoordination.TaskFinisher.html" title="interface in org.apache.hadoop.hbase.coordination"><span class="typeNameLink">ZKSplitLogManagerCoordination.TaskFinisher</span></a></li>
 </ul>
 <h2 title="Annotation Type Hierarchy">Annotation Type Hierarchy</h2>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/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 9d4c335..2fcaa69 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
@@ -16,11 +16,11 @@
 <span class="sourceLineNo">008</span>@InterfaceAudience.Private<a name="line.8"></a>
 <span class="sourceLineNo">009</span>public class Version {<a name="line.9"></a>
 <span class="sourceLineNo">010</span>  public static final String version = "3.0.0-SNAPSHOT";<a name="line.10"></a>
-<span class="sourceLineNo">011</span>  public static final String revision = "20ccaef8418a34b909256c2a0b68f55b390c9dfb";<a name="line.11"></a>
+<span class="sourceLineNo">011</span>  public static final String revision = "4ddfecac563384de6f087fc7fc8bc62c0362877d";<a name="line.11"></a>
 <span class="sourceLineNo">012</span>  public static final String user = "jenkins";<a name="line.12"></a>
-<span class="sourceLineNo">013</span>  public static final String date = "Fri Jan 12 14:43:14 UTC 2018";<a name="line.13"></a>
+<span class="sourceLineNo">013</span>  public static final String date = "Sat Jan 13 14:43:08 UTC 2018";<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 = "74a7aead7c376092663990565cd6271f";<a name="line.15"></a>
+<span class="sourceLineNo">015</span>  public static final String srcChecksum = "d0b248ebd327a6c13d61ead0aa4930e9";<a name="line.15"></a>
 <span class="sourceLineNo">016</span>}<a name="line.16"></a>
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/BackupAdminImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/BackupAdminImpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/BackupAdminImpl.html
index 836626e..62efc6b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/BackupAdminImpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/BackupAdminImpl.html
@@ -279,7 +279,7 @@
 <span class="sourceLineNo">271</span>        LOG.debug(numDeleted + " bulk loaded files out of " + map.size() + " were deleted");<a name="line.271"></a>
 <span class="sourceLineNo">272</span>      }<a name="line.272"></a>
 <span class="sourceLineNo">273</span>      if (success) {<a name="line.273"></a>
-<span class="sourceLineNo">274</span>        sysTable.deleteBulkLoadedFiles(map);<a name="line.274"></a>
+<span class="sourceLineNo">274</span>        sysTable.deleteBulkLoadedRows(new ArrayList&lt;byte[]&gt;(map.keySet()));<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>      sysTable.deleteBackupInfo(backupInfo.getBackupId());<a name="line.277"></a>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/554d61c6/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMultiParallel.MyMasterObserver.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMultiParallel.MyMasterObserver.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMultiParallel.MyMasterObserver.html
index b4bc1f1..9fe9867 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMultiParallel.MyMasterObserver.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMultiParallel.MyMasterObserver.html
@@ -66,771 +66,773 @@
 <span class="sourceLineNo">058</span>import org.junit.Assert;<a name="line.58"></a>
 <span class="sourceLineNo">059</span>import org.junit.Before;<a name="line.59"></a>
 <span class="sourceLineNo">060</span>import org.junit.BeforeClass;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.junit.Test;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.junit.experimental.categories.Category;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.slf4j.Logger;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.slf4j.LoggerFactory;<a name="line.64"></a>
-<span class="sourceLineNo">065</span><a name="line.65"></a>
-<span class="sourceLineNo">066</span>@Category({MediumTests.class, FlakeyTests.class})<a name="line.66"></a>
-<span class="sourceLineNo">067</span>public class TestMultiParallel {<a name="line.67"></a>
-<span class="sourceLineNo">068</span>  private static final Logger LOG = LoggerFactory.getLogger(TestMultiParallel.class);<a name="line.68"></a>
-<span class="sourceLineNo">069</span><a name="line.69"></a>
-<span class="sourceLineNo">070</span>  private static final HBaseTestingUtility UTIL = new HBaseTestingUtility();<a name="line.70"></a>
-<span class="sourceLineNo">071</span>  private static final byte[] VALUE = Bytes.toBytes("value");<a name="line.71"></a>
-<span class="sourceLineNo">072</span>  private static final byte[] QUALIFIER = Bytes.toBytes("qual");<a name="line.72"></a>
-<span class="sourceLineNo">073</span>  private static final String FAMILY = "family";<a name="line.73"></a>
-<span class="sourceLineNo">074</span>  private static final TableName TEST_TABLE = TableName.valueOf("multi_test_table");<a name="line.74"></a>
-<span class="sourceLineNo">075</span>  private static final byte[] BYTES_FAMILY = Bytes.toBytes(FAMILY);<a name="line.75"></a>
-<span class="sourceLineNo">076</span>  private static final byte[] ONE_ROW = Bytes.toBytes("xxx");<a name="line.76"></a>
-<span class="sourceLineNo">077</span>  private static final byte [][] KEYS = makeKeys();<a name="line.77"></a>
-<span class="sourceLineNo">078</span><a name="line.78"></a>
-<span class="sourceLineNo">079</span>  private static final int slaves = 5; // also used for testing HTable pool size<a name="line.79"></a>
-<span class="sourceLineNo">080</span>  private static Connection CONNECTION;<a name="line.80"></a>
-<span class="sourceLineNo">081</span><a name="line.81"></a>
-<span class="sourceLineNo">082</span>  @BeforeClass public static void beforeClass() throws Exception {<a name="line.82"></a>
-<span class="sourceLineNo">083</span>    // Uncomment the following lines if more verbosity is needed for<a name="line.83"></a>
-<span class="sourceLineNo">084</span>    // debugging (see HBASE-12285 for details).<a name="line.84"></a>
-<span class="sourceLineNo">085</span>    //((Log4JLogger)RpcServer.LOG).getLogger().setLevel(Level.ALL);<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    //((Log4JLogger)RpcClient.LOG).getLogger().setLevel(Level.ALL);<a name="line.86"></a>
-<span class="sourceLineNo">087</span>    //((Log4JLogger)ScannerCallable.LOG).getLogger().setLevel(Level.ALL);<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    UTIL.getConfiguration().set(HConstants.RPC_CODEC_CONF_KEY,<a name="line.88"></a>
-<span class="sourceLineNo">089</span>        KeyValueCodec.class.getCanonicalName());<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    UTIL.getConfiguration().setBoolean(LoadBalancer.TABLES_ON_MASTER, true);<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    UTIL.getConfiguration().setBoolean(LoadBalancer.SYSTEM_TABLES_ON_MASTER, true);<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    UTIL.getConfiguration()<a name="line.92"></a>
-<span class="sourceLineNo">093</span>        .set(CoprocessorHost.MASTER_COPROCESSOR_CONF_KEY, MyMasterObserver.class.getName());<a name="line.93"></a>
-<span class="sourceLineNo">094</span>    UTIL.startMiniCluster(slaves);<a name="line.94"></a>
-<span class="sourceLineNo">095</span>    Table t = UTIL.createMultiRegionTable(TEST_TABLE, Bytes.toBytes(FAMILY));<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    UTIL.waitTableEnabled(TEST_TABLE);<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    t.close();<a name="line.97"></a>
-<span class="sourceLineNo">098</span>    CONNECTION = ConnectionFactory.createConnection(UTIL.getConfiguration());<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    assertTrue(MyMasterObserver.start.get());<a name="line.99"></a>
-<span class="sourceLineNo">100</span>  }<a name="line.100"></a>
-<span class="sourceLineNo">101</span><a name="line.101"></a>
-<span class="sourceLineNo">102</span>  @AfterClass public static void afterClass() throws Exception {<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    CONNECTION.close();<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    UTIL.shutdownMiniCluster();<a name="line.104"></a>
-<span class="sourceLineNo">105</span>  }<a name="line.105"></a>
-<span class="sourceLineNo">106</span><a name="line.106"></a>
-<span class="sourceLineNo">107</span>  @Before public void before() throws Exception {<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    final int balanceCount = MyMasterObserver.postBalanceCount.get();<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    LOG.info("before");<a name="line.109"></a>
-<span class="sourceLineNo">110</span>    if (UTIL.ensureSomeRegionServersAvailable(slaves)) {<a name="line.110"></a>
-<span class="sourceLineNo">111</span>      // Distribute regions<a name="line.111"></a>
-<span class="sourceLineNo">112</span>      UTIL.getMiniHBaseCluster().getMaster().balance();<a name="line.112"></a>
-<span class="sourceLineNo">113</span>      // Some plans are created.<a name="line.113"></a>
-<span class="sourceLineNo">114</span>      if (MyMasterObserver.postBalanceCount.get() &gt; balanceCount) {<a name="line.114"></a>
-<span class="sourceLineNo">115</span>        // It is necessary to wait the move procedure to start.<a name="line.115"></a>
-<span class="sourceLineNo">116</span>        // Otherwise, the next wait may pass immediately.<a name="line.116"></a>
-<span class="sourceLineNo">117</span>        UTIL.waitFor(3 * 1000, 100, false, () -&gt;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>            UTIL.getMiniHBaseCluster().getMaster().getAssignmentManager().hasRegionsInTransition()<a name="line.118"></a>
-<span class="sourceLineNo">119</span>        );<a name="line.119"></a>
-<span class="sourceLineNo">120</span>      }<a name="line.120"></a>
-<span class="sourceLineNo">121</span><a name="line.121"></a>
-<span class="sourceLineNo">122</span>      // Wait until completing balance<a name="line.122"></a>
-<span class="sourceLineNo">123</span>      UTIL.waitUntilAllRegionsAssigned(TEST_TABLE);<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    }<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    LOG.info("before done");<a name="line.125"></a>
-<span class="sourceLineNo">126</span>  }<a name="line.126"></a>
-<span class="sourceLineNo">127</span><a name="line.127"></a>
-<span class="sourceLineNo">128</span>  private static byte[][] makeKeys() {<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    byte [][] starterKeys = HBaseTestingUtility.KEYS;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    // Create a "non-uniform" test set with the following characteristics:<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    // a) Unequal number of keys per region<a name="line.131"></a>
-<span class="sourceLineNo">132</span><a name="line.132"></a>
-<span class="sourceLineNo">133</span>    // Don't use integer as a multiple, so that we have a number of keys that is<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    // not a multiple of the number of regions<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    int numKeys = (int) (starterKeys.length * 10.33F);<a name="line.135"></a>
-<span class="sourceLineNo">136</span><a name="line.136"></a>
-<span class="sourceLineNo">137</span>    List&lt;byte[]&gt; keys = new ArrayList&lt;&gt;();<a name="line.137"></a>
-<span class="sourceLineNo">138</span>    for (int i = 0; i &lt; numKeys; i++) {<a name="line.138"></a>
-<span class="sourceLineNo">139</span>      int kIdx = i % starterKeys.length;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>      byte[] k = starterKeys[kIdx];<a name="line.140"></a>
-<span class="sourceLineNo">141</span>      byte[] cp = new byte[k.length + 1];<a name="line.141"></a>
-<span class="sourceLineNo">142</span>      System.arraycopy(k, 0, cp, 0, k.length);<a name="line.142"></a>
-<span class="sourceLineNo">143</span>      cp[k.length] = new Integer(i % 256).byteValue();<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      keys.add(cp);<a name="line.144"></a>
-<span class="sourceLineNo">145</span>    }<a name="line.145"></a>
-<span class="sourceLineNo">146</span><a name="line.146"></a>
-<span class="sourceLineNo">147</span>    // b) Same duplicate keys (showing multiple Gets/Puts to the same row, which<a name="line.147"></a>
-<span class="sourceLineNo">148</span>    // should work)<a name="line.148"></a>
-<span class="sourceLineNo">149</span>    // c) keys are not in sorted order (within a region), to ensure that the<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    // sorting code and index mapping doesn't break the functionality<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    for (int i = 0; i &lt; 100; i++) {<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      int kIdx = i % starterKeys.length;<a name="line.152"></a>
-<span class="sourceLineNo">153</span>      byte[] k = starterKeys[kIdx];<a name="line.153"></a>
-<span class="sourceLineNo">154</span>      byte[] cp = new byte[k.length + 1];<a name="line.154"></a>
-<span class="sourceLineNo">155</span>      System.arraycopy(k, 0, cp, 0, k.length);<a name="line.155"></a>
-<span class="sourceLineNo">156</span>      cp[k.length] = new Integer(i % 256).byteValue();<a name="line.156"></a>
-<span class="sourceLineNo">157</span>      keys.add(cp);<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    }<a name="line.158"></a>
-<span class="sourceLineNo">159</span>    return keys.toArray(new byte [][] {new byte [] {}});<a name="line.159"></a>
-<span class="sourceLineNo">160</span>  }<a name="line.160"></a>
-<span class="sourceLineNo">161</span><a name="line.161"></a>
-<span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span>  /**<a name="line.163"></a>
-<span class="sourceLineNo">164</span>   * This is for testing the active number of threads that were used while<a name="line.164"></a>
-<span class="sourceLineNo">165</span>   * doing a batch operation. It inserts one row per region via the batch<a name="line.165"></a>
-<span class="sourceLineNo">166</span>   * operation, and then checks the number of active threads.<a name="line.166"></a>
-<span class="sourceLineNo">167</span>   * For HBASE-3553<a name="line.167"></a>
-<span class="sourceLineNo">168</span>   * @throws IOException<a name="line.168"></a>
-<span class="sourceLineNo">169</span>   * @throws InterruptedException<a name="line.169"></a>
-<span class="sourceLineNo">170</span>   * @throws NoSuchFieldException<a name="line.170"></a>
-<span class="sourceLineNo">171</span>   * @throws SecurityException<a name="line.171"></a>
-<span class="sourceLineNo">172</span>   */<a name="line.172"></a>
-<span class="sourceLineNo">173</span>  @Test(timeout=300000)<a name="line.173"></a>
-<span class="sourceLineNo">174</span>  public void testActiveThreadsCount() throws Exception {<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    UTIL.getConfiguration().setLong("hbase.htable.threads.coresize", slaves + 1);<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    try (Connection connection = ConnectionFactory.createConnection(UTIL.getConfiguration())) {<a name="line.176"></a>
-<span class="sourceLineNo">177</span>      ThreadPoolExecutor executor = HTable.getDefaultExecutor(UTIL.getConfiguration());<a name="line.177"></a>
-<span class="sourceLineNo">178</span>      try {<a name="line.178"></a>
-<span class="sourceLineNo">179</span>        try (Table t = connection.getTable(TEST_TABLE, executor)) {<a name="line.179"></a>
-<span class="sourceLineNo">180</span>          List&lt;Put&gt; puts = constructPutRequests(); // creates a Put for every region<a name="line.180"></a>
-<span class="sourceLineNo">181</span>          t.batch(puts, null);<a name="line.181"></a>
-<span class="sourceLineNo">182</span>          HashSet&lt;ServerName&gt; regionservers = new HashSet&lt;&gt;();<a name="line.182"></a>
-<span class="sourceLineNo">183</span>          try (RegionLocator locator = connection.getRegionLocator(TEST_TABLE)) {<a name="line.183"></a>
-<span class="sourceLineNo">184</span>            for (Row r : puts) {<a name="line.184"></a>
-<span class="sourceLineNo">185</span>              HRegionLocation location = locator.getRegionLocation(r.getRow());<a name="line.185"></a>
-<span class="sourceLineNo">186</span>              regionservers.add(location.getServerName());<a name="line.186"></a>
-<span class="sourceLineNo">187</span>            }<a name="line.187"></a>
-<span class="sourceLineNo">188</span>          }<a name="line.188"></a>
-<span class="sourceLineNo">189</span>          assertEquals(regionservers.size(), executor.getLargestPoolSize());<a name="line.189"></a>
-<span class="sourceLineNo">190</span>        }<a name="line.190"></a>
-<span class="sourceLineNo">191</span>      } finally {<a name="line.191"></a>
-<span class="sourceLineNo">192</span>        executor.shutdownNow();<a name="line.192"></a>
-<span class="sourceLineNo">193</span>      }<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    }<a name="line.194"></a>
-<span class="sourceLineNo">195</span>  }<a name="line.195"></a>
-<span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span>  @Test(timeout=300000)<a name="line.197"></a>
-<span class="sourceLineNo">198</span>  public void testBatchWithGet() throws Exception {<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    LOG.info("test=testBatchWithGet");<a name="line.199"></a>
-<span class="sourceLineNo">200</span>    Table table = UTIL.getConnection().getTable(TEST_TABLE);<a name="line.200"></a>
-<span class="sourceLineNo">201</span><a name="line.201"></a>
-<span class="sourceLineNo">202</span>    // load test data<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    List&lt;Put&gt; puts = constructPutRequests();<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    table.batch(puts, null);<a name="line.204"></a>
-<span class="sourceLineNo">205</span><a name="line.205"></a>
-<span class="sourceLineNo">206</span>    // create a list of gets and run it<a name="line.206"></a>
-<span class="sourceLineNo">207</span>    List&lt;Row&gt; gets = new ArrayList&lt;&gt;();<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    for (byte[] k : KEYS) {<a name="line.208"></a>
-<span class="sourceLineNo">209</span>      Get get = new Get(k);<a name="line.209"></a>
-<span class="sourceLineNo">210</span>      get.addColumn(BYTES_FAMILY, QUALIFIER);<a name="line.210"></a>
-<span class="sourceLineNo">211</span>      gets.add(get);<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    }<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    Result[] multiRes = new Result[gets.size()];<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    table.batch(gets, multiRes);<a name="line.214"></a>
-<span class="sourceLineNo">215</span><a name="line.215"></a>
-<span class="sourceLineNo">216</span>    // Same gets using individual call API<a name="line.216"></a>
-<span class="sourceLineNo">217</span>    List&lt;Result&gt; singleRes = new ArrayList&lt;&gt;();<a name="line.217"></a>
-<span class="sourceLineNo">218</span>    for (Row get : gets) {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>      singleRes.add(table.get((Get) get));<a name="line.219"></a>
-<span class="sourceLineNo">220</span>    }<a name="line.220"></a>
-<span class="sourceLineNo">221</span>    // Compare results<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    Assert.assertEquals(singleRes.size(), multiRes.length);<a name="line.222"></a>
-<span class="sourceLineNo">223</span>    for (int i = 0; i &lt; singleRes.size(); i++) {<a name="line.223"></a>
-<span class="sourceLineNo">224</span>      Assert.assertTrue(singleRes.get(i).containsColumn(BYTES_FAMILY, QUALIFIER));<a name="line.224"></a>
-<span class="sourceLineNo">225</span>      Cell[] singleKvs = singleRes.get(i).rawCells();<a name="line.225"></a>
-<span class="sourceLineNo">226</span>      Cell[] multiKvs = multiRes[i].rawCells();<a name="line.226"></a>
-<span class="sourceLineNo">227</span>      for (int j = 0; j &lt; singleKvs.length; j++) {<a name="line.227"></a>
-<span class="sourceLineNo">228</span>        Assert.assertEquals(singleKvs[j], multiKvs[j]);<a name="line.228"></a>
-<span class="sourceLineNo">229</span>        Assert.assertEquals(0, Bytes.compareTo(CellUtil.cloneValue(singleKvs[j]),<a name="line.229"></a>
-<span class="sourceLineNo">230</span>            CellUtil.cloneValue(multiKvs[j])));<a name="line.230"></a>
-<span class="sourceLineNo">231</span>      }<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    }<a name="line.232"></a>
-<span class="sourceLineNo">233</span>    table.close();<a name="line.233"></a>
-<span class="sourceLineNo">234</span>  }<a name="line.234"></a>
-<span class="sourceLineNo">235</span><a name="line.235"></a>
-<span class="sourceLineNo">236</span>  @Test<a name="line.236"></a>
-<span class="sourceLineNo">237</span>  public void testBadFam() throws Exception {<a name="line.237"></a>
-<span class="sourceLineNo">238</span>    LOG.info("test=testBadFam");<a name="line.238"></a>
-<span class="sourceLineNo">239</span>    Table table = UTIL.getConnection().getTable(TEST_TABLE);<a name="line.239"></a>
-<span class="sourceLineNo">240</span><a name="line.240"></a>
-<span class="sourceLineNo">241</span>    List&lt;Row&gt; actions = new ArrayList&lt;&gt;();<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    Put p = new Put(Bytes.toBytes("row1"));<a name="line.242"></a>
-<span class="sourceLineNo">243</span>    p.addColumn(Bytes.toBytes("bad_family"), Bytes.toBytes("qual"), Bytes.toBytes("value"));<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    actions.add(p);<a name="line.244"></a>
-<span class="sourceLineNo">245</span>    p = new Put(Bytes.toBytes("row2"));<a name="line.245"></a>
-<span class="sourceLineNo">246</span>    p.addColumn(BYTES_FAMILY, Bytes.toBytes("qual"), Bytes.toBytes("value"));<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    actions.add(p);<a name="line.247"></a>
-<span class="sourceLineNo">248</span><a name="line.248"></a>
-<span class="sourceLineNo">249</span>    // row1 and row2 should be in the same region.<a name="line.249"></a>
+<span class="sourceLineNo">061</span>import org.junit.Ignore;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.junit.Test;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.junit.experimental.categories.Category;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.slf4j.Logger;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.slf4j.LoggerFactory;<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>@Ignore // Depends on Master being able to host regions. Needs fixing.<a name="line.67"></a>
+<span class="sourceLineNo">068</span>@Category({MediumTests.class, FlakeyTests.class})<a name="line.68"></a>
+<span class="sourceLineNo">069</span>public class TestMultiParallel {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>  private static final Logger LOG = LoggerFactory.getLogger(TestMultiParallel.class);<a name="line.70"></a>
+<span class="sourceLineNo">071</span><a name="line.71"></a>
+<span class="sourceLineNo">072</span>  private static final HBaseTestingUtility UTIL = new HBaseTestingUtility();<a name="line.72"></a>
+<span class="sourceLineNo">073</span>  private static final byte[] VALUE = Bytes.toBytes("value");<a name="line.73"></a>
+<span class="sourceLineNo">074</span>  private static final byte[] QUALIFIER = Bytes.toBytes("qual");<a name="line.74"></a>
+<span class="sourceLineNo">075</span>  private static final String FAMILY = "family";<a name="line.75"></a>
+<span class="sourceLineNo">076</span>  private static final TableName TEST_TABLE = TableName.valueOf("multi_test_table");<a name="line.76"></a>
+<span class="sourceLineNo">077</span>  private static final byte[] BYTES_FAMILY = Bytes.toBytes(FAMILY);<a name="line.77"></a>
+<span class="sourceLineNo">078</span>  private static final byte[] ONE_ROW = Bytes.toBytes("xxx");<a name="line.78"></a>
+<span class="sourceLineNo">079</span>  private static final byte [][] KEYS = makeKeys();<a name="line.79"></a>
+<span class="sourceLineNo">080</span><a name="line.80"></a>
+<span class="sourceLineNo">081</span>  private static final int slaves = 5; // also used for testing HTable pool size<a name="line.81"></a>
+<span class="sourceLineNo">082</span>  private static Connection CONNECTION;<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>  @BeforeClass public static void beforeClass() throws Exception {<a name="line.84"></a>
+<span class="sourceLineNo">085</span>    // Uncomment the following lines if more verbosity is needed for<a name="line.85"></a>
+<span class="sourceLineNo">086</span>    // debugging (see HBASE-12285 for details).<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    //((Log4JLogger)RpcServer.LOG).getLogger().setLevel(Level.ALL);<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    //((Log4JLogger)RpcClient.LOG).getLogger().setLevel(Level.ALL);<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    //((Log4JLogger)ScannerCallable.LOG).getLogger().setLevel(Level.ALL);<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    UTIL.getConfiguration().set(HConstants.RPC_CODEC_CONF_KEY,<a name="line.90"></a>
+<span class="sourceLineNo">091</span>        KeyValueCodec.class.getCanonicalName());<a name="line.91"></a>
+<span class="sourceLineNo">092</span>    UTIL.getConfiguration().setBoolean(LoadBalancer.TABLES_ON_MASTER, true);<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    UTIL.getConfiguration().setBoolean(LoadBalancer.SYSTEM_TABLES_ON_MASTER, true);<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    UTIL.getConfiguration()<a name="line.94"></a>
+<span class="sourceLineNo">095</span>        .set(CoprocessorHost.MASTER_COPROCESSOR_CONF_KEY, MyMasterObserver.class.getName());<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    UTIL.startMiniCluster(slaves);<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    Table t = UTIL.createMultiRegionTable(TEST_TABLE, Bytes.toBytes(FAMILY));<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    UTIL.waitTableEnabled(TEST_TABLE);<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    t.close();<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    CONNECTION = ConnectionFactory.createConnection(UTIL.getConfiguration());<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    assertTrue(MyMasterObserver.start.get());<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  }<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>  @AfterClass public static void afterClass() throws Exception {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    CONNECTION.close();<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    UTIL.shutdownMiniCluster();<a name="line.106"></a>
+<span class="sourceLineNo">107</span>  }<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span>  @Before public void before() throws Exception {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    final int balanceCount = MyMasterObserver.postBalanceCount.get();<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    LOG.info("before");<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    if (UTIL.ensureSomeRegionServersAvailable(slaves)) {<a name="line.112"></a>
+<span class="sourceLineNo">113</span>      // Distribute regions<a name="line.113"></a>
+<span class="sourceLineNo">114</span>      UTIL.getMiniHBaseCluster().getMaster().balance();<a name="line.114"></a>
+<span class="sourceLineNo">115</span>      // Some plans are created.<a name="line.115"></a>
+<span class="sourceLineNo">116</span>      if (MyMasterObserver.postBalanceCount.get() &gt; balanceCount) {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        // It is necessary to wait the move procedure to start.<a name="line.117"></a>
+<span class="sourceLineNo">118</span>        // Otherwise, the next wait may pass immediately.<a name="line.118"></a>
+<span class="sourceLineNo">119</span>        UTIL.waitFor(3 * 1000, 100, false, () -&gt;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>            UTIL.getMiniHBaseCluster().getMaster().getAssignmentManager().hasRegionsInTransition()<a name="line.120"></a>
+<span class="sourceLineNo">121</span>        );<a name="line.121"></a>
+<span class="sourceLineNo">122</span>      }<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span>      // Wait until completing balance<a name="line.124"></a>
+<span class="sourceLineNo">125</span>      UTIL.waitUntilAllRegionsAssigned(TEST_TABLE);<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    }<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    LOG.info("before done");<a name="line.127"></a>
+<span class="sourceLineNo">128</span>  }<a name="line.128"></a>
+<span class="sourceLineNo">129</span><a name="line.129"></a>
+<span class="sourceLineNo">130</span>  private static byte[][] makeKeys() {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    byte [][] starterKeys = HBaseTestingUtility.KEYS;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>    // Create a "non-uniform" test set with the following characteristics:<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    // a) Unequal number of keys per region<a name="line.133"></a>
+<span class="sourceLineNo">134</span><a name="line.134"></a>
+<span class="sourceLineNo">135</span>    // Don't use integer as a multiple, so that we have a number of keys that is<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    // not a multiple of the number of regions<a name="line.136"></a>
+<span class="sourceLineNo">137</span>    int numKeys = (int) (starterKeys.length * 10.33F);<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
+<span class="sourceLineNo">139</span>    List&lt;byte[]&gt; keys = new ArrayList&lt;&gt;();<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    for (int i = 0; i &lt; numKeys; i++) {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>      int kIdx = i % starterKeys.length;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>      byte[] k = starterKeys[kIdx];<a name="line.142"></a>
+<span class="sourceLineNo">143</span>      byte[] cp = new byte[k.length + 1];<a name="line.143"></a>
+<span class="sourceLineNo">144</span>      System.arraycopy(k, 0, cp, 0, k.length);<a name="line.144"></a>
+<span class="sourceLineNo">145</span>      cp[k.length] = new Integer(i % 256).byteValue();<a name="line.145"></a>
+<span class="sourceLineNo">146</span>      keys.add(cp);<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>    // b) Same duplicate keys (showing multiple Gets/Puts to the same row, which<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    // should work)<a name="line.150"></a>
+<span class="sourceLineNo">151</span>    // c) keys are not in sorted order (within a region), to ensure that the<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    // sorting code and index mapping doesn't break the functionality<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    for (int i = 0; i &lt; 100; i++) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>      int kIdx = i % starterKeys.length;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>      byte[] k = starterKeys[kIdx];<a name="line.155"></a>
+<span class="sourceLineNo">156</span>      byte[] cp = new byte[k.length + 1];<a name="line.156"></a>
+<span class="sourceLineNo">157</span>      System.arraycopy(k, 0, cp, 0, k.length);<a name="line.157"></a>
+<span class="sourceLineNo">158</span>      cp[k.length] = new Integer(i % 256).byteValue();<a name="line.158"></a>
+<span class="sourceLineNo">159</span>      keys.add(cp);<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    }<a name="line.160"></a>
+<span class="sourceLineNo">161</span>    return keys.toArray(new byte [][] {new byte [] {}});<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><a name="line.164"></a>
+<span class="sourceLineNo">165</span>  /**<a name="line.165"></a>
+<span class="sourceLineNo">166</span>   * This is for testing the active number of threads that were used while<a name="line.166"></a>
+<span class="sourceLineNo">167</span>   * doing a batch operation. It inserts one row per region via the batch<a name="line.167"></a>
+<span class="sourceLineNo">168</span>   * operation, and then checks the number of active threads.<a name="line.168"></a>
+<span class="sourceLineNo">169</span>   * For HBASE-3553<a name="line.169"></a>
+<span class="sourceLineNo">170</span>   * @throws IOException<a name="line.170"></a>
+<span class="sourceLineNo">171</span>   * @throws InterruptedException<a name="line.171"></a>
+<span class="sourceLineNo">172</span>   * @throws NoSuchFieldException<a name="line.172"></a>
+<span class="sourceLineNo">173</span>   * @throws SecurityException<a name="line.173"></a>
+<span class="sourceLineNo">174</span>   */<a name="line.174"></a>
+<span class="sourceLineNo">175</span>  @Test(timeout=300000)<a name="line.175"></a>
+<span class="sourceLineNo">176</span>  public void testActiveThreadsCount() throws Exception {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    UTIL.getConfiguration().setLong("hbase.htable.threads.coresize", slaves + 1);<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    try (Connection connection = ConnectionFactory.createConnection(UTIL.getConfiguration())) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>      ThreadPoolExecutor executor = HTable.getDefaultExecutor(UTIL.getConfiguration());<a name="line.179"></a>
+<span class="sourceLineNo">180</span>      try {<a name="line.180"></a>
+<span class="sourceLineNo">181</span>        try (Table t = connection.getTable(TEST_TABLE, executor)) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>          List&lt;Put&gt; puts = constructPutRequests(); // creates a Put for every region<a name="line.182"></a>
+<span class="sourceLineNo">183</span>          t.batch(puts, null);<a name="line.183"></a>
+<span class="sourceLineNo">184</span>          HashSet&lt;ServerName&gt; regionservers = new HashSet&lt;&gt;();<a name="line.184"></a>
+<span class="sourceLineNo">185</span>          try (RegionLocator locator = connection.getRegionLocator(TEST_TABLE)) {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>            for (Row r : puts) {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>              HRegionLocation location = locator.getRegionLocation(r.getRow());<a name="line.187"></a>
+<span class="sourceLineNo">188</span>              regionservers.add(location.getServerName());<a name="line.188"></a>
+<span class="sourceLineNo">189</span>            }<a name="line.189"></a>
+<span class="sourceLineNo">190</span>          }<a name="line.190"></a>
+<span class="sourceLineNo">191</span>          assertEquals(regionservers.size(), executor.getLargestPoolSize());<a name="line.191"></a>
+<span class="sourceLineNo">192</span>        }<a name="line.192"></a>
+<span class="sourceLineNo">193</span>      } finally {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>        executor.shutdownNow();<a name="line.194"></a>
+<span class="sourceLineNo">195</span>      }<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    }<a name="line.196"></a>
+<span class="sourceLineNo">197</span>  }<a name="line.197"></a>
+<span class="sourceLineNo">198</span><a name="line.198"></a>
+<span class="sourceLineNo">199</span>  @Test(timeout=300000)<a name="line.199"></a>
+<span class="sourceLineNo">200</span>  public void testBatchWithGet() throws Exception {<a name="line.200"></a>
+<span class="sourceLineNo">201</span>    LOG.info("test=testBatchWithGet");<a name="line.201"></a>
+<span class="sourceLineNo">202</span>    Table table = UTIL.getConnection().getTable(TEST_TABLE);<a name="line.202"></a>
+<span class="sourceLineNo">203</span><a name="line.203"></a>
+<span class="sourceLineNo">204</span>    // load test data<a name="line.204"></a>
+<span class="sourceLineNo">205</span>    List&lt;Put&gt; puts = constructPutRequests();<a name="line.205"></a>
+<span class="sourceLineNo">206</span>    table.batch(puts, null);<a name="line.206"></a>
+<span class="sourceLineNo">207</span><a name="line.207"></a>
+<span class="sourceLineNo">208</span>    // create a list of gets and run it<a name="line.208"></a>
+<span class="sourceLineNo">209</span>    List&lt;Row&gt; gets = new ArrayList&lt;&gt;();<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    for (byte[] k : KEYS) {<a name="line.210"></a>
+<span class="sourceLineNo">211</span>      Get get = new Get(k);<a name="line.211"></a>
+<span class="sourceLineNo">212</span>      get.addColumn(BYTES_FAMILY, QUALIFIER);<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      gets.add(get);<a name="line.213"></a>
+<span class="sourceLineNo">214</span>    }<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    Result[] multiRes = new Result[gets.size()];<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    table.batch(gets, multiRes);<a name="line.216"></a>
+<span class="sourceLineNo">217</span><a name="line.217"></a>
+<span class="sourceLineNo">218</span>    // Same gets using individual call API<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    List&lt;Result&gt; singleRes = new ArrayList&lt;&gt;();<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    for (Row get : gets) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>      singleRes.add(table.get((Get) get));<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    }<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    // Compare results<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    Assert.assertEquals(singleRes.size(), multiRes.length);<a name="line.224"></a>
+<span class="sourceLineNo">225</span>    for (int i = 0; i &lt; singleRes.size(); i++) {<a name="line.225"></a>
+<span class="sourceLineNo">226</span>      Assert.assertTrue(singleRes.get(i).containsColumn(BYTES_FAMILY, QUALIFIER));<a name="line.226"></a>
+<span class="sourceLineNo">227</span>      Cell[] singleKvs = singleRes.get(i).rawCells();<a name="line.227"></a>
+<span class="sourceLineNo">228</span>      Cell[] multiKvs = multiRes[i].rawCells();<a name="line.228"></a>
+<span class="sourceLineNo">229</span>      for (int j = 0; j &lt; singleKvs.length; j++) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>        Assert.assertEquals(singleKvs[j], multiKvs[j]);<a name="line.230"></a>
+<span class="sourceLineNo">231</span>        Assert.assertEquals(0, Bytes.compareTo(CellUtil.cloneValue(singleKvs[j]),<a name="line.231"></a>
+<span class="sourceLineNo">232</span>            CellUtil.cloneValue(multiKvs[j])));<a name="line.232"></a>
+<span class="sourceLineNo">233</span>      }<a name="line.233"></a>
+<span class="sourceLineNo">234</span>    }<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    table.close();<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>  @Test<a name="line.238"></a>
+<span class="sourceLineNo">239</span>  public void testBadFam() throws Exception {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>    LOG.info("test=testBadFam");<a name="line.240"></a>
+<span class="sourceLineNo">241</span>    Table table = UTIL.getConnection().getTable(TEST_TABLE);<a name="line.241"></a>
+<span class="sourceLineNo">242</span><a name="line.242"></a>
+<span class="sourceLineNo">243</span>    List&lt;Row&gt; actions = new ArrayList&lt;&gt;();<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    Put p = new Put(Bytes.toBytes("row1"));<a name="line.244"></a>
+<span class="sourceLineNo">245</span>    p.addColumn(Bytes.toBytes("bad_family"), Bytes.toBytes("qual"), Bytes.toBytes("value"));<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    actions.add(p);<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    p = new Put(Bytes.toBytes("row2"));<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    p.addColumn(BYTES_FAMILY, Bytes.toBytes("qual"), Bytes.toBytes("value"));<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    actions.add(p);<a name="line.249"></a>
 <span class="sourceLineNo">250</span><a name="line.250"></a>
-<span class="sourceLineNo">251</span>    Object [] r = new Object[actions.size()];<a name="line.251"></a>
-<span class="sourceLineNo">252</span>    try {<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      table.batch(actions, r);<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      fail();<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    } catch (RetriesExhaustedWithDetailsException ex) {<a name="line.255"></a>
-<span class="sourceLineNo">256</span>      LOG.debug(ex.toString(), ex);<a name="line.256"></a>
-<span class="sourceLineNo">257</span>      // good!<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      assertFalse(ex.mayHaveClusterIssues());<a name="line.258"></a>
-<span class="sourceLineNo">259</span>    }<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    assertEquals(2, r.length);<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    assertTrue(r[0] instanceof Throwable);<a name="line.261"></a>
-<span class="sourceLineNo">262</span>    assertTrue(r[1] instanceof Result);<a name="line.262"></a>
-<span class="sourceLineNo">263</span>    table.close();<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>  @Test (timeout=300000)<a name="line.266"></a>
-<span class="sourceLineNo">267</span>  public void testFlushCommitsNoAbort() throws Exception {<a name="line.267"></a>
-<span class="sourceLineNo">268</span>    LOG.info("test=testFlushCommitsNoAbort");<a name="line.268"></a>
-<span class="sourceLineNo">269</span>    doTestFlushCommits(false);<a name="line.269"></a>
-<span class="sourceLineNo">270</span>  }<a name="line.270"></a>
-<span class="sourceLineNo">271</span><a name="line.271"></a>
-<span class="sourceLineNo">272</span>  /**<a name="line.272"></a>
-<span class="sourceLineNo">273</span>   * Only run one Multi test with a forced RegionServer abort. Otherwise, the<a name="line.273"></a>
-<span class="sourceLineNo">274</span>   * unit tests will take an unnecessarily long time to run.<a name="line.274"></a>
-<span class="sourceLineNo">275</span>   *<a name="line.275"></a>
-<span class="sourceLineNo">276</span>   * @throws Exception<a name="line.276"></a>
-<span class="sourceLineNo">277</span>   */<a name="line.277"></a>
-<span class="sourceLineNo">278</span>  @Test (timeout=360000)<a name="line.278"></a>
-<span class="sourceLineNo">279</span>  public void testFlushCommitsWithAbort() throws Exception {<a name="line.279"></a>
-<span class="sourceLineNo">280</span>    LOG.info("test=testFlushCommitsWithAbort");<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    doTestFlushCommits(true);<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>  /**<a name="line.284"></a>
-<span class="sourceLineNo">285</span>   * Set table auto flush to false and test flushing commits<a name="line.285"></a>
-<span class="sourceLineNo">286</span>   * @param doAbort true if abort one regionserver in the testing<a name="line.286"></a>
-<span class="sourceLineNo">287</span>   * @throws Exception<a name="line.287"></a>
-<span class="sourceLineNo">288</span>   */<a name="line.288"></a>
-<span class="sourceLineNo">289</span>  private void doTestFlushCommits(boolean doAbort) throws Exception {<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    // Load the data<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    LOG.info("get new table");<a name="line.291"></a>
-<span class="sourceLineNo">292</span>    Table table = UTIL.getConnection().getTable(TEST_TABLE);<a name="line.292"></a>
-<span class="sourceLineNo">293</span><a name="line.293"></a>
-<span class="sourceLineNo">294</span>    LOG.info("constructPutRequests");<a name="line.294"></a>
-<span class="sourceLineNo">295</span>    List&lt;Put&gt; puts = constructPutRequests();<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    table.put(puts);<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    LOG.info("puts");<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    final int liveRScount = UTIL.getMiniHBaseCluster().getLiveRegionServerThreads()<a name="line.298"></a>
-<span class="sourceLineNo">299</span>        .size();<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    assert liveRScount &gt; 0;<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    JVMClusterUtil.RegionServerThread liveRS = UTIL.getMiniHBaseCluster()<a name="line.301"></a>
-<span class="sourceLineNo">302</span>        .getLiveRegionServerThreads().get(0);<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    if (doAbort) {<a name="line.303"></a>
-<span class="sourceLineNo">304</span>      liveRS.getRegionServer().abort("Aborting for tests",<a name="line.304"></a>
-<span class="sourceLineNo">305</span>          new Exception("doTestFlushCommits"));<a name="line.305"></a>
-<span class="sourceLineNo">306</span>      // If we wait for no regions being online after we abort the server, we<a name="line.306"></a>
-<span class="sourceLineNo">307</span>      // could ensure the master has re-assigned the regions on killed server<a name="line.307"></a>
-<span class="sourceLineNo">308</span>      // after writing successfully. It means the server we aborted is dead<a name="line.308"></a>
-<span class="sourceLineNo">309</span>      // and detected by matser<a name="line.309"></a>
-<span class="sourceLineNo">310</span>      while (liveRS.getRegionServer().getNumberOfOnlineRegions() != 0) {<a name="line.310"></a>
-<span class="sourceLineNo">311</span>        Thread.sleep(100);<a name="line.311"></a>
-<span class="sourceLineNo">312</span>      }<a name="line.312"></a>
-<span class="sourceLineNo">313</span>      // try putting more keys after the abort. same key/qual... just validating<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      // no exceptions thrown<a name="line.314"></a>
-<span class="sourceLineNo">315</span>      puts = constructPutRequests();<a name="line.315"></a>
-<span class="sourceLineNo">316</span>      table.put(puts);<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>    LOG.info("validating loaded data");<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    validateLoadedData(table);<a name="line.320"></a>
-<span class="sourceLineNo">321</span><a name="line.321"></a>
-<span class="sourceLineNo">322</span>    // Validate server and region count<a name="line.322"></a>
-<span class="sourceLineNo">323</span>    List&lt;JVMClusterUtil.RegionServerThread&gt; liveRSs = UTIL.getMiniHBaseCluster().getLiveRegionServerThreads();<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    int count = 0;<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    for (JVMClusterUtil.RegionServerThread t: liveRSs) {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>      count++;<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      LOG.info("Count=" + count + ", Alive=" + t.getRegionServer());<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    }<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    LOG.info("Count=" + count);<a name="line.329"></a>
-<span class="sourceLineNo">330</span>    Assert.assertEquals("Server count=" + count + ", abort=" + doAbort,<a name="line.330"></a>
-<span class="sourceLineNo">331</span>        (doAbort ? (liveRScount - 1) : liveRScount), count);<a name="line.331"></a>
-<span class="sourceLineNo">332</span>    if (doAbort) {<a name="line.332"></a>
-<span class="sourceLineNo">333</span>      UTIL.getMiniHBaseCluster().waitOnRegionServer(0);<a name="line.333"></a>
-<span class="sourceLineNo">334</span>      UTIL.waitFor(15 * 1000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.334"></a>
-<span class="sourceLineNo">335</span>        @Override<a name="line.335"></a>
-<span class="sourceLineNo">336</span>        public boolean evaluate() throws Exception {<a name="line.336"></a>
-<span class="sourceLineNo">337</span>          // Master is also a regionserver, so the count is liveRScount<a name="line.337"></a>
-<span class="sourceLineNo">338</span>          return UTIL.getMiniHBaseCluster().getMaster()<a name="line.338"></a>
-<span class="sourceLineNo">339</span>              .getClusterMetrics().getLiveServerMetrics().size() == liveRScount;<a name="line.339"></a>
-<span class="sourceLineNo">340</span>        }<a name="line.340"></a>
-<span class="sourceLineNo">341</span>      });<a name="line.341"></a>
-<span class="sourceLineNo">342</span>      UTIL.waitFor(15 * 1000, UTIL.predicateNoRegionsInTransition());<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>    table.close();<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    LOG.info("done");<a name="line.346"></a>
-<span class="sourceLineNo">347</span>  }<a name="line.347"></a>
-<span class="sourceLineNo">348</span><a name="line.348"></a>
-<span class="sourceLineNo">349</span>  @Test (timeout=300000)<a name="line.349"></a>
-<span class="sourceLineNo">350</span>  public void testBatchWithPut() throws Exception {<a name="line.350"></a>
-<span class="sourceLineNo">351</span>    LOG.info("test=testBatchWithPut");<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    Table table = CONNECTION.getTable(TEST_TABLE);<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    // put multiple rows using a batch<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    List&lt;Put&gt; puts = constructPutRequests();<a name="line.354"></a>
-<span class="sourceLineNo">355</span><a name="line.355"></a>
-<span class="sourceLineNo">356</span>    Object[] results = new Object[puts.size()];<a name="line.356"></a>
-<span class="sourceLineNo">357</span>    table.batch(puts, results);<a name="line.357"></a>
-<span class="sourceLineNo">358</span>    validateSizeAndEmpty(results, KEYS.length);<a name="line.358"></a>
-<span class="sourceLineNo">359</span><a name="line.359"></a>
-<span class="sourceLineNo">360</span>    if (true) {<a name="line.360"></a>
-<span class="sourceLineNo">361</span>      int liveRScount = UTIL.getMiniHBaseCluster().getLiveRegionServerThreads().size();<a name="line.361"></a>
-<span class="sourceLineNo">362</span>      assert liveRScount &gt; 0;<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      JVMClusterUtil.RegionServerThread liveRS =<a name="line.363"></a>
-<span class="sourceLineNo">364</span>        UTIL.getMiniHBaseCluster().getLiveRegionServerThreads().get(0);<a name="line.364"></a>
-<span class="sourceLineNo">365</span>      liveRS.getRegionServer().abort("Aborting for tests", new Exception("testBatchWithPut"));<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      puts = constructPutRequests();<a name="line.366"></a>
-<span class="sourceLineNo">367</span>      try {<a name="line.367"></a>
-<span class="sourceLineNo">368</span>        results = new Object[puts.size()];<a name="line.368"></a>
-<span class="sourceLineNo">369</span>        table.batch(puts, results);<a name="line.369"></a>
-<span class="sourceLineNo">370</span>      } catch (RetriesExhaustedWithDetailsException ree) {<a name="line.370"></a>
-<span class="sourceLineNo">371</span>        LOG.info(ree.getExhaustiveDescription());<a name="line.371"></a>
-<span class="sourceLineNo">372</span>        table.close();<a name="line.372"></a>
-<span class="sourceLineNo">373</span>        throw ree;<a name="line.373"></a>
-<span class="sourceLineNo">374</span>      }<a name="line.374"></a>
-<span class="sourceLineNo">375</span>      validateSizeAndEmpty(results, KEYS.length);<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    }<a name="line.376"></a>
-<span class="sourceLineNo">377</span><a name="line.377"></a>
-<span class="sourceLineNo">378</span>    validateLoadedData(table);<a name="line.378"></a>
-<span class="sourceLineNo">379</span>    table.close();<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  }<a name="line.380"></a>
-<span class="sourceLineNo">381</span><a name="line.381"></a>
-<span class="sourceLineNo">382</span>  @Test(timeout=300000)<a name="line.382"></a>
-<span class="sourceLineNo">383</span>  public void testBatchWithDelete() throws Exception {<a name="line.383"></a>
-<span class="sourceLineNo">384</span>    LOG.info("test=testBatchWithDelete");<a name="line.384"></a>
-<span class="sourceLineNo">385</span>    Table table = UTIL.getConnection().getTable(TEST_TABLE);<a name="line.385"></a>
-<span class="sourceLineNo">386</span><a name="line.386"></a>
-<span class="sourceLineNo">387</span>    // Load some data<a name="line.387"></a>
-<span class="sourceLineNo">388</span>    List&lt;Put&gt; puts = constructPutRequests();<a name="line.388"></a>
-<span class="sourceLineNo">389</span>    Object[] results = new Object[puts.size()];<a name="line.389"></a>
-<span class="sourceLineNo">390</span>    table.batch(puts, results);<a name="line.390"></a>
-<span class="sourceLineNo">391</span>    validateSizeAndEmpty(results, KEYS.length);<a name="line.391"></a>
-<span class="sourceLineNo">392</span><a name="line.392"></a>
-<span class="sourceLineNo">393</span>    // Deletes<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    List&lt;Row&gt; deletes = new ArrayList&lt;&gt;();<a name="line.394"></a>
-<span class="sourceLineNo">395</span>    for (int i = 0; i &lt; KEYS.length; i++) {<a name="line.395"></a>
-<span class="sourceLineNo">396</span>      Delete delete = new Delete(KEYS[i]);<a name="line.396"></a>
-<span class="sourceLineNo">397</span>      delete.addFamily(BYTES_FAMILY);<a name="line.397"></a>
-<span class="sourceLineNo">398</span>      deletes.add(delete);<a name="line.398"></a>
-<span class="sourceLineNo">399</span>    }<a name="line.399"></a>
-<span class="sourceLineNo">400</span>    results= new Object[deletes.size()];<a name="line.400"></a>
-<span class="sourceLineNo">401</span>    table.batch(deletes, results);<a name="line.401"></a>
-<span class="sourceLineNo">402</span>    validateSizeAndEmpty(results, KEYS.length);<a name="line.402"></a>
-<span class="sourceLineNo">403</span><a name="line.403"></a>
-<span class="sourceLineNo">404</span>    // Get to make sure ...<a name="line.404"></a>
-<span class="sourceLineNo">405</span>    for (byte[] k : KEYS) {<a name="line.405"></a>
-<span class="sourceLineNo">406</span>      Get get = new Get(k);<a name="line.406"></a>
-<span class="sourceLineNo">407</span>      get.addColumn(BYTES_FAMILY, QUALIFIER);<a name="line.407"></a>
-<span class="sourceLineNo">408</span>      Assert.assertFalse(table.exists(get));<a name="line.408"></a>
-<span class="sourceLineNo">409</span>    }<a name="line.409"></a>
-<span class="sourceLineNo">410</span>    table.close();<a name="line.410"></a>
-<span class="sourceLineNo">411</span>  }<a name="line.411"></a>
-<span class="sourceLineNo">412</span><a name="line.412"></a>
-<span class="sourceLineNo">413</span>  @Test(timeout=300000)<a name="line.413"></a>
-<span class="sourceLineNo">414</span>  public void testHTableDeleteWithList() throws Exception {<a name="line.414"></a>
-<span class="sourceLineNo">415</span>    LOG.info("test=testHTableDeleteWithList");<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    Table table = UTIL.getConnection().getTable(TEST_TABLE);<a name="line.416"></a>
-<span class="sourceLineNo">417</span><a name="line.417"></a>
-<span class="sourceLineNo">418</span>    // Load some data<a name="line.418"></a>
-<span class="sourceLineNo">419</span>    List&lt;Put&gt; puts = constructPutRequests();<a name="line.419"></a>
-<span class="sourceLineNo">420</span>    Object[] results = new Object[puts.size()];<a name="line.420"></a>
-<span class="sourceLineNo">421</span>    table.batch(puts, results);<a name="line.421"></a>
-<span class="sourceLineNo">422</span>    validateSizeAndEmpty(results, KEYS.length);<a name="line.422"></a>
-<span class="sourceLineNo">423</span><a name="line.423"></a>
-<span class="sourceLineNo">424</span>    // Deletes<a name="line.424"></a>
-<span class="sourceLineNo">425</span>    ArrayList&lt;Delete&gt; deletes = new ArrayList&lt;&gt;();<a name="line.425"></a>
-<span class="sourceLineNo">426</span>    for (int i = 0; i &lt; KEYS.length; i++) {<a name="line.426"></a>
-<span class="sourceLineNo">427</span>      Delete delete = new Delete(KEYS[i]);<a name="line.427"></a>
-<span class="sourceLineNo">428</span>      delete.addFamily(BYTES_FAMILY);<a name="line.428"></a>
-<span class="sourceLineNo">429</span>      deletes.add(delete);<a name="line.429"></a>
-<span class="sourceLineNo">430</span>    }<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    table.delete(deletes);<a name="line.431"></a>
-<span class="sourceLineNo">432</span>    Assert.assertTrue(deletes.isEmpty());<a name="line.432"></a>
-<span class="sourceLineNo">433</span><a name="line.433"></a>
-<span class="sourceLineNo">434</span>    // Get to make sure ...<a name="line.434"></a>
-<span class="sourceLineNo">435</span>    for (byte[] k : KEYS) {<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      Get get = new Get(k);<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      get.addColumn(BYTES_FAMILY, QUALIFIER);<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      Assert.assertFalse(table.exists(get));<a name="line.438"></a>
-<span class="sourceLineNo">439</span>    }<a name="line.439"></a>
-<span class="sourceLineNo">440</span>    table.close();<a name="line.440"></a>
-<span class="sourceLineNo">441</span>  }<a name="line.441"></a>
-<span class="sourceLineNo">442</span><a name="line.442"></a>
-<span class="sourceLineNo">443</span>  @Test(timeout=300000)<a name="line.443"></a>
-<span class="sourceLineNo">444</span>  public void testBatchWithManyColsInOneRowGetAndPut() throws Exception {<a name="line.444"></a>
-<span class="sourceLineNo">445</span>    LOG.info("test=testBatchWithManyColsInOneRowGetAndPut");<a name="line.445"></a>
-<span class="sourceLineNo">446</span>    Table table = UTIL.getConnection().getTable(TEST_TABLE);<a name="line.446"></a>
-<span class="sourceLineNo">447</span><a name="line.447"></a>
-<span class="sourceLineNo">448</span>    List&lt;Row&gt; puts = new ArrayList&lt;&gt;();<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    for (int i = 0; i &lt; 100; i++) {<a name="line.449"></a>
-<span class="sourceLineNo">450</span>      Put put = new Put(ONE_ROW);<a name="line.450"></a>
-<span class="sourceLineNo">451</span>      byte[] qual = Bytes.toBytes("column" + i);<a name="line.451"></a>
-<span class="sourceLineNo">452</span>      put.addColumn(BYTES_FAMILY, qual, VALUE);<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      puts.add(put);<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    }<a name="line.454"></a>
-<span class="sourceLineNo">455</span>    Object[] results = new Object[puts.size()];<a name="line.455"></a>
-<span class="sourceLineNo">456</span>    table.batch(puts, results);<a name="line.456"></a>
-<span class="sourceLineNo">457</span><a name="line.457"></a>
-<span class="sourceLineNo">458</span>    // validate<a name="line.458"></a>
-<span class="sourceLineNo">459</span>    validateSizeAndEmpty(results, 100);<a name="line.459"></a>
-<span class="sourceLineNo">460</span><a name="line.460"></a>
-<span class="sourceLineNo">461</span>    // get the data back and validate that it is correct<a name="line.461"></a>
-<span class="sourceLineNo">462</span>    List&lt;Row&gt; gets = new ArrayList&lt;&gt;();<a name="line.462"></a>
-<span class="sourceLineNo">463</span>    for (int i = 0; i &lt; 100; i++) {<a name="line.463"></a>
-<span class="sourceLineNo">464</span>      Get get = new Get(ONE_ROW);<a name="line.464"></a>
-<span class="sourceLineNo">465</span>      byte[] qual = Bytes.toBytes("column" + i);<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      get.addColumn(BYTES_FAMILY, qual);<a name="line.466"></a>
-<span class="sourceLineNo">467</span>      gets.add(get);<a name="line.467"></a>
-<span class="sourceLineNo">468</span>    }<a name="line.468"></a>
-<span class="sourceLineNo">469</span><a name="line.469"></a>
-<span class="sourceLineNo">470</span>    Object[] multiRes = new Object[gets.size()];<a name="line.470"></a>
-<span class="sourceLineNo">471</span>    table.batch(gets, multiRes);<a name="line.471"></a>
-<span class="sourceLineNo">472</span><a name="line.472"></a>
-<span class="sourceLineNo">473</span>    int idx = 0;<a name="line.473"></a>
-<span class="sourceLineNo">474</span>    for (Object r : multiRes) {<a name="line.474"></a>
-<span class="sourceLineNo">475</span>      byte[] qual = Bytes.toBytes("column" + idx);<a name="line.475"></a>
-<span class="sourceLineNo">476</span>      validateResult(r, qual, VALUE);<a name="line.476"></a>
-<span class="sourceLineNo">477</span>      idx++;<a name="line.477"></a>
-<span class="sourceLineNo">478</span>    }<a name="line.478"></a>
-<span class="sourceLineNo">479</span>    table.close();<a name="line.479"></a>
-<span class="sourceLineNo">480</span>  }<a name="line.480"></a>
-<span class="sourceLineNo">481</span><a name="line.481"></a>
-<span class="sourceLineNo">482</span>  @Test(timeout=300000)<a name="line.482"></a>
-<span class="sourceLineNo">483</span>  public void testBatchWithIncrementAndAppend() throws Exception {<a name="line.483"></a>
-<span class="sourceLineNo">484</span>    LOG.info("test=testBatchWithIncrementAndAppend");<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    final byte[] QUAL1 = Bytes.toBytes("qual1");<a name="line.485"></a>
-<span class="sourceLineNo">486</span>    final byte[] QUAL2 = Bytes.toBytes("qual2");<a name="line.486"></a>
-<span class="sourceLineNo">487</span>    final byte[] QUAL3 = Bytes.toBytes("qual3");<a name="line.487"></a>
-<span class="sourceLineNo">488</span>    final byte[] QUAL4 = Bytes.toBytes("qual4");<a name="line.488"></a>
-<span class="sourceLineNo">489</span>    Table table = UTIL.getConnection().getTable(TEST_TABLE);<a name="line.489"></a>
-<span class="sourceLineNo">490</span>    Delete d = new Delete(ONE_ROW);<a name="line.490"></a>
-<span class="sourceLineNo">491</span>    table.delete(d);<a name="line.491"></a>
-<span class="sourceLineNo">492</span>    Put put = new Put(ONE_ROW);<a name="line.492"></a>
-<span class="sourceLineNo">493</span>    put.addColumn(BYTES_FAMILY, QUAL1, Bytes.toBytes("abc"));<a name="line.493"></a>
-<span class="sourceLineNo">494</span>    put.addColumn(BYTES_FAMILY, QUAL2, Bytes.toBytes(1L));<a name="line.494"></a>
-<span class="sourceLineNo">495</span>    table.put(put);<a name="line.495"></a>
-<span class="sourceLineNo">496</span><a name="line.496"></a>
-<span class="sourceLineNo">497</span>    Increment inc = new Increment(ONE_ROW);<a name="line.497"></a>
-<span class="sourceLineNo">498</span>    inc.addColumn(BYTES_FAMILY, QUAL2, 1);<a name="line.498"></a>
-<span class="sourceLineNo">499</span>    inc.addColumn(BYTES_FAMILY, QUAL3, 1);<a name="line.499"></a>
-<span class="sourceLineNo">500</span><a name="line.500"></a>
-<span class="sourceLineNo">501</span>    Append a = new Append(ONE_ROW);<a name="line.501"></a>
-<span class="sourceLineNo">502</span>    a.addColumn(BYTES_FAMILY, QUAL1, Bytes.toBytes("def"));<a name="line.502"></a>
-<span class="sourceLineNo">503</span>    a.addColumn(BYTES_FAMILY, QUAL4, Bytes.toBytes("xyz"));<a name="line.503"></a>
-<span class="sourceLineNo">504</span>    List&lt;Row&gt; actions = new ArrayList&lt;&gt;();<a name="line.504"></a>
-<span class="sourceLineNo">505</span>    actions.add(inc);<a name="line.505"></a>
-<span class="sourceLineNo">506</span>    actions.add(a);<a name="line.506"></a>
-<span class="sourceLineNo">507</span><a name="line.507"></a>
-<span class="sourceLineNo">508</span>    Object[] multiRes = new Object[actions.size()];<a name="line.508"></a>
-<span class="sourceLineNo">509</span>    table.batch(actions, multiRes);<a name="line.509"></a>
-<span class="sourceLineNo">510</span>    validateResult(multiRes[1], QUAL1, Bytes.toBytes("abcdef"));<a name="line.510"></a>
-<span class="sourceLineNo">511</span>    validateResult(multiRes[1], QUAL4, Bytes.toBytes("xyz"));<a name="line.511"></a>
-<span class="sourceLineNo">512</span>    validateResult(multiRes[0], QUAL2, Bytes.toBytes(2L));<a name="line.512"></a>
-<span class="sourceLineNo">513</span>    validateResult(multiRes[0], QUAL3, Bytes.toBytes(1L));<a name="line.513"></a>
-<span class="sourceLineNo">514</span>    table.close();<a name="line.514"></a>
-<span class="sourceLineNo">515</span>  }<a name="line.515"></a>
-<span class="sourceLineNo">516</span><a name="line.516"></a>
-<span class="sourceLineNo">517</span>  @Test(timeout=300000)<a name="line.517"></a>
-<span class="sourceLineNo">518</span>  public void testNonceCollision() throws Exception {<a name="line.518"></a>
-<span class="sourceLineNo">519</span>    LOG.info("test=testNonceCollision");<a name="line.519"></a>
-<span class="sourceLineNo">520</span>    final Connection connection = ConnectionFactory.createConnection(UTIL.getConfiguration());<a name="line.520"></a>
-<span class="sourceLineNo">521</span>    Table table = connection.getTable(TEST_TABLE);<a name="line.521"></a>
-<span class="sourceLineNo">522</span>    Put put = new Put(ONE_ROW);<a name="line.522"></a>
-<span class="sourceLineNo">523</span>    put.addColumn(BYTES_FAMILY, QUALIFIER, Bytes.toBytes(0L));<a name="line.523"></a>
-<span class="sourceLineNo">524</span><a name="line.524"></a>
-<span class="sourceLineNo">525</span>    // Replace nonce manager with the one that returns each nonce twice.<a name="line.525"></a>
-<span class="sourceLineNo">526</span>    NonceGenerator cnm = new NonceGenerator() {<a name="line.526"></a>
-<span class="sourceLineNo">527</span><a name="line.527"></a>
-<span class="sourceLineNo">528</span>      private final PerClientRandomNonceGenerator delegate = PerClientRandomNonceGenerator.get();<a name="line.528"></a>
+<span class="sourceLineNo">251</span>    // row1 and row2 should be in the same region.<a name="line.251"></a>
+<span class="sourceLineNo">252</span><a name="line.252"></a>
+<span class="sourceLineNo">253</span>    Object [] r = new Object[actions.size()];<a name="line.253"></a>
+<span class="sourceLineNo">254</span>    try {<a name="line.254"></a>
+<span class="sourceLineNo">255</span>      table.batch(actions, r);<a name="line.255"></a>
+<span class="sourceLineNo">256</span>      fail();<a name="line.256"></a>
+<span class="sourceLineNo">257</span>    } catch (RetriesExhaustedWithDetailsException ex) {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>      LOG.debug(ex.toString(), ex);<a name="line.258"></a>
+<span class="sourceLineNo">259</span>      // good!<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      assertFalse(ex.mayHaveClusterIssues());<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    }<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    assertEquals(2, r.length);<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    assertTrue(r[0] instanceof Throwable);<a name="line.263"></a>
+<span class="sourceLineNo">264</span>    assertTrue(r[1] instanceof Result);<a name="line.264"></a>
+<span class="sourceLineNo">265</span>    table.close();<a name="line.265"></a>
+<span class="sourceLineNo">266</span>  }<a name="line.266"></a>
+<span class="sourceLineNo">267</span><a name="line.267"></a>
+<span class="sourceLineNo">268</span>  @Test (timeout=300000)<a name="line.268"></a>
+<span class="sourceLineNo">269</span>  public void testFlushCommitsNoAbort() throws Exception {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>    LOG.info("test=testFlushCommitsNoAbort");<a name="line.270"></a>
+<span class="sourceLineNo">271</span>    doTestFlushCommits(false);<a name="line.271"></a>
+<span class="sourceLineNo">272</span>  }<a name="line.272"></a>
+<span class="sourceLineNo">273</span><a name="line.273"></a>
+<span class="sourceLineNo">274</span>  /**<a name="line.274"></a>
+<span class="sourceLineNo">275</span>   * Only run one Multi test with a forced RegionServer abort. Otherwise, the<a name="line.275"></a>
+<span class="sourceLineNo">276</span>   * unit tests will take an unnecessarily long time to run.<a name="line.276"></a>
+<span class="sourceLineNo">277</span>   *<a name="line.277"></a>
+<span class="sourceLineNo">278</span>   * @throws Exception<a name="line.278"></a>
+<span class="sourceLineNo">279</span>   */<a name="line.279"></a>
+<span class="sourceLineNo">280</span>  @Test (timeout=360000)<a name="line.280"></a>
+<span class="sourceLineNo">281</span>  public void testFlushCommitsWithAbort() throws Exception {<a name="line.281"></a>
+<span class="sourceLineNo">282</span>    LOG.info("test=testFlushCommitsWithAbort");<a name="line.282"></a>
+<span class="sourceLineNo">283</span>    doTestFlushCommits(true);<a name="line.283"></a>
+<span class="sourceLineNo">284</span>  }<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>  /**<a name="line.286"></a>
+<span class="sourceLineNo">287</span>   * Set table auto flush to false and test flushing commits<a name="line.287"></a>
+<span class="sourceLineNo">288</span>   * @param doAbort true if abort one regionserver in the testing<a name="line.288"></a>
+<span class="sourceLineNo">289</span>   * @throws Exception<a name="line.289"></a>
+<span class="sourceLineNo">290</span>   */<a name="line.290"></a>
+<span class="sourceLineNo">291</span>  private void doTestFlushCommits(boolean doAbort) throws Exception {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>    // Load the data<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    LOG.info("get new table");<a name="line.293"></a>
+<span class="sourceLineNo">294</span>    Table table = UTIL.getConnection().getTable(TEST_TABLE);<a name="line.294"></a>
+<span class="sourceLineNo">295</span><a name="line.295"></a>
+<span class="sourceLineNo">296</span>    LOG.info("constructPutRequests");<a name="line.296"></a>
+<span class="sourceLineNo">297</span>    List&lt;Put&gt; puts = constructPutRequests();<a name="line.297"></a>
+<span class="sourceLineNo">298</span>    table.put(puts);<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    LOG.info("puts");<a name="line.299"></a>
+<span class="sourceLineNo">300</span>    final int liveRScount = UTIL.getMiniHBaseCluster().getLiveRegionServerThreads()<a name="line.300"></a>
+<span class="sourceLineNo">301</span>        .size();<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    assert liveRScount &gt; 0;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>    JVMClusterUtil.RegionServerThread liveRS = UTIL.getMiniHBaseCluster()<a name="line.303"></a>
+<span class="sourceLineNo">304</span>        .getLiveRegionServerThreads().get(0);<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    if (doAbort) {<a name="line.305"></a>
+<span class="sourceLineNo">306</span>      liveRS.getRegionServer().abort("Aborting for tests",<a name="line.306"></a>
+<span class="sourceLineNo">307</span>          new Exception("doTestFlushCommits"));<a name="line.307"></a>
+<span class="sourceLineNo">308</span>      // If we wait for no regions being online after we abort the server, we<a name="line.308"></a>
+<span class="sourceLineNo">309</span>      // could ensure the master has re-assigned the regions on killed server<a name="line.309"></a>
+<span class="sourceLineNo">310</span>      // after writing successfully. It means the server we aborted is dead<a name="line.310"></a>
+<span class="sourceLineNo">311</span>      // and detected by matser<a name="line.311"></a>
+<span class="sourceLineNo">312</span>      while (liveRS.getRegionServer().getNumberOfOnlineRegions() != 0) {<a name="line.312"></a>
+<span class="sourceLineNo">313</span>        Thread.sleep(100);<a name="line.313"></a>
+<span class="sourceLineNo">314</span>      }<a name="line.314"></a>
+<span class="sourceLineNo">315</span>      // try putting more keys after the abort. same key/qual... just validating<a name="line.315"></a>
+<span class="sourceLineNo">316</span>      // no exceptions thrown<a name="line.316"></a>
+<span class="sourceLineNo">317</span>      puts = constructPutRequests();<a name="line.317"></a>
+<span class="sourceLineNo">318</span>      table.put(puts);<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>    LOG.info("validating loaded data");<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    validateLoadedData(table);<a name="line.322"></a>
+<span class="sourceLineNo">323</span><a name="line.323"></a>
+<span class="sourceLineNo">324</span>    // Validate server and region count<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    List&lt;JVMClusterUtil.RegionServerThread&gt; liveRSs = UTIL.getMiniHBaseCluster().getLiveRegionServerThreads();<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    int count = 0;<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    for (JVMClusterUtil.RegionServerThread t: liveRSs) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>      count++;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>      LOG.info("Count=" + count + ", Alive=" + t.getRegionServer());<a name="line.329"></a>
+<span class="sourceLineNo">330</span>    }<a name="line.330"></a>
+<span class="sourceLineNo">331</span>    LOG.info("Count=" + count);<a name="line.331"></a>
+<span class="sourceLineNo">332</span>    Assert.assertEquals("Server count=" + count + ", abort=" + doAbort,<a name="line.332"></a>
+<span class="sourceLineNo">333</span>        (doAbort ? (liveRScount - 1) : liveRScount), count);<a name="line.333"></a>
+<span class="sourceLineNo">334</span>    if (doAbort) {<a name="line.334"></a>
+<span class="sourceLineNo">335</span>      UTIL.getMiniHBaseCluster().waitOnRegionServer(0);<a name="line.335"></a>
+<span class="sourceLineNo">336</span>      UTIL.waitFor(15 * 1000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.336"></a>
+<span class="sourceLineNo">337</span>        @Override<a name="line.337"></a>
+<span class="sourceLineNo">338</span>        public boolean evaluate() throws Exception {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>          // Master is also a regionserver, so the count is liveRScount<a name="line.339"></a>
+<span class="sourceLineNo">340</span>          return UTIL.getMiniHBaseCluster().getMaster()<a name="line.340"></a>
+<span class="sourceLineNo">341</span>              .getClusterMetrics().getLiveServerMetrics().size() == liveRScount;<a name="line.341"></a>
+<span class="sourceLineNo">342</span>        }<a name="line.342"></a>
+<span class="sourceLineNo">343</span>      });<a name="line.343"></a>
+<span class="sourceLineNo">344</span>      UTIL.waitFor(15 * 1000, UTIL.predicateNoRegionsInTransition());<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    }<a name="line.345"></a>
+<span class="sourceLineNo">346</span><a name="line.346"></a>
+<span class="sourceLineNo">347</span>    table.close();<a name="line.347"></a>
+<span class="sourceLineNo">348</span>    LOG.info("done");<a name="line.348"></a>
+<span class="sourceLineNo">349</span>  }<a name="line.349"></a>
+<span class="sourceLineNo">350</span><a name="line.350"></a>
+<span class="sourceLineNo">351</span>  @Test (timeout=300000)<a name="line.351"></a>
+<span class="sourceLineNo">352</span>  public void testBatchWithPut() throws Exception {<a name="line.352"></a>
+<span class="sourceLineNo">353</span>    LOG.info("test=testBatchWithPut");<a name="line.353"></a>
+<span class="sourceLineNo">354</span>    Table table = CONNECTION.getTable(TEST_TABLE);<a name="line.354"></a>
+<span class="sourceLineNo">355</span>    // put multiple rows using a batch<a name="line.355"></a>
+<span class="sourceLineNo">356</span>    List&lt;Put&gt; puts = constructPutRequests();<a name="line.356"></a>
+<span class="sourceLineNo">357</span><a name="line.357"></a>
+<span class="sourceLineNo">358</span>    Object[] results = new Object[puts.size()];<a name="line.358"></a>
+<span class="sourceLineNo">359</span>    table.batch(puts, results);<a name="line.359"></a>
+<span class="sourceLineNo">360</span>    validateSizeAndEmpty(results, KEYS.length);<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span>    if (true) {<a name="line.362"></a>
+<span class="sourceLineNo">363</span>      int liveRScount = UTIL.getMiniHBaseCluster().getLiveRegionServerThreads().size();<a name="line.363"></a>
+<span class="sourceLineNo">364</span>      assert liveRScount &gt; 0;<a name="line.364"></a>
+<span class="sourceLineNo">365</span>      JVMClusterUtil.RegionServerThread liveRS =<a name="line.365"></a>
+<span class="sourceLineNo">366</span>        UTIL.getMiniHBaseCluster().getLiveRegionServerThreads().get(0);<a name="line.366"></a>
+<span class="sourceLineNo">367</span>      liveRS.getRegionServer().abort("Aborting for tests", new Exception("testBatchWithPut"));<a name="line.367"></a>
+<span class="sourceLineNo">368</span>      puts = constructPutRequests();<a name="line.368"></a>
+<span class="sourceLineNo">369</span>      try {<a name="line.369"></a>
+<span class="sourceLineNo">370</span>        results = new Object[puts.size()];<a name="line.370"></a>
+<span class="sourceLineNo">371</span>        table.batch(puts, results);<a name="line.371"></a>
+<span class="sourceLineNo">372</span>      } catch (RetriesExhaustedWithDetailsException ree) {<a name="line.372"></a>
+<span class="sourceLineNo">373</span>        LOG.info(ree.getExhaustiveDescription());<a name="line.373"></a>
+<span class="sourceLineNo">374</span>        table.close();<a name="line.374"></a>
+<span class="sourceLineNo">375</span>        throw ree;<a name="line.375"></a>
+<span class="sourceLineNo">376</span>      }<a name="line.376"></a>
+<span class="sourceLineNo">377</span>      validateSizeAndEmpty(results, KEYS.length);<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    }<a name="line.378"></a>
+<span class="sourceLineNo">379</span><a name="line.379"></a>
+<span class="sourceLineNo">380</span>    validateLoadedData(table);<a name="line.380"></a>
+<span class="sourceLineNo">381</span>    table.close();<a name="line.381"></a>
+<span class="sourceLineNo">382</span>  }<a name="line.382"></a>
+<span class="sourceLineNo">383</span><a name="line.383"></a>
+<span class="sourceLineNo">384</span>  @Test(timeout=300000)<a name="line.384"></a>
+<span class="sourceLineNo">385</span>  public void testBatchWithDelete() throws Exception {<a name="line.385"></a>
+<span class="sourceLineNo">386</span>    LOG.info("test=testBatchWithDelete");<a name="line.386"></a>
+<span class="sourceLineNo">387</span>    Table table = UTIL.getConnection().getTable(TEST_TABLE);<a name="line.387"></a>
+<span class="sourceLineNo">388</span><a name="line.388"></a>
+<span class="sourceLineNo">389</span>    // Load some data<a name="line.389"></a>
+<span class="sourceLineNo">390</span>    List&lt;Put&gt; puts = constructPutRequests();<a name="line.390"></a>
+<span class="sourceLineNo">391</span>    Object[] results = new Object[puts.size()];<a name="line.391"></a>
+<span class="sourceLineNo">392</span>    table.batch(puts, results);<a name="line.392"></a>
+<span class="sourceLineNo">393</span>    validateSizeAndEmpty(results, KEYS.length);<a name="line.393"></a>
+<span class="sourceLineNo">394</span><a name="line.394"></a>
+<span class="sourceLineNo">395</span>    // Deletes<a name="line.395"></a>
+<span class="sourceLineNo">396</span>    List&lt;Row&gt; deletes = new ArrayList&lt;&gt;();<a name="line.396"></a>
+<span class="sourceLineNo">397</span>    for (int i = 0; i &lt; KEYS.length; i++) {<a name="line.397"></a>
+<span class="sourceLineNo">398</span>      Delete delete = new Delete(KEYS[i]);<a name="line.398"></a>
+<span class="sourceLineNo">399</span>      delete.addFamily(BYTES_FAMILY);<a name="line.399"></a>
+<span class="sourceLineNo">400</span>      deletes.add(delete);<a name="line.400"></a>
+<span class="sourceLineNo">401</span>    }<a name="line.401"></a>
+<span class="sourceLineNo">402</span>    results= new Object[deletes.size()];<a name="line.402"></a>
+<span class="sourceLineNo">403</span>    table.batch(deletes, results);<a name="line.403"></a>
+<span class="sourceLineNo">404</span>    validateSizeAndEmpty(results, KEYS.length);<a name="line.404"></a>
+<span class="sourceLineNo">405</span><a name="line.405"></a>
+<span class="sourceLineNo">406</span>    // Get to make sure ...<a name="line.406"></a>
+<span class="sourceLineNo">407</span>    for (byte[] k : KEYS) {<a name="line.407"></a>
+<span class="sourceLineNo">408</span>      Get get = new Get(k);<a name="line.408"></a>
+<span class="sourceLineNo">409</span>      get.addColumn(BYTES_FAMILY, QUALIFIER);<a name="line.409"></a>
+<span class="sourceLineNo">410</span>      Assert.assertFalse(table.exists(get));<a name="line.410"></a>
+<span class="sourceLineNo">411</span>    }<a name="line.411"></a>
+<span class="sourceLineNo">412</span>    table.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>  @Test(timeout=300000)<a name="line.415"></a>
+<span class="sourceLineNo">416</span>  public void testHTableDeleteWithList() throws Exception {<a name="line.416"></a>
+<span class="sourceLineNo">417</span>    LOG.info("test=testHTableDeleteWithList");<a name="line.417"></a>
+<span class="sourceLineNo">418</span>    Table table = UTIL.getConnection().getTable(TEST_TABLE);<a name="line.418"></a>
+<span class="sourceLineNo">419</span><a name="line.419"></a>
+<span class="sourceLineNo">420</span>    // Load some data<a name="line.420"></a>
+<span class="sourceLineNo">421</span>    List&lt;Put&gt; puts = constructPutRequests();<a name="line.421"></a>
+<span class="sourceLineNo">422</span>    Object[] results = new Object[puts.size()];<a name="line.422"></a>
+<span class="sourceLineNo">423</span>    table.batch(puts, results);<a name="line.423"></a>
+<span class="sourceLineNo">424</span>    validateSizeAndEmpty(results, KEYS.length);<a name="line.424"></a>
+<span class="sourceLineNo">425</span><a name="line.425"></a>
+<span class="sourceLineNo">426</span>    // Deletes<a name="line.426"></a>
+<span class="sourceLineNo">427</span>    ArrayList&lt;Delete&gt; deletes = new ArrayList&lt;&gt;();<a name="line.427"></a>
+<span class="sourceLineNo">428</span>    for (int i = 0; i &lt; KEYS.length; i++) {<a name="line.428"></a>
+<span class="sourceLineNo">429</span>      Delete delete = new Delete(KEYS[i]);<a name="line.429"></a>
+<span class="sourceLineNo">430</span>      delete.addFamily(BYTES_FAMILY);<a name="line.430"></a>
+<span class="sourceLineNo">431</span>      deletes.add(delete);<a name="line.431"></a>
+<span class="sourceLineNo">432</span>    }<a name="line.432"></a>
+<span class="sourceLineNo">433</span>    table.delete(deletes);<a name="line.433"></a>
+<span class="sourceLineNo">434</span>    Assert.assertTrue(deletes.isEmpty());<a name="line.434"></a>
+<span class="sourceLineNo">435</span><a name="line.435"></a>
+<span class="sourceLineNo">436</span>    // Get to make sure ...<a name="line.436"></a>
+<span class="sourceLineNo">437</span>    for (byte[] k : KEYS) {<a name="line.437"></a>
+<span class="sourceLineNo">438</span>      Get get = new Get(k);<a name="line.438"></a>
+<span class="sourceLineNo">439</span>      get.addColumn(BYTES_FAMILY, QUALIFIER);<a name="line.439"></a>
+<span class="sourceLineNo">440</span>      Assert.assertFalse(table.exists(get));<a name="line.440"></a>
+<span class="sourceLineNo">441</span>    }<a name="line.441"></a>
+<span class="sourceLineNo">442</span>    table.close();<a name="line.442"></a>
+<span class="sourceLineNo">443</span>  }<a name="line.443"></a>
+<span class="sourceLineNo">444</span><a name="line.444"></a>
+<span class="sourceLineNo">445</span>  @Test(timeout=300000)<a name="line.445"></a>
+<span class="sourceLineNo">446</span>  public void testBatchWithManyColsInOneRowGetAndPut() throws Exception {<a name="line.446"></a>
+<span class="sourceLineNo">447</span>    LOG.info("test=testBatchWithManyColsInOneRowGetAndPut");<a name="line.447"></a>
+<span class="sourceLineNo">448</span>    Table table = UTIL.getConnection().getTable(TEST_TABLE);<a name="line.448"></a>
+<span class="sourceLineNo">449</span><a name="line.449"></a>
+<span class="sourceLineNo">450</span>    List&lt;Row&gt; puts = new ArrayList&lt;&gt;();<a name="line.450"></a>
+<span class="sourceLineNo">451</span>    for (int i = 0; i &lt; 100; i++) {<a name="line.451"></a>
+<span class="sourceLineNo">452</span>      Put put = new Put(ONE_ROW);<a name="line.452"></a>
+<span class="sourceLineNo">453</span>      byte[] qual = Bytes.toBytes("column" + i);<a name="line.453"></a>
+<span class="sourceLineNo">454</span>      put.addColumn(BYTES_FAMILY, qual, VALUE);<a name="line.454"></a>
+<span class="sourceLineNo">455</span>      puts.add(put);<a name="line.455"></a>
+<span class="sourceLineNo">456</span>    }<a name="line.456"></a>
+<span class="sourceLineNo">457</span>    Object[] results = new Object[puts.size()];<a name="line.457"></a>
+<span class="sourceLineNo">458</span>    table.batch(puts, results);<a name="line.458"></a>
+<span class="sourceLineNo">459</span><a name="line.459"></a>
+<span class="sourceLineNo">460</span>    // validate<a name="line.460"></a>
+<span class="sourceLineNo">461</span>    validateSizeAndEmpty(results, 100);<a name="line.461"></a>
+<span class="sourceLineNo">462</span><a name="line.462"></a>
+<span class="sourceLineNo">463</span>    // get the data back and validate that it is correct<a name="line.463"></a>
+<span class="sourceLineNo">464</span>    List&lt;Row&gt; gets = new ArrayList&lt;&gt;();<a name="line.464"></a>
+<span class="sourceLineNo">465</span>    for (int i = 0; i &lt; 100; i++) {<a name="line.465"></a>
+<span class="sourceLineNo">466</span>      Get get = new Get(ONE_ROW);<a name="line.466"></a>
+<span class="sourceLineNo">467</span>      byte[] qual = Bytes.toBytes("column" + i);<a name="line.467"></a>
+<span class="sourceLineNo">468</span>      get.addColumn(BYTES_FAMILY, qual);<a name="line.468"></a>
+<span class="sourceLineNo">469</span>      gets.add(get);<a name="line.469"></a>
+<span class="sourceLineNo">470</span>    }<a name="line.470"></a>
+<span class="sourceLineNo">471</span><a name="line.471"></a>
+<span class="sourceLineNo">472</span>    Object[] multiRes = new Object[gets.size()];<a name="line.472"></a>
+<span class="sourceLineNo">473</span>    table.batch(gets, multiRes);<a name="line.473"></a>
+<span class="sourceLineNo">474</span><a name="line.474"></a>
+<span class="sourceLineNo">475</span>    int idx = 0;<a name="line.475"></a>
+<span class="sourceLineNo">476</span>    for (Object r : multiRes) {<a name="line.476"></a>
+<span class="sourceLineNo">477</span>      byte[] qual = Bytes.toBytes("column" + idx);<a name="line.477"></a>
+<span class="sourceLineNo">478</span>      validateResult(r, qual, VALUE);<a name="line.478"></a>
+<span class="sourceLineNo">479</span>      idx++;<a name="line.479"></a>
+<span class="sourceLineNo">480</span>    }<a name="line.480"></a>
+<span class="sourceLineNo">481</span>    table.close();<a name="line.481"></a>
+<span class="sourceLineNo">482</span>  }<a name="line.482"></a>
+<span class="sourceLineNo">483</span><a name="line.483"></a>
+<span class="sourceLineNo">484</span>  @Test(timeout=300000)<a name="line.484"></a>
+<span class="sourceLineNo">485</span>  public void testBatchWithIncrementAndAppend() throws Exception {<a name="line.485"></a>
+<span class="sourceLineNo">486</span>    LOG.info("test=testBatchWithIncrementAndAppend");<a name="line.486"></a>
+<span class="sourceLineNo">487</span>    final byte[] QUAL1 = Bytes.toBytes("qual1");<a name="line.487"></a>
+<span class="sourceLineNo">488</span>    final byte[] QUAL2 = Bytes.toBytes("qual2");<a name="line.488"></a>
+<span class="sourceLineNo">489</span>    final byte[] QUAL3 = Bytes.toBytes("qual3");<a name="line.489"></a>
+<span class="sourceLineNo">490</span>    final byte[] QUAL4 = Bytes.toBytes("qual4");<a name="line.490"></a>
+<span class="sourceLineNo">491</span>    Table table = UTIL.getConnection().getTable(TEST_TABLE);<a name="line.491"></a>
+<span class="sourceLineNo">492</span>    Delete d = new Delete(ONE_ROW);<a name="line.492"></a>
+<span class="sourceLineNo">493</span>    table.delete(d);<a name="line.493"></a>
+<span class="sourceLineNo">494</span>    Put put = new Put(ONE_ROW);<a name="line.494"></a>
+<span class="sourceLineNo">495</span>    put.addColumn(BYTES_FAMILY, QUAL1, Bytes.toBytes("abc"));<a name="line.495"></a>
+<span class="sourceLineNo">496</span>    put.addColumn(BYTES_FAMILY, QUAL2, Bytes.toBytes(1L));<a name="line.496"></a>
+<span class="sourceLineNo">497</span>    table.put(put);<a name="line.497"></a>
+<span class="sourceLineNo">498</span><a name="line.498"></a>
+<span class="sourceLineNo">499</span>    Increment inc = new Increment(ONE_ROW);<a name="line.499"></a>
+<span class="sourceLineNo">500</span>    inc.addColumn(BYTES_FAMILY, QUAL2, 1);<a name="line.500

<TRUNCATED>