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 2019/01/09 14:51:12 UTC
[27/51] [partial] hbase-site git commit: Published site at
620d70d6186fb800299bcc62ad7179fccfd1be41.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/aa3fb87f/devapidocs/org/apache/hadoop/hbase/util/class-use/Pair.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/class-use/Pair.html b/devapidocs/org/apache/hadoop/hbase/util/class-use/Pair.html
index 9913946..055a934 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/class-use/Pair.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/class-use/Pair.html
@@ -236,18 +236,22 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
<td class="colLast"> </td>
</tr>
<tr class="altColor">
-<td class="colFirst"><a href="#org.apache.hadoop.hbase.tool">org.apache.hadoop.hbase.tool</a></td>
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.thrift2.client">org.apache.hadoop.hbase.thrift2.client</a></td>
<td class="colLast"> </td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><a href="#org.apache.hadoop.hbase.util">org.apache.hadoop.hbase.util</a></td>
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.tool">org.apache.hadoop.hbase.tool</a></td>
<td class="colLast"> </td>
</tr>
<tr class="altColor">
-<td class="colFirst"><a href="#org.apache.hadoop.hbase.wal">org.apache.hadoop.hbase.wal</a></td>
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.util">org.apache.hadoop.hbase.util</a></td>
<td class="colLast"> </td>
</tr>
<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.wal">org.apache.hadoop.hbase.wal</a></td>
+<td class="colLast"> </td>
+</tr>
+<tr class="altColor">
<td class="colFirst"><a href="#org.apache.hadoop.hbase.zookeeper">org.apache.hadoop.hbase.zookeeper</a></td>
<td class="colLast"> </td>
</tr>
@@ -1948,6 +1952,40 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
</tbody>
</table>
</li>
+<li class="blockList"><a name="org.apache.hadoop.hbase.thrift2.client">
+<!-- -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a> in <a href="../../../../../../org/apache/hadoop/hbase/thrift2/client/package-summary.html">org.apache.hadoop.hbase.thrift2.client</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/hadoop/hbase/thrift2/client/package-summary.html">org.apache.hadoop.hbase.thrift2.client</a> that return <a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a></span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>></code></td>
+<td class="colLast"><span class="typeNameLabel">ThriftAdmin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/thrift2/client/ThriftAdmin.html#getAlterStatus-byte:A-">getAlterStatus</a></span>(byte[] tableName)</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>></code></td>
+<td class="colLast"><span class="typeNameLabel">ThriftAdmin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/thrift2/client/ThriftAdmin.html#getAlterStatus-org.apache.hadoop.hbase.TableName-">getAlterStatus</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a> tableName)</code> </td>
+</tr>
+<tr 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><org.apache.hadoop.hbase.thrift2.generated.THBaseService.Client,org.apache.thrift.transport.TTransport></code></td>
+<td class="colLast"><span class="typeNameLabel">ThriftConnection.DefaultThriftClientBuilder.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/thrift2/client/ThriftConnection.DefaultThriftClientBuilder.html#getClient--">getClient</a></span>()</code> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a><org.apache.hadoop.hbase.thrift2.generated.THBaseService.Client,org.apache.thrift.transport.TTransport></code></td>
+<td class="colLast"><span class="typeNameLabel">ThriftConnection.HTTPThriftClientBuilder.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/thrift2/client/ThriftConnection.HTTPThriftClientBuilder.html#getClient--">getClient</a></span>()</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a><org.apache.hadoop.hbase.thrift2.generated.THBaseService.Client,org.apache.thrift.transport.TTransport></code></td>
+<td class="colLast"><span class="typeNameLabel">ThriftClientBuilder.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/thrift2/client/ThriftClientBuilder.html#getClient--">getClient</a></span>()</code> </td>
+</tr>
+</tbody>
+</table>
+</li>
<li class="blockList"><a name="org.apache.hadoop.hbase.tool">
<!-- -->
</a>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/aa3fb87f/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 25ec8fe..4e1d4c5 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
@@ -541,14 +541,14 @@
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
<ul>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/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/IdReadWriteLock.ReferenceType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">IdReadWriteLock.ReferenceType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/ChecksumType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">ChecksumType</span></a></li>
<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">HBaseFsck.ErrorReporter.ERROR_CODE</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PrettyPrinter.Unit.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PrettyPrinter.Unit</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PoolMap.PoolType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PoolMap.PoolType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.PureJavaComparer.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder.PureJavaComparer</span></a> (implements org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.Comparer.html" title="interface in org.apache.hadoop.hbase.util">Bytes.Comparer</a><T>)</li>
<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Order</span></a></li>
<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.UnsafeComparer.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder.UnsafeComparer</span></a> (implements org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.Comparer.html" title="interface in org.apache.hadoop.hbase.util">Bytes.Comparer</a><T>)</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><T>)</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/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>
</ul>
</li>
</ul>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/aa3fb87f/devapidocs/org/apache/hadoop/hbase/util/package-use.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/package-use.html b/devapidocs/org/apache/hadoop/hbase/util/package-use.html
index 6336a97..7c797bf 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/package-use.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/package-use.html
@@ -311,14 +311,18 @@ service.</div>
</td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><a href="#org.apache.hadoop.hbase.tool">org.apache.hadoop.hbase.tool</a></td>
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.thrift2.client">org.apache.hadoop.hbase.thrift2.client</a></td>
<td class="colLast"> </td>
</tr>
<tr class="altColor">
-<td class="colFirst"><a href="#org.apache.hadoop.hbase.tool.coprocessor">org.apache.hadoop.hbase.tool.coprocessor</a></td>
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.tool">org.apache.hadoop.hbase.tool</a></td>
<td class="colLast"> </td>
</tr>
<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.tool.coprocessor">org.apache.hadoop.hbase.tool.coprocessor</a></td>
+<td class="colLast"> </td>
+</tr>
+<tr class="altColor">
<td class="colFirst"><a href="#org.apache.hadoop.hbase.types">org.apache.hadoop.hbase.types</a></td>
<td class="colLast">
<div class="block">
@@ -326,19 +330,19 @@ service.</div>
extensible data type API.</div>
</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"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="#org.apache.hadoop.hbase.util.hbck">org.apache.hadoop.hbase.util.hbck</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="#org.apache.hadoop.hbase.wal">org.apache.hadoop.hbase.wal</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="#org.apache.hadoop.hbase.zookeeper">org.apache.hadoop.hbase.zookeeper</a></td>
<td class="colLast"> </td>
</tr>
@@ -1548,6 +1552,23 @@ service.</div>
</tbody>
</table>
</li>
+<li class="blockList"><a name="org.apache.hadoop.hbase.thrift2.client">
+<!-- -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/hadoop/hbase/util/package-summary.html">org.apache.hadoop.hbase.util</a> used by <a href="../../../../../org/apache/hadoop/hbase/thrift2/client/package-summary.html">org.apache.hadoop.hbase.thrift2.client</a></span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/util/class-use/Pair.html#org.apache.hadoop.hbase.thrift2.client">Pair</a>
+<div class="block">A generic class for pairs.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
<li class="blockList"><a name="org.apache.hadoop.hbase.tool">
<!-- -->
</a>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/aa3fb87f/devapidocs/overview-frame.html
----------------------------------------------------------------------
diff --git a/devapidocs/overview-frame.html b/devapidocs/overview-frame.html
index 8b6c541..1b1e7e5 100644
--- a/devapidocs/overview-frame.html
+++ b/devapidocs/overview-frame.html
@@ -114,6 +114,7 @@
<li><a href="org/apache/hadoop/hbase/snapshot/package-frame.html" target="packageFrame">org.apache.hadoop.hbase.snapshot</a></li>
<li><a href="org/apache/hadoop/hbase/thrift/package-frame.html" target="packageFrame">org.apache.hadoop.hbase.thrift</a></li>
<li><a href="org/apache/hadoop/hbase/thrift2/package-frame.html" target="packageFrame">org.apache.hadoop.hbase.thrift2</a></li>
+<li><a href="org/apache/hadoop/hbase/thrift2/client/package-frame.html" target="packageFrame">org.apache.hadoop.hbase.thrift2.client</a></li>
<li><a href="org/apache/hadoop/hbase/tmpl/master/package-frame.html" target="packageFrame">org.apache.hadoop.hbase.tmpl.master</a></li>
<li><a href="org/apache/hadoop/hbase/tmpl/regionserver/package-frame.html" target="packageFrame">org.apache.hadoop.hbase.tmpl.regionserver</a></li>
<li><a href="org/apache/hadoop/hbase/tool/package-frame.html" target="packageFrame">org.apache.hadoop.hbase.tool</a></li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/aa3fb87f/devapidocs/overview-summary.html
----------------------------------------------------------------------
diff --git a/devapidocs/overview-summary.html b/devapidocs/overview-summary.html
index 35b02f4..c3c7c17 100644
--- a/devapidocs/overview-summary.html
+++ b/devapidocs/overview-summary.html
@@ -540,26 +540,30 @@ service.</div>
</td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/tmpl/master/package-summary.html">org.apache.hadoop.hbase.tmpl.master</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/thrift2/client/package-summary.html">org.apache.hadoop.hbase.thrift2.client</a></td>
<td class="colLast"> </td>
</tr>
<tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/tmpl/regionserver/package-summary.html">org.apache.hadoop.hbase.tmpl.regionserver</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/tmpl/master/package-summary.html">org.apache.hadoop.hbase.tmpl.master</a></td>
<td class="colLast"> </td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/tool/package-summary.html">org.apache.hadoop.hbase.tool</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/tmpl/regionserver/package-summary.html">org.apache.hadoop.hbase.tmpl.regionserver</a></td>
<td class="colLast"> </td>
</tr>
<tr class="altColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/tool/coprocessor/package-summary.html">org.apache.hadoop.hbase.tool.coprocessor</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/tool/package-summary.html">org.apache.hadoop.hbase.tool</a></td>
<td class="colLast"> </td>
</tr>
<tr class="rowColor">
-<td class="colFirst"><a href="org/apache/hadoop/hbase/trace/package-summary.html">org.apache.hadoop.hbase.trace</a></td>
+<td class="colFirst"><a href="org/apache/hadoop/hbase/tool/coprocessor/package-summary.html">org.apache.hadoop.hbase.tool.coprocessor</a></td>
<td class="colLast"> </td>
</tr>
<tr class="altColor">
+<td class="colFirst"><a href="org/apache/hadoop/hbase/trace/package-summary.html">org.apache.hadoop.hbase.trace</a></td>
+<td class="colLast"> </td>
+</tr>
+<tr class="rowColor">
<td class="colFirst"><a href="org/apache/hadoop/hbase/types/package-summary.html">org.apache.hadoop.hbase.types</a></td>
<td class="colLast">
<div class="block">
@@ -567,43 +571,43 @@ service.</div>
extensible data type API.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="org/apache/hadoop/hbase/util/package-summary.html">org.apache.hadoop.hbase.util</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="org/apache/hadoop/hbase/util/compaction/package-summary.html">org.apache.hadoop.hbase.util.compaction</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="org/apache/hadoop/hbase/util/hbck/package-summary.html">org.apache.hadoop.hbase.util.hbck</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="org/apache/hadoop/hbase/wal/package-summary.html">org.apache.hadoop.hbase.wal</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="org/apache/hadoop/hbase/zookeeper/package-summary.html">org.apache.hadoop.hbase.zookeeper</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="org/apache/hadoop/metrics2/package-summary.html">org.apache.hadoop.metrics2</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="org/apache/hadoop/metrics2/impl/package-summary.html">org.apache.hadoop.metrics2.impl</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="org/apache/hadoop/metrics2/lib/package-summary.html">org.apache.hadoop.metrics2.lib</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="org/apache/hadoop/metrics2/util/package-summary.html">org.apache.hadoop.metrics2.util</a></td>
<td class="colLast"> </td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="org/apache/hbase/archetypes/exemplars/client/package-summary.html">org.apache.hbase.archetypes.exemplars.client</a></td>
<td class="colLast">
<div class="block">This package provides fully-functional exemplar Java code demonstrating
@@ -611,7 +615,7 @@ service.</div>
archetype with hbase-client dependency.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="org/apache/hbase/archetypes/exemplars/shaded_client/package-summary.html">org.apache.hbase.archetypes.exemplars.shaded_client</a></td>
<td class="colLast">
<div class="block">This package provides fully-functional exemplar Java code demonstrating
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/aa3fb87f/devapidocs/overview-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/overview-tree.html b/devapidocs/overview-tree.html
index e66b9e5..94878f5 100644
--- a/devapidocs/overview-tree.html
+++ b/devapidocs/overview-tree.html
@@ -174,6 +174,7 @@
<li><a href="org/apache/hadoop/hbase/snapshot/package-tree.html">org.apache.hadoop.hbase.snapshot</a>, </li>
<li><a href="org/apache/hadoop/hbase/thrift/package-tree.html">org.apache.hadoop.hbase.thrift</a>, </li>
<li><a href="org/apache/hadoop/hbase/thrift2/package-tree.html">org.apache.hadoop.hbase.thrift2</a>, </li>
+<li><a href="org/apache/hadoop/hbase/thrift2/client/package-tree.html">org.apache.hadoop.hbase.thrift2.client</a>, </li>
<li><a href="org/apache/hadoop/hbase/tmpl/master/package-tree.html">org.apache.hadoop.hbase.tmpl.master</a>, </li>
<li><a href="org/apache/hadoop/hbase/tmpl/regionserver/package-tree.html">org.apache.hadoop.hbase.tmpl.regionserver</a>, </li>
<li><a href="org/apache/hadoop/hbase/tool/package-tree.html">org.apache.hadoop.hbase.tool</a>, </li>
@@ -3864,10 +3865,21 @@
<li type="circle">org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/Threads.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Threads</span></a></li>
<li type="circle">org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/Threads.PrintThreadInfoLazyHolder.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Threads.PrintThreadInfoLazyHolder</span></a></li>
<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/ThreadSafeMemStoreSizing.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ThreadSafeMemStoreSizing</span></a> (implements org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a>)</li>
+<li type="circle">org.apache.hadoop.hbase.thrift2.client.<a href="org/apache/hadoop/hbase/thrift2/client/ThriftAdmin.html" title="class in org.apache.hadoop.hbase.thrift2.client"><span class="typeNameLink">ThriftAdmin</span></a> (implements org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a>)</li>
+<li type="circle">org.apache.hadoop.hbase.thrift2.client.<a href="org/apache/hadoop/hbase/thrift2/client/ThriftClientBuilder.html" title="class in org.apache.hadoop.hbase.thrift2.client"><span class="typeNameLink">ThriftClientBuilder</span></a>
+<ul>
+<li type="circle">org.apache.hadoop.hbase.thrift2.client.<a href="org/apache/hadoop/hbase/thrift2/client/ThriftConnection.DefaultThriftClientBuilder.html" title="class in org.apache.hadoop.hbase.thrift2.client"><span class="typeNameLink">ThriftConnection.DefaultThriftClientBuilder</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.thrift2.client.<a href="org/apache/hadoop/hbase/thrift2/client/ThriftConnection.HTTPThriftClientBuilder.html" title="class in org.apache.hadoop.hbase.thrift2.client"><span class="typeNameLink">ThriftConnection.HTTPThriftClientBuilder</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.hadoop.hbase.thrift2.client.<a href="org/apache/hadoop/hbase/thrift2/client/ThriftConnection.html" title="class in org.apache.hadoop.hbase.thrift2.client"><span class="typeNameLink">ThriftConnection</span></a> (implements org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>)</li>
<li type="circle">org.apache.hadoop.hbase.thrift.<a href="org/apache/hadoop/hbase/thrift/ThriftHBaseServiceHandler.ResultScannerWrapper.html" title="class in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">ThriftHBaseServiceHandler.ResultScannerWrapper</span></a></li>
<li type="circle">org.apache.hadoop.hbase.thrift.<a href="org/apache/hadoop/hbase/thrift/ThriftHttpServlet.HttpKerberosServerAction.html" title="class in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">ThriftHttpServlet.HttpKerberosServerAction</span></a> (implements java.security.<a href="https://docs.oracle.com/javase/8/docs/api/java/security/PrivilegedExceptionAction.html?is-external=true" title="class or interface in java.security">PrivilegedExceptionAction</a><T>)</li>
<li type="circle">org.apache.hadoop.hbase.thrift.<a href="org/apache/hadoop/hbase/thrift/ThriftHttpServlet.RemoteUserIdentity.html" title="class in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">ThriftHttpServlet.RemoteUserIdentity</span></a></li>
<li type="circle">org.apache.hadoop.hbase.thrift.<a href="org/apache/hadoop/hbase/thrift/ThriftMetrics.html" title="class in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">ThriftMetrics</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.thrift2.client.<a href="org/apache/hadoop/hbase/thrift2/client/ThriftTable.html" title="class in org.apache.hadoop.hbase.thrift2.client"><span class="typeNameLink">ThriftTable</span></a> (implements org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>)</li>
+<li type="circle">org.apache.hadoop.hbase.thrift2.client.<a href="org/apache/hadoop/hbase/thrift2/client/ThriftTable.CheckAndMutateBuilderImpl.html" title="class in org.apache.hadoop.hbase.thrift2.client"><span class="typeNameLink">ThriftTable.CheckAndMutateBuilderImpl</span></a> (implements org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/Table.CheckAndMutateBuilder.html" title="interface in org.apache.hadoop.hbase.client">Table.CheckAndMutateBuilder</a>)</li>
+<li type="circle">org.apache.hadoop.hbase.thrift2.client.<a href="org/apache/hadoop/hbase/thrift2/client/ThriftTable.Scanner.html" title="class in org.apache.hadoop.hbase.thrift2.client"><span class="typeNameLink">ThriftTable.Scanner</span></a> (implements org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/ResultScanner.html" title="interface in org.apache.hadoop.hbase.client">ResultScanner</a>)</li>
<li type="circle">org.apache.hadoop.hbase.thrift2.<a href="org/apache/hadoop/hbase/thrift2/ThriftUtilities.html" title="class in org.apache.hadoop.hbase.thrift2"><span class="typeNameLink">ThriftUtilities</span></a></li>
<li type="circle">org.apache.hadoop.hbase.thrift.<a href="org/apache/hadoop/hbase/thrift/ThriftUtilities.html" title="class in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">ThriftUtilities</span></a></li>
<li type="circle">org.apache.hadoop.hbase.regionserver.throttle.<a href="org/apache/hadoop/hbase/regionserver/throttle/ThroughputControlUtil.html" title="class in org.apache.hadoop.hbase.regionserver.throttle"><span class="typeNameLink">ThroughputControlUtil</span></a></li>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/aa3fb87f/devapidocs/package-list
----------------------------------------------------------------------
diff --git a/devapidocs/package-list b/devapidocs/package-list
index cda2404..8e99a0a 100644
--- a/devapidocs/package-list
+++ b/devapidocs/package-list
@@ -99,6 +99,7 @@ org.apache.hadoop.hbase.security.visibility.expression
org.apache.hadoop.hbase.snapshot
org.apache.hadoop.hbase.thrift
org.apache.hadoop.hbase.thrift2
+org.apache.hadoop.hbase.thrift2.client
org.apache.hadoop.hbase.tmpl.master
org.apache.hadoop.hbase.tmpl.regionserver
org.apache.hadoop.hbase.tool
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/aa3fb87f/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 5c282d8..e59e253 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
@@ -18,9 +18,9 @@
<span class="sourceLineNo">010</span> public static final String version = "3.0.0-SNAPSHOT";<a name="line.10"></a>
<span class="sourceLineNo">011</span> public static final String revision = "";<a name="line.11"></a>
<span class="sourceLineNo">012</span> public static final String user = "jenkins";<a name="line.12"></a>
-<span class="sourceLineNo">013</span> public static final String date = "Tue Jan 8 14:48:26 UTC 2019";<a name="line.13"></a>
+<span class="sourceLineNo">013</span> public static final String date = "Wed Jan 9 14:41:23 UTC 2019";<a name="line.13"></a>
<span class="sourceLineNo">014</span> public static final String url = "git://jenkins-websites1.apache.org/home/jenkins/jenkins-slave/workspace/hbase_generate_website/hbase";<a name="line.14"></a>
-<span class="sourceLineNo">015</span> public static final String srcChecksum = "a7a0c59e1859943d6e076d5efcc32eec";<a name="line.15"></a>
+<span class="sourceLineNo">015</span> public static final String srcChecksum = "bf24d839a67372cf3472bb6feb6cedfd";<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/aa3fb87f/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/IncrementalBackupManager.NewestLogFilter.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/IncrementalBackupManager.NewestLogFilter.html b/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/IncrementalBackupManager.NewestLogFilter.html
index 81fc69e..6c58b9a 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/IncrementalBackupManager.NewestLogFilter.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/IncrementalBackupManager.NewestLogFilter.html
@@ -47,7 +47,7 @@
<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.client.Admin;<a name="line.39"></a>
<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.client.Connection;<a name="line.40"></a>
<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.procedure2.store.wal.WALProcedureStore;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.util.FSUtils;<a name="line.42"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.util.CommonFSUtils;<a name="line.42"></a>
<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.wal.AbstractFSWALProvider;<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>
@@ -251,156 +251,157 @@
<span class="sourceLineNo">243</span> throws IOException {<a name="line.243"></a>
<span class="sourceLineNo">244</span> LOG.debug("In getLogFilesForNewBackup()\n" + "olderTimestamps: " + olderTimestamps<a name="line.244"></a>
<span class="sourceLineNo">245</span> + "\n newestTimestamps: " + newestTimestamps);<a name="line.245"></a>
-<span class="sourceLineNo">246</span> Path rootdir = FSUtils.getRootDir(conf);<a name="line.246"></a>
-<span class="sourceLineNo">247</span> Path logDir = new Path(rootdir, HConstants.HREGION_LOGDIR_NAME);<a name="line.247"></a>
-<span class="sourceLineNo">248</span> Path oldLogDir = new Path(rootdir, HConstants.HREGION_OLDLOGDIR_NAME);<a name="line.248"></a>
-<span class="sourceLineNo">249</span> FileSystem fs = rootdir.getFileSystem(conf);<a name="line.249"></a>
-<span class="sourceLineNo">250</span> NewestLogFilter pathFilter = new NewestLogFilter();<a name="line.250"></a>
-<span class="sourceLineNo">251</span><a name="line.251"></a>
-<span class="sourceLineNo">252</span> List<String> resultLogFiles = new ArrayList<>();<a name="line.252"></a>
-<span class="sourceLineNo">253</span> List<String> newestLogs = new ArrayList<>();<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> * The old region servers and timestamps info we kept in backup system table may be out of sync<a name="line.256"></a>
-<span class="sourceLineNo">257</span> * if new region server is added or existing one lost. We'll deal with it here when processing<a name="line.257"></a>
-<span class="sourceLineNo">258</span> * the logs. If data in backup system table has more hosts, just ignore it. If the .logs<a name="line.258"></a>
-<span class="sourceLineNo">259</span> * directory includes more hosts, the additional hosts will not have old timestamps to compare<a name="line.259"></a>
-<span class="sourceLineNo">260</span> * with. We'll just use all the logs in that directory. We always write up-to-date region server<a name="line.260"></a>
-<span class="sourceLineNo">261</span> * and timestamp info to backup system table at the end of successful backup.<a name="line.261"></a>
-<span class="sourceLineNo">262</span> */<a name="line.262"></a>
-<span class="sourceLineNo">263</span> FileStatus[] rss;<a name="line.263"></a>
-<span class="sourceLineNo">264</span> Path p;<a name="line.264"></a>
-<span class="sourceLineNo">265</span> String host;<a name="line.265"></a>
-<span class="sourceLineNo">266</span> Long oldTimeStamp;<a name="line.266"></a>
-<span class="sourceLineNo">267</span> String currentLogFile;<a name="line.267"></a>
-<span class="sourceLineNo">268</span> long currentLogTS;<a name="line.268"></a>
-<span class="sourceLineNo">269</span><a name="line.269"></a>
-<span class="sourceLineNo">270</span> // Get the files in .logs.<a name="line.270"></a>
-<span class="sourceLineNo">271</span> rss = fs.listStatus(logDir);<a name="line.271"></a>
-<span class="sourceLineNo">272</span> for (FileStatus rs : rss) {<a name="line.272"></a>
-<span class="sourceLineNo">273</span> p = rs.getPath();<a name="line.273"></a>
-<span class="sourceLineNo">274</span> host = BackupUtils.parseHostNameFromLogFile(p);<a name="line.274"></a>
-<span class="sourceLineNo">275</span> if (host == null) {<a name="line.275"></a>
-<span class="sourceLineNo">276</span> continue;<a name="line.276"></a>
-<span class="sourceLineNo">277</span> }<a name="line.277"></a>
-<span class="sourceLineNo">278</span> FileStatus[] logs;<a name="line.278"></a>
-<span class="sourceLineNo">279</span> oldTimeStamp = olderTimestamps.get(host);<a name="line.279"></a>
-<span class="sourceLineNo">280</span> // It is possible that there is no old timestamp in backup system table for this host if<a name="line.280"></a>
-<span class="sourceLineNo">281</span> // this region server is newly added after our last backup.<a name="line.281"></a>
-<span class="sourceLineNo">282</span> if (oldTimeStamp == null) {<a name="line.282"></a>
-<span class="sourceLineNo">283</span> logs = fs.listStatus(p);<a name="line.283"></a>
-<span class="sourceLineNo">284</span> } else {<a name="line.284"></a>
-<span class="sourceLineNo">285</span> pathFilter.setLastBackupTS(oldTimeStamp);<a name="line.285"></a>
-<span class="sourceLineNo">286</span> logs = fs.listStatus(p, pathFilter);<a name="line.286"></a>
-<span class="sourceLineNo">287</span> }<a name="line.287"></a>
-<span class="sourceLineNo">288</span> for (FileStatus log : logs) {<a name="line.288"></a>
-<span class="sourceLineNo">289</span> LOG.debug("currentLogFile: " + log.getPath().toString());<a name="line.289"></a>
-<span class="sourceLineNo">290</span> if (AbstractFSWALProvider.isMetaFile(log.getPath())) {<a name="line.290"></a>
-<span class="sourceLineNo">291</span> if (LOG.isDebugEnabled()) {<a name="line.291"></a>
-<span class="sourceLineNo">292</span> LOG.debug("Skip hbase:meta log file: " + log.getPath().getName());<a name="line.292"></a>
-<span class="sourceLineNo">293</span> }<a name="line.293"></a>
-<span class="sourceLineNo">294</span> continue;<a name="line.294"></a>
-<span class="sourceLineNo">295</span> }<a name="line.295"></a>
-<span class="sourceLineNo">296</span> currentLogFile = log.getPath().toString();<a name="line.296"></a>
-<span class="sourceLineNo">297</span> resultLogFiles.add(currentLogFile);<a name="line.297"></a>
-<span class="sourceLineNo">298</span> currentLogTS = BackupUtils.getCreationTime(log.getPath());<a name="line.298"></a>
-<span class="sourceLineNo">299</span><a name="line.299"></a>
-<span class="sourceLineNo">300</span> // If newestTimestamps.get(host) is null, means that<a name="line.300"></a>
-<span class="sourceLineNo">301</span> // either RS (host) has been restarted recently with different port number<a name="line.301"></a>
-<span class="sourceLineNo">302</span> // or RS is down (was decommisioned). In any case, we treat this<a name="line.302"></a>
-<span class="sourceLineNo">303</span> // log file as eligible for inclusion into incremental backup log list<a name="line.303"></a>
-<span class="sourceLineNo">304</span> Long ts = newestTimestamps.get(host);<a name="line.304"></a>
-<span class="sourceLineNo">305</span> if (ts == null) {<a name="line.305"></a>
-<span class="sourceLineNo">306</span> LOG.warn("ORPHAN log found: " + log + " host=" + host);<a name="line.306"></a>
-<span class="sourceLineNo">307</span> LOG.debug("Known hosts (from newestTimestamps):");<a name="line.307"></a>
-<span class="sourceLineNo">308</span> for (String s: newestTimestamps.keySet()) {<a name="line.308"></a>
-<span class="sourceLineNo">309</span> LOG.debug(s);<a name="line.309"></a>
-<span class="sourceLineNo">310</span> }<a name="line.310"></a>
-<span class="sourceLineNo">311</span> }<a name="line.311"></a>
-<span class="sourceLineNo">312</span> if (ts == null || currentLogTS > ts) {<a name="line.312"></a>
-<span class="sourceLineNo">313</span> newestLogs.add(currentLogFile);<a name="line.313"></a>
-<span class="sourceLineNo">314</span> }<a name="line.314"></a>
-<span class="sourceLineNo">315</span> }<a name="line.315"></a>
-<span class="sourceLineNo">316</span> }<a name="line.316"></a>
-<span class="sourceLineNo">317</span><a name="line.317"></a>
-<span class="sourceLineNo">318</span> // Include the .oldlogs files too.<a name="line.318"></a>
-<span class="sourceLineNo">319</span> FileStatus[] oldlogs = fs.listStatus(oldLogDir);<a name="line.319"></a>
-<span class="sourceLineNo">320</span> for (FileStatus oldlog : oldlogs) {<a name="line.320"></a>
-<span class="sourceLineNo">321</span> p = oldlog.getPath();<a name="line.321"></a>
-<span class="sourceLineNo">322</span> currentLogFile = p.toString();<a name="line.322"></a>
-<span class="sourceLineNo">323</span> if (AbstractFSWALProvider.isMetaFile(p)) {<a name="line.323"></a>
-<span class="sourceLineNo">324</span> if (LOG.isDebugEnabled()) {<a name="line.324"></a>
-<span class="sourceLineNo">325</span> LOG.debug("Skip .meta log file: " + currentLogFile);<a name="line.325"></a>
-<span class="sourceLineNo">326</span> }<a name="line.326"></a>
-<span class="sourceLineNo">327</span> continue;<a name="line.327"></a>
-<span class="sourceLineNo">328</span> }<a name="line.328"></a>
-<span class="sourceLineNo">329</span> host = BackupUtils.parseHostFromOldLog(p);<a name="line.329"></a>
-<span class="sourceLineNo">330</span> if (host == null) {<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> currentLogTS = BackupUtils.getCreationTime(p);<a name="line.333"></a>
-<span class="sourceLineNo">334</span> oldTimeStamp = olderTimestamps.get(host);<a name="line.334"></a>
-<span class="sourceLineNo">335</span> /*<a name="line.335"></a>
-<span class="sourceLineNo">336</span> * It is possible that there is no old timestamp in backup system table for this host. At the<a name="line.336"></a>
-<span class="sourceLineNo">337</span> * time of our last backup operation, this rs did not exist. The reason can be one of the two:<a name="line.337"></a>
-<span class="sourceLineNo">338</span> * 1. The rs already left/crashed. Its logs were moved to .oldlogs. 2. The rs was added after<a name="line.338"></a>
-<span class="sourceLineNo">339</span> * our last backup.<a name="line.339"></a>
-<span class="sourceLineNo">340</span> */<a name="line.340"></a>
-<span class="sourceLineNo">341</span> if (oldTimeStamp == null) {<a name="line.341"></a>
-<span class="sourceLineNo">342</span> if (currentLogTS < Long.parseLong(savedStartCode)) {<a name="line.342"></a>
-<span class="sourceLineNo">343</span> // This log file is really old, its region server was before our last backup.<a name="line.343"></a>
-<span class="sourceLineNo">344</span> continue;<a name="line.344"></a>
-<span class="sourceLineNo">345</span> } else {<a name="line.345"></a>
-<span class="sourceLineNo">346</span> resultLogFiles.add(currentLogFile);<a name="line.346"></a>
-<span class="sourceLineNo">347</span> }<a name="line.347"></a>
-<span class="sourceLineNo">348</span> } else if (currentLogTS > oldTimeStamp) {<a name="line.348"></a>
-<span class="sourceLineNo">349</span> resultLogFiles.add(currentLogFile);<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> // It is possible that a host in .oldlogs is an obsolete region server<a name="line.352"></a>
-<span class="sourceLineNo">353</span> // so newestTimestamps.get(host) here can be null.<a name="line.353"></a>
-<span class="sourceLineNo">354</span> // Even if these logs belong to a obsolete region server, we still need<a name="line.354"></a>
-<span class="sourceLineNo">355</span> // to include they to avoid loss of edits for backup.<a name="line.355"></a>
-<span class="sourceLineNo">356</span> Long newTimestamp = newestTimestamps.get(host);<a name="line.356"></a>
-<span class="sourceLineNo">357</span> if (newTimestamp == null || currentLogTS > newTimestamp) {<a name="line.357"></a>
-<span class="sourceLineNo">358</span> newestLogs.add(currentLogFile);<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> // remove newest log per host because they are still in use<a name="line.361"></a>
-<span class="sourceLineNo">362</span> resultLogFiles.removeAll(newestLogs);<a name="line.362"></a>
-<span class="sourceLineNo">363</span> return resultLogFiles;<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> static class NewestLogFilter implements PathFilter {<a name="line.366"></a>
-<span class="sourceLineNo">367</span> private Long lastBackupTS = 0L;<a name="line.367"></a>
-<span class="sourceLineNo">368</span><a name="line.368"></a>
-<span class="sourceLineNo">369</span> public NewestLogFilter() {<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 setLastBackupTS(Long ts) {<a name="line.372"></a>
-<span class="sourceLineNo">373</span> this.lastBackupTS = ts;<a name="line.373"></a>
-<span class="sourceLineNo">374</span> }<a name="line.374"></a>
-<span class="sourceLineNo">375</span><a name="line.375"></a>
-<span class="sourceLineNo">376</span> @Override<a name="line.376"></a>
-<span class="sourceLineNo">377</span> public boolean accept(Path path) {<a name="line.377"></a>
-<span class="sourceLineNo">378</span> // skip meta table log -- ts.meta file<a name="line.378"></a>
-<span class="sourceLineNo">379</span> if (AbstractFSWALProvider.isMetaFile(path)) {<a name="line.379"></a>
-<span class="sourceLineNo">380</span> if (LOG.isDebugEnabled()) {<a name="line.380"></a>
-<span class="sourceLineNo">381</span> LOG.debug("Skip .meta log file: " + path.getName());<a name="line.381"></a>
-<span class="sourceLineNo">382</span> }<a name="line.382"></a>
-<span class="sourceLineNo">383</span> return false;<a name="line.383"></a>
-<span class="sourceLineNo">384</span> }<a name="line.384"></a>
-<span class="sourceLineNo">385</span> long timestamp;<a name="line.385"></a>
-<span class="sourceLineNo">386</span> try {<a name="line.386"></a>
-<span class="sourceLineNo">387</span> timestamp = BackupUtils.getCreationTime(path);<a name="line.387"></a>
-<span class="sourceLineNo">388</span> return timestamp > lastBackupTS;<a name="line.388"></a>
-<span class="sourceLineNo">389</span> } catch (Exception e) {<a name="line.389"></a>
-<span class="sourceLineNo">390</span> LOG.warn("Cannot read timestamp of log file " + path);<a name="line.390"></a>
-<span class="sourceLineNo">391</span> return false;<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>}<a name="line.395"></a>
+<span class="sourceLineNo">246</span><a name="line.246"></a>
+<span class="sourceLineNo">247</span> Path walRootDir = CommonFSUtils.getWALRootDir(conf);<a name="line.247"></a>
+<span class="sourceLineNo">248</span> Path logDir = new Path(walRootDir, HConstants.HREGION_LOGDIR_NAME);<a name="line.248"></a>
+<span class="sourceLineNo">249</span> Path oldLogDir = new Path(walRootDir, HConstants.HREGION_OLDLOGDIR_NAME);<a name="line.249"></a>
+<span class="sourceLineNo">250</span> FileSystem fs = walRootDir.getFileSystem(conf);<a name="line.250"></a>
+<span class="sourceLineNo">251</span> NewestLogFilter pathFilter = new NewestLogFilter();<a name="line.251"></a>
+<span class="sourceLineNo">252</span><a name="line.252"></a>
+<span class="sourceLineNo">253</span> List<String> resultLogFiles = new ArrayList<>();<a name="line.253"></a>
+<span class="sourceLineNo">254</span> List<String> newestLogs = new ArrayList<>();<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> * The old region servers and timestamps info we kept in backup system table may be out of sync<a name="line.257"></a>
+<span class="sourceLineNo">258</span> * if new region server is added or existing one lost. We'll deal with it here when processing<a name="line.258"></a>
+<span class="sourceLineNo">259</span> * the logs. If data in backup system table has more hosts, just ignore it. If the .logs<a name="line.259"></a>
+<span class="sourceLineNo">260</span> * directory includes more hosts, the additional hosts will not have old timestamps to compare<a name="line.260"></a>
+<span class="sourceLineNo">261</span> * with. We'll just use all the logs in that directory. We always write up-to-date region server<a name="line.261"></a>
+<span class="sourceLineNo">262</span> * and timestamp info to backup system table at the end of successful backup.<a name="line.262"></a>
+<span class="sourceLineNo">263</span> */<a name="line.263"></a>
+<span class="sourceLineNo">264</span> FileStatus[] rss;<a name="line.264"></a>
+<span class="sourceLineNo">265</span> Path p;<a name="line.265"></a>
+<span class="sourceLineNo">266</span> String host;<a name="line.266"></a>
+<span class="sourceLineNo">267</span> Long oldTimeStamp;<a name="line.267"></a>
+<span class="sourceLineNo">268</span> String currentLogFile;<a name="line.268"></a>
+<span class="sourceLineNo">269</span> long currentLogTS;<a name="line.269"></a>
+<span class="sourceLineNo">270</span><a name="line.270"></a>
+<span class="sourceLineNo">271</span> // Get the files in .logs.<a name="line.271"></a>
+<span class="sourceLineNo">272</span> rss = fs.listStatus(logDir);<a name="line.272"></a>
+<span class="sourceLineNo">273</span> for (FileStatus rs : rss) {<a name="line.273"></a>
+<span class="sourceLineNo">274</span> p = rs.getPath();<a name="line.274"></a>
+<span class="sourceLineNo">275</span> host = BackupUtils.parseHostNameFromLogFile(p);<a name="line.275"></a>
+<span class="sourceLineNo">276</span> if (host == null) {<a name="line.276"></a>
+<span class="sourceLineNo">277</span> continue;<a name="line.277"></a>
+<span class="sourceLineNo">278</span> }<a name="line.278"></a>
+<span class="sourceLineNo">279</span> FileStatus[] logs;<a name="line.279"></a>
+<span class="sourceLineNo">280</span> oldTimeStamp = olderTimestamps.get(host);<a name="line.280"></a>
+<span class="sourceLineNo">281</span> // It is possible that there is no old timestamp in backup system table for this host if<a name="line.281"></a>
+<span class="sourceLineNo">282</span> // this region server is newly added after our last backup.<a name="line.282"></a>
+<span class="sourceLineNo">283</span> if (oldTimeStamp == null) {<a name="line.283"></a>
+<span class="sourceLineNo">284</span> logs = fs.listStatus(p);<a name="line.284"></a>
+<span class="sourceLineNo">285</span> } else {<a name="line.285"></a>
+<span class="sourceLineNo">286</span> pathFilter.setLastBackupTS(oldTimeStamp);<a name="line.286"></a>
+<span class="sourceLineNo">287</span> logs = fs.listStatus(p, pathFilter);<a name="line.287"></a>
+<span class="sourceLineNo">288</span> }<a name="line.288"></a>
+<span class="sourceLineNo">289</span> for (FileStatus log : logs) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span> LOG.debug("currentLogFile: " + log.getPath().toString());<a name="line.290"></a>
+<span class="sourceLineNo">291</span> if (AbstractFSWALProvider.isMetaFile(log.getPath())) {<a name="line.291"></a>
+<span class="sourceLineNo">292</span> if (LOG.isDebugEnabled()) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span> LOG.debug("Skip hbase:meta log file: " + log.getPath().getName());<a name="line.293"></a>
+<span class="sourceLineNo">294</span> }<a name="line.294"></a>
+<span class="sourceLineNo">295</span> continue;<a name="line.295"></a>
+<span class="sourceLineNo">296</span> }<a name="line.296"></a>
+<span class="sourceLineNo">297</span> currentLogFile = log.getPath().toString();<a name="line.297"></a>
+<span class="sourceLineNo">298</span> resultLogFiles.add(currentLogFile);<a name="line.298"></a>
+<span class="sourceLineNo">299</span> currentLogTS = BackupUtils.getCreationTime(log.getPath());<a name="line.299"></a>
+<span class="sourceLineNo">300</span><a name="line.300"></a>
+<span class="sourceLineNo">301</span> // If newestTimestamps.get(host) is null, means that<a name="line.301"></a>
+<span class="sourceLineNo">302</span> // either RS (host) has been restarted recently with different port number<a name="line.302"></a>
+<span class="sourceLineNo">303</span> // or RS is down (was decommisioned). In any case, we treat this<a name="line.303"></a>
+<span class="sourceLineNo">304</span> // log file as eligible for inclusion into incremental backup log list<a name="line.304"></a>
+<span class="sourceLineNo">305</span> Long ts = newestTimestamps.get(host);<a name="line.305"></a>
+<span class="sourceLineNo">306</span> if (ts == null) {<a name="line.306"></a>
+<span class="sourceLineNo">307</span> LOG.warn("ORPHAN log found: " + log + " host=" + host);<a name="line.307"></a>
+<span class="sourceLineNo">308</span> LOG.debug("Known hosts (from newestTimestamps):");<a name="line.308"></a>
+<span class="sourceLineNo">309</span> for (String s: newestTimestamps.keySet()) {<a name="line.309"></a>
+<span class="sourceLineNo">310</span> LOG.debug(s);<a name="line.310"></a>
+<span class="sourceLineNo">311</span> }<a name="line.311"></a>
+<span class="sourceLineNo">312</span> }<a name="line.312"></a>
+<span class="sourceLineNo">313</span> if (ts == null || currentLogTS > ts) {<a name="line.313"></a>
+<span class="sourceLineNo">314</span> newestLogs.add(currentLogFile);<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> }<a name="line.317"></a>
+<span class="sourceLineNo">318</span><a name="line.318"></a>
+<span class="sourceLineNo">319</span> // Include the .oldlogs files too.<a name="line.319"></a>
+<span class="sourceLineNo">320</span> FileStatus[] oldlogs = fs.listStatus(oldLogDir);<a name="line.320"></a>
+<span class="sourceLineNo">321</span> for (FileStatus oldlog : oldlogs) {<a name="line.321"></a>
+<span class="sourceLineNo">322</span> p = oldlog.getPath();<a name="line.322"></a>
+<span class="sourceLineNo">323</span> currentLogFile = p.toString();<a name="line.323"></a>
+<span class="sourceLineNo">324</span> if (AbstractFSWALProvider.isMetaFile(p)) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span> if (LOG.isDebugEnabled()) {<a name="line.325"></a>
+<span class="sourceLineNo">326</span> LOG.debug("Skip .meta log file: " + currentLogFile);<a name="line.326"></a>
+<span class="sourceLineNo">327</span> }<a name="line.327"></a>
+<span class="sourceLineNo">328</span> continue;<a name="line.328"></a>
+<span class="sourceLineNo">329</span> }<a name="line.329"></a>
+<span class="sourceLineNo">330</span> host = BackupUtils.parseHostFromOldLog(p);<a name="line.330"></a>
+<span class="sourceLineNo">331</span> if (host == null) {<a name="line.331"></a>
+<span class="sourceLineNo">332</span> continue;<a name="line.332"></a>
+<span class="sourceLineNo">333</span> }<a name="line.333"></a>
+<span class="sourceLineNo">334</span> currentLogTS = BackupUtils.getCreationTime(p);<a name="line.334"></a>
+<span class="sourceLineNo">335</span> oldTimeStamp = olderTimestamps.get(host);<a name="line.335"></a>
+<span class="sourceLineNo">336</span> /*<a name="line.336"></a>
+<span class="sourceLineNo">337</span> * It is possible that there is no old timestamp in backup system table for this host. At the<a name="line.337"></a>
+<span class="sourceLineNo">338</span> * time of our last backup operation, this rs did not exist. The reason can be one of the two:<a name="line.338"></a>
+<span class="sourceLineNo">339</span> * 1. The rs already left/crashed. Its logs were moved to .oldlogs. 2. The rs was added after<a name="line.339"></a>
+<span class="sourceLineNo">340</span> * our last backup.<a name="line.340"></a>
+<span class="sourceLineNo">341</span> */<a name="line.341"></a>
+<span class="sourceLineNo">342</span> if (oldTimeStamp == null) {<a name="line.342"></a>
+<span class="sourceLineNo">343</span> if (currentLogTS < Long.parseLong(savedStartCode)) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span> // This log file is really old, its region server was before our last backup.<a name="line.344"></a>
+<span class="sourceLineNo">345</span> continue;<a name="line.345"></a>
+<span class="sourceLineNo">346</span> } else {<a name="line.346"></a>
+<span class="sourceLineNo">347</span> resultLogFiles.add(currentLogFile);<a name="line.347"></a>
+<span class="sourceLineNo">348</span> }<a name="line.348"></a>
+<span class="sourceLineNo">349</span> } else if (currentLogTS > oldTimeStamp) {<a name="line.349"></a>
+<span class="sourceLineNo">350</span> resultLogFiles.add(currentLogFile);<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> // It is possible that a host in .oldlogs is an obsolete region server<a name="line.353"></a>
+<span class="sourceLineNo">354</span> // so newestTimestamps.get(host) here can be null.<a name="line.354"></a>
+<span class="sourceLineNo">355</span> // Even if these logs belong to a obsolete region server, we still need<a name="line.355"></a>
+<span class="sourceLineNo">356</span> // to include they to avoid loss of edits for backup.<a name="line.356"></a>
+<span class="sourceLineNo">357</span> Long newTimestamp = newestTimestamps.get(host);<a name="line.357"></a>
+<span class="sourceLineNo">358</span> if (newTimestamp == null || currentLogTS > newTimestamp) {<a name="line.358"></a>
+<span class="sourceLineNo">359</span> newestLogs.add(currentLogFile);<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> // remove newest log per host because they are still in use<a name="line.362"></a>
+<span class="sourceLineNo">363</span> resultLogFiles.removeAll(newestLogs);<a name="line.363"></a>
+<span class="sourceLineNo">364</span> return resultLogFiles;<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> static class NewestLogFilter implements PathFilter {<a name="line.367"></a>
+<span class="sourceLineNo">368</span> private Long lastBackupTS = 0L;<a name="line.368"></a>
+<span class="sourceLineNo">369</span><a name="line.369"></a>
+<span class="sourceLineNo">370</span> public NewestLogFilter() {<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> protected void setLastBackupTS(Long ts) {<a name="line.373"></a>
+<span class="sourceLineNo">374</span> this.lastBackupTS = ts;<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> @Override<a name="line.377"></a>
+<span class="sourceLineNo">378</span> public boolean accept(Path path) {<a name="line.378"></a>
+<span class="sourceLineNo">379</span> // skip meta table log -- ts.meta file<a name="line.379"></a>
+<span class="sourceLineNo">380</span> if (AbstractFSWALProvider.isMetaFile(path)) {<a name="line.380"></a>
+<span class="sourceLineNo">381</span> if (LOG.isDebugEnabled()) {<a name="line.381"></a>
+<span class="sourceLineNo">382</span> LOG.debug("Skip .meta log file: " + path.getName());<a name="line.382"></a>
+<span class="sourceLineNo">383</span> }<a name="line.383"></a>
+<span class="sourceLineNo">384</span> return false;<a name="line.384"></a>
+<span class="sourceLineNo">385</span> }<a name="line.385"></a>
+<span class="sourceLineNo">386</span> long timestamp;<a name="line.386"></a>
+<span class="sourceLineNo">387</span> try {<a name="line.387"></a>
+<span class="sourceLineNo">388</span> timestamp = BackupUtils.getCreationTime(path);<a name="line.388"></a>
+<span class="sourceLineNo">389</span> return timestamp > lastBackupTS;<a name="line.389"></a>
+<span class="sourceLineNo">390</span> } catch (Exception e) {<a name="line.390"></a>
+<span class="sourceLineNo">391</span> LOG.warn("Cannot read timestamp of log file " + path);<a name="line.391"></a>
+<span class="sourceLineNo">392</span> return false;<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>}<a name="line.396"></a>