http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e9db7c5d/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html ---------------------------------------------------------------------- diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html index 15c5c2f..2bd18a2 100644 --- a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html +++ b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html @@ -297,40 +297,40 @@ extends org.jamon.AbstractTemplateProxy</pre> <!-- --> </a> <h3>Field Detail</h3> -<a name="filter"> +<a name="bcv"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> -<h4>filter</h4> -<pre>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> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.151">filter</a></pre> +<h4>bcv</h4> +<pre>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> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.151">bcv</a></pre> </li> </ul> -<a name="bcn"> +<a name="format"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> -<h4>bcn</h4> -<pre>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> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.158">bcn</a></pre> +<h4>format</h4> +<pre>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> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.158">format</a></pre> </li> </ul> -<a name="bcv"> +<a name="bcn"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> -<h4>bcv</h4> -<pre>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> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.165">bcv</a></pre> +<h4>bcn</h4> +<pre>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> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.165">bcn</a></pre> </li> </ul> -<a name="format"> +<a name="filter"> <!-- --> </a> <ul class="blockListLast"> <li class="blockList"> -<h4>format</h4> -<pre>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> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.172">format</a></pre> +<h4>filter</h4> +<pre>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> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.172">filter</a></pre> </li> </ul> </li> @@ -402,40 +402,40 @@ extends org.jamon.AbstractTemplateProxy</pre> </dl> </li> </ul> -<a name="setFilter-java.lang.String-"> +<a name="setBcv-java.lang.String-"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> -<h4>setFilter</h4> -<pre>public final <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.152">setFilter</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> p_filter)</pre> +<h4>setBcv</h4> +<pre>public final <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.152">setBcv</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> p_bcv)</pre> </li> </ul> -<a name="setBcn-java.lang.String-"> +<a name="setFormat-java.lang.String-"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> -<h4>setBcn</h4> -<pre>public final <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.159">setBcn</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> p_bcn)</pre> +<h4>setFormat</h4> +<pre>public final <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.159">setFormat</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> p_format)</pre> </li> </ul> -<a name="setBcv-java.lang.String-"> +<a name="setBcn-java.lang.String-"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> -<h4>setBcv</h4> -<pre>public final <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.166">setBcv</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> p_bcv)</pre> +<h4>setBcn</h4> +<pre>public final <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.166">setBcn</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> p_bcn)</pre> </li> </ul> -<a name="setFormat-java.lang.String-"> +<a name="setFilter-java.lang.String-"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> -<h4>setFormat</h4> -<pre>public final <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.173">setFormat</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> p_format)</pre> +<h4>setFilter</h4> +<pre>public final <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.173">setFilter</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> p_filter)</pre> </li> </ul> <a name="constructImpl-java.lang.Class-">
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e9db7c5d/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html ---------------------------------------------------------------------- diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html index 15d28d2..2bedf21 100644 --- a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html +++ b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html @@ -238,40 +238,40 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/ <pre>private final <a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.28">regionServer</a></pre> </li> </ul> -<a name="filter"> +<a name="bcv"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> -<h4>filter</h4> -<pre>private final <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.29">filter</a></pre> +<h4>bcv</h4> +<pre>private final <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.29">bcv</a></pre> </li> </ul> -<a name="bcn"> +<a name="format"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> -<h4>bcn</h4> -<pre>private final <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.30">bcn</a></pre> +<h4>format</h4> +<pre>private final <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.30">format</a></pre> </li> </ul> -<a name="bcv"> +<a name="bcn"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> -<h4>bcv</h4> -<pre>private final <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.31">bcv</a></pre> +<h4>bcn</h4> +<pre>private final <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.31">bcn</a></pre> </li> </ul> -<a name="format"> +<a name="filter"> <!-- --> </a> <ul class="blockListLast"> <li class="blockList"> -<h4>format</h4> -<pre>private final <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.32">format</a></pre> +<h4>filter</h4> +<pre>private final <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.32">filter</a></pre> </li> </ul> </li> http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e9db7c5d/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 24c6794..726b9c6 100644 --- a/devapidocs/org/apache/hadoop/hbase/util/package-tree.html +++ b/devapidocs/org/apache/hadoop/hbase/util/package-tree.html @@ -519,14 +519,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><E> (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><T>, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>) <ul> -<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.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/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/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/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/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><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/PrettyPrinter.Unit.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PrettyPrinter.Unit</span></a></li> -<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Order</span></a></li> +<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/ChecksumType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">ChecksumType</span></a></li> </ul> </li> </ul> http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e9db7c5d/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html ---------------------------------------------------------------------- diff --git a/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html b/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html index 3bd3900..53d258e 100644 --- a/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html +++ b/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html @@ -166,8 +166,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><E> (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><T>, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>) <ul> -<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/WALFactory.Providers.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">WALFactory.Providers</span></a></li> <li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/RegionGroupingProvider.Strategies.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">RegionGroupingProvider.Strategies</span></a></li> +<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/WALFactory.Providers.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">WALFactory.Providers</span></a></li> </ul> </li> </ul> http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e9db7c5d/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 c59f50a..d6f49b6 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 = "7cc458e129cf7c55910c9985d0824a72189a1a73";<a name="line.11"></a> +<span class="sourceLineNo">011</span> public static final String revision = "d092008766c460de329d14d40e9cfd2377dcaf01";<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 = "Thu Jun 22 14:39:49 UTC 2017";<a name="line.13"></a> +<span class="sourceLineNo">013</span> public static final String date = "Fri Jun 23 14:39:20 UTC 2017";<a name="line.13"></a> <span class="sourceLineNo">014</span> public static final String url = "git://asf920.gq1.ygridcore.net/home/jenkins/jenkins-slave/workspace/hbase_generate_website/hbase";<a name="line.14"></a> -<span class="sourceLineNo">015</span> public static final String srcChecksum = "83cc237c7604a7786af1a1aab7f0020f";<a name="line.15"></a> +<span class="sourceLineNo">015</span> public static final String srcChecksum = "32fc2f233b8d7f509c35718e88129025";<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/e9db7c5d/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/DefaultStoreFileManager.html ---------------------------------------------------------------------- diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/DefaultStoreFileManager.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/DefaultStoreFileManager.html index 71a052f..640c007 100644 --- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/DefaultStoreFileManager.html +++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/DefaultStoreFileManager.html @@ -35,18 +35,18 @@ <span class="sourceLineNo">027</span>import java.util.List;<a name="line.27"></a> <span class="sourceLineNo">028</span>import java.util.Optional;<a name="line.28"></a> <span class="sourceLineNo">029</span><a name="line.29"></a> -<span class="sourceLineNo">030</span>import com.google.common.collect.ImmutableCollection;<a name="line.30"></a> -<span class="sourceLineNo">031</span>import com.google.common.collect.ImmutableList;<a name="line.31"></a> -<span class="sourceLineNo">032</span>import com.google.common.collect.Lists;<a name="line.32"></a> -<span class="sourceLineNo">033</span><a name="line.33"></a> -<span class="sourceLineNo">034</span>import org.apache.commons.logging.Log;<a name="line.34"></a> -<span class="sourceLineNo">035</span>import org.apache.commons.logging.LogFactory;<a name="line.35"></a> -<span class="sourceLineNo">036</span>import org.apache.hadoop.conf.Configuration;<a name="line.36"></a> -<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.Cell;<a name="line.37"></a> -<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.CellComparator;<a name="line.38"></a> -<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.KeyValue;<a name="line.39"></a> -<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.40"></a> -<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.regionserver.compactions.CompactionConfiguration;<a name="line.41"></a> +<span class="sourceLineNo">030</span>import org.apache.commons.logging.Log;<a name="line.30"></a> +<span class="sourceLineNo">031</span>import org.apache.commons.logging.LogFactory;<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.Cell;<a name="line.33"></a> +<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.CellComparator;<a name="line.34"></a> +<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.KeyValue;<a name="line.35"></a> +<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.36"></a> +<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.regionserver.compactions.CompactionConfiguration;<a name="line.37"></a> +<span class="sourceLineNo">038</span><a name="line.38"></a> +<span class="sourceLineNo">039</span>import com.google.common.collect.ImmutableCollection;<a name="line.39"></a> +<span class="sourceLineNo">040</span>import com.google.common.collect.ImmutableList;<a name="line.40"></a> +<span class="sourceLineNo">041</span>import com.google.common.collect.Lists;<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> * Default implementation of StoreFileManager. Not thread-safe.<a name="line.44"></a> @@ -125,132 +125,140 @@ <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> @Override<a name="line.119"></a> -<span class="sourceLineNo">120</span> public void addCompactionResults(<a name="line.120"></a> -<span class="sourceLineNo">121</span> Collection<StoreFile> newCompactedfiles, Collection<StoreFile> results) {<a name="line.121"></a> -<span class="sourceLineNo">122</span> ArrayList<StoreFile> newStoreFiles = Lists.newArrayList(storefiles);<a name="line.122"></a> -<span class="sourceLineNo">123</span> newStoreFiles.removeAll(newCompactedfiles);<a name="line.123"></a> -<span class="sourceLineNo">124</span> if (!results.isEmpty()) {<a name="line.124"></a> -<span class="sourceLineNo">125</span> newStoreFiles.addAll(results);<a name="line.125"></a> -<span class="sourceLineNo">126</span> }<a name="line.126"></a> -<span class="sourceLineNo">127</span> sortAndSetStoreFiles(newStoreFiles);<a name="line.127"></a> -<span class="sourceLineNo">128</span> ArrayList<StoreFile> updatedCompactedfiles = null;<a name="line.128"></a> -<span class="sourceLineNo">129</span> if (this.compactedfiles != null) {<a name="line.129"></a> -<span class="sourceLineNo">130</span> updatedCompactedfiles = new ArrayList<>(this.compactedfiles);<a name="line.130"></a> -<span class="sourceLineNo">131</span> updatedCompactedfiles.addAll(newCompactedfiles);<a name="line.131"></a> -<span class="sourceLineNo">132</span> } else {<a name="line.132"></a> -<span class="sourceLineNo">133</span> updatedCompactedfiles = new ArrayList<>(newCompactedfiles);<a name="line.133"></a> +<span class="sourceLineNo">120</span> public final int getCompactedFilesCount() {<a name="line.120"></a> +<span class="sourceLineNo">121</span> if (compactedfiles == null) {<a name="line.121"></a> +<span class="sourceLineNo">122</span> return 0;<a name="line.122"></a> +<span class="sourceLineNo">123</span> }<a name="line.123"></a> +<span class="sourceLineNo">124</span> return compactedfiles.size();<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> @Override<a name="line.127"></a> +<span class="sourceLineNo">128</span> public void addCompactionResults(<a name="line.128"></a> +<span class="sourceLineNo">129</span> Collection<StoreFile> newCompactedfiles, Collection<StoreFile> results) {<a name="line.129"></a> +<span class="sourceLineNo">130</span> ArrayList<StoreFile> newStoreFiles = Lists.newArrayList(storefiles);<a name="line.130"></a> +<span class="sourceLineNo">131</span> newStoreFiles.removeAll(newCompactedfiles);<a name="line.131"></a> +<span class="sourceLineNo">132</span> if (!results.isEmpty()) {<a name="line.132"></a> +<span class="sourceLineNo">133</span> newStoreFiles.addAll(results);<a name="line.133"></a> <span class="sourceLineNo">134</span> }<a name="line.134"></a> -<span class="sourceLineNo">135</span> markCompactedAway(newCompactedfiles);<a name="line.135"></a> -<span class="sourceLineNo">136</span> this.compactedfiles = sortCompactedfiles(updatedCompactedfiles);<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> // Mark the files as compactedAway once the storefiles and compactedfiles list is finalized<a name="line.139"></a> -<span class="sourceLineNo">140</span> // Let a background thread close the actual reader on these compacted files and also<a name="line.140"></a> -<span class="sourceLineNo">141</span> // ensure to evict the blocks from block cache so that they are no longer in<a name="line.141"></a> -<span class="sourceLineNo">142</span> // cache<a name="line.142"></a> -<span class="sourceLineNo">143</span> private void markCompactedAway(Collection<StoreFile> compactedFiles) {<a name="line.143"></a> -<span class="sourceLineNo">144</span> for (StoreFile file : compactedFiles) {<a name="line.144"></a> -<span class="sourceLineNo">145</span> file.markCompactedAway();<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> @Override<a name="line.149"></a> -<span class="sourceLineNo">150</span> public void removeCompactedFiles(Collection<StoreFile> removedCompactedfiles) throws IOException {<a name="line.150"></a> -<span class="sourceLineNo">151</span> ArrayList<StoreFile> updatedCompactedfiles = null;<a name="line.151"></a> -<span class="sourceLineNo">152</span> if (this.compactedfiles != null) {<a name="line.152"></a> -<span class="sourceLineNo">153</span> updatedCompactedfiles = new ArrayList<>(this.compactedfiles);<a name="line.153"></a> -<span class="sourceLineNo">154</span> updatedCompactedfiles.removeAll(removedCompactedfiles);<a name="line.154"></a> -<span class="sourceLineNo">155</span> this.compactedfiles = sortCompactedfiles(updatedCompactedfiles);<a name="line.155"></a> -<span class="sourceLineNo">156</span> }<a name="line.156"></a> -<span class="sourceLineNo">157</span> }<a name="line.157"></a> -<span class="sourceLineNo">158</span><a name="line.158"></a> -<span class="sourceLineNo">159</span> @Override<a name="line.159"></a> -<span class="sourceLineNo">160</span> public final Iterator<StoreFile> getCandidateFilesForRowKeyBefore(final KeyValue targetKey) {<a name="line.160"></a> -<span class="sourceLineNo">161</span> return new ArrayList<>(Lists.reverse(this.storefiles)).iterator();<a name="line.161"></a> -<span class="sourceLineNo">162</span> }<a name="line.162"></a> -<span class="sourceLineNo">163</span><a name="line.163"></a> -<span class="sourceLineNo">164</span> @Override<a name="line.164"></a> -<span class="sourceLineNo">165</span> public Iterator<StoreFile> updateCandidateFilesForRowKeyBefore(<a name="line.165"></a> -<span class="sourceLineNo">166</span> Iterator<StoreFile> candidateFiles, final KeyValue targetKey, final Cell candidate) {<a name="line.166"></a> -<span class="sourceLineNo">167</span> // Default store has nothing useful to do here.<a name="line.167"></a> -<span class="sourceLineNo">168</span> // TODO: move this comment when implementing Level:<a name="line.168"></a> -<span class="sourceLineNo">169</span> // Level store can trim the list by range, removing all the files which cannot have<a name="line.169"></a> -<span class="sourceLineNo">170</span> // any useful candidates less than "candidate".<a name="line.170"></a> -<span class="sourceLineNo">171</span> return candidateFiles;<a name="line.171"></a> -<span class="sourceLineNo">172</span> }<a name="line.172"></a> -<span class="sourceLineNo">173</span><a name="line.173"></a> -<span class="sourceLineNo">174</span> @Override<a name="line.174"></a> -<span class="sourceLineNo">175</span> public final byte[] getSplitPoint() throws IOException {<a name="line.175"></a> -<span class="sourceLineNo">176</span> List<StoreFile> storefiles = this.storefiles;<a name="line.176"></a> -<span class="sourceLineNo">177</span> if (storefiles.isEmpty()) {<a name="line.177"></a> -<span class="sourceLineNo">178</span> return null;<a name="line.178"></a> -<span class="sourceLineNo">179</span> }<a name="line.179"></a> -<span class="sourceLineNo">180</span> Optional<StoreFile> largestFile = StoreUtils.getLargestFile(storefiles);<a name="line.180"></a> -<span class="sourceLineNo">181</span> return largestFile.isPresent()<a name="line.181"></a> -<span class="sourceLineNo">182</span> ? StoreUtils.getFileSplitPoint(largestFile.get(), kvComparator).orElse(null) : null;<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> @Override<a name="line.185"></a> -<span class="sourceLineNo">186</span> public final Collection<StoreFile> getFilesForScan(byte[] startRow, boolean includeStartRow,<a name="line.186"></a> -<span class="sourceLineNo">187</span> byte[] stopRow, boolean includeStopRow) {<a name="line.187"></a> -<span class="sourceLineNo">188</span> // We cannot provide any useful input and already have the files sorted by seqNum.<a name="line.188"></a> -<span class="sourceLineNo">189</span> return getStorefiles();<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 int getStoreCompactionPriority() {<a name="line.193"></a> -<span class="sourceLineNo">194</span> int priority = blockingFileCount - storefiles.size();<a name="line.194"></a> -<span class="sourceLineNo">195</span> return (priority == HStore.PRIORITY_USER) ? priority + 1 : priority;<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> @Override<a name="line.198"></a> -<span class="sourceLineNo">199</span> public Collection<StoreFile> getUnneededFiles(long maxTs, List<StoreFile> filesCompacting) {<a name="line.199"></a> -<span class="sourceLineNo">200</span> Collection<StoreFile> expiredStoreFiles = null;<a name="line.200"></a> -<span class="sourceLineNo">201</span> ImmutableList<StoreFile> files = storefiles;<a name="line.201"></a> -<span class="sourceLineNo">202</span> // 1) We can never get rid of the last file which has the maximum seqid.<a name="line.202"></a> -<span class="sourceLineNo">203</span> // 2) Files that are not the latest can't become one due to (1), so the rest are fair game.<a name="line.203"></a> -<span class="sourceLineNo">204</span> for (int i = 0; i < files.size() - 1; ++i) {<a name="line.204"></a> -<span class="sourceLineNo">205</span> StoreFile sf = files.get(i);<a name="line.205"></a> -<span class="sourceLineNo">206</span> long fileTs = sf.getReader().getMaxTimestamp();<a name="line.206"></a> -<span class="sourceLineNo">207</span> if (fileTs < maxTs && !filesCompacting.contains(sf)) {<a name="line.207"></a> -<span class="sourceLineNo">208</span> LOG.info("Found an expired store file: " + sf.getPath()<a name="line.208"></a> -<span class="sourceLineNo">209</span> + " whose maxTimeStamp is " + fileTs + ", which is below " + maxTs);<a name="line.209"></a> -<span class="sourceLineNo">210</span> if (expiredStoreFiles == null) {<a name="line.210"></a> -<span class="sourceLineNo">211</span> expiredStoreFiles = new ArrayList<>();<a name="line.211"></a> -<span class="sourceLineNo">212</span> }<a name="line.212"></a> -<span class="sourceLineNo">213</span> expiredStoreFiles.add(sf);<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> return expiredStoreFiles;<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 sortAndSetStoreFiles(List<StoreFile> storeFiles) {<a name="line.219"></a> -<span class="sourceLineNo">220</span> Collections.sort(storeFiles, storeFileComparator);<a name="line.220"></a> -<span class="sourceLineNo">221</span> storefiles = ImmutableList.copyOf(storeFiles);<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> private List<StoreFile> sortCompactedfiles(List<StoreFile> storefiles) {<a name="line.224"></a> -<span class="sourceLineNo">225</span> // Sorting may not be really needed here for the compacted files?<a name="line.225"></a> -<span class="sourceLineNo">226</span> Collections.sort(storefiles, storeFileComparator);<a name="line.226"></a> -<span class="sourceLineNo">227</span> return new ArrayList<>(storefiles);<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> @Override<a name="line.230"></a> -<span class="sourceLineNo">231</span> public double getCompactionPressure() {<a name="line.231"></a> -<span class="sourceLineNo">232</span> int storefileCount = getStorefileCount();<a name="line.232"></a> -<span class="sourceLineNo">233</span> int minFilesToCompact = comConf.getMinFilesToCompact();<a name="line.233"></a> -<span class="sourceLineNo">234</span> if (storefileCount <= minFilesToCompact) {<a name="line.234"></a> -<span class="sourceLineNo">235</span> return 0.0;<a name="line.235"></a> -<span class="sourceLineNo">236</span> }<a name="line.236"></a> -<span class="sourceLineNo">237</span> return (double) (storefileCount - minFilesToCompact) / (blockingFileCount - minFilesToCompact);<a name="line.237"></a> -<span class="sourceLineNo">238</span> }<a name="line.238"></a> -<span class="sourceLineNo">239</span><a name="line.239"></a> -<span class="sourceLineNo">240</span> @Override<a name="line.240"></a> -<span class="sourceLineNo">241</span> public Comparator<StoreFile> getStoreFileComparator() {<a name="line.241"></a> -<span class="sourceLineNo">242</span> return storeFileComparator;<a name="line.242"></a> -<span class="sourceLineNo">243</span> }<a name="line.243"></a> -<span class="sourceLineNo">244</span>}<a name="line.244"></a> -<span class="sourceLineNo">245</span><a name="line.245"></a> +<span class="sourceLineNo">135</span> sortAndSetStoreFiles(newStoreFiles);<a name="line.135"></a> +<span class="sourceLineNo">136</span> ArrayList<StoreFile> updatedCompactedfiles = null;<a name="line.136"></a> +<span class="sourceLineNo">137</span> if (this.compactedfiles != null) {<a name="line.137"></a> +<span class="sourceLineNo">138</span> updatedCompactedfiles = new ArrayList<>(this.compactedfiles);<a name="line.138"></a> +<span class="sourceLineNo">139</span> updatedCompactedfiles.addAll(newCompactedfiles);<a name="line.139"></a> +<span class="sourceLineNo">140</span> } else {<a name="line.140"></a> +<span class="sourceLineNo">141</span> updatedCompactedfiles = new ArrayList<>(newCompactedfiles);<a name="line.141"></a> +<span class="sourceLineNo">142</span> }<a name="line.142"></a> +<span class="sourceLineNo">143</span> markCompactedAway(newCompactedfiles);<a name="line.143"></a> +<span class="sourceLineNo">144</span> this.compactedfiles = sortCompactedfiles(updatedCompactedfiles);<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> // Mark the files as compactedAway once the storefiles and compactedfiles list is finalized<a name="line.147"></a> +<span class="sourceLineNo">148</span> // Let a background thread close the actual reader on these compacted files and also<a name="line.148"></a> +<span class="sourceLineNo">149</span> // ensure to evict the blocks from block cache so that they are no longer in<a name="line.149"></a> +<span class="sourceLineNo">150</span> // cache<a name="line.150"></a> +<span class="sourceLineNo">151</span> private void markCompactedAway(Collection<StoreFile> compactedFiles) {<a name="line.151"></a> +<span class="sourceLineNo">152</span> for (StoreFile file : compactedFiles) {<a name="line.152"></a> +<span class="sourceLineNo">153</span> file.markCompactedAway();<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> @Override<a name="line.157"></a> +<span class="sourceLineNo">158</span> public void removeCompactedFiles(Collection<StoreFile> removedCompactedfiles) throws IOException {<a name="line.158"></a> +<span class="sourceLineNo">159</span> ArrayList<StoreFile> updatedCompactedfiles = null;<a name="line.159"></a> +<span class="sourceLineNo">160</span> if (this.compactedfiles != null) {<a name="line.160"></a> +<span class="sourceLineNo">161</span> updatedCompactedfiles = new ArrayList<>(this.compactedfiles);<a name="line.161"></a> +<span class="sourceLineNo">162</span> updatedCompactedfiles.removeAll(removedCompactedfiles);<a name="line.162"></a> +<span class="sourceLineNo">163</span> this.compactedfiles = sortCompactedfiles(updatedCompactedfiles);<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><a name="line.166"></a> +<span class="sourceLineNo">167</span> @Override<a name="line.167"></a> +<span class="sourceLineNo">168</span> public final Iterator<StoreFile> getCandidateFilesForRowKeyBefore(final KeyValue targetKey) {<a name="line.168"></a> +<span class="sourceLineNo">169</span> return new ArrayList<>(Lists.reverse(this.storefiles)).iterator();<a name="line.169"></a> +<span class="sourceLineNo">170</span> }<a name="line.170"></a> +<span class="sourceLineNo">171</span><a name="line.171"></a> +<span class="sourceLineNo">172</span> @Override<a name="line.172"></a> +<span class="sourceLineNo">173</span> public Iterator<StoreFile> updateCandidateFilesForRowKeyBefore(<a name="line.173"></a> +<span class="sourceLineNo">174</span> Iterator<StoreFile> candidateFiles, final KeyValue targetKey, final Cell candidate) {<a name="line.174"></a> +<span class="sourceLineNo">175</span> // Default store has nothing useful to do here.<a name="line.175"></a> +<span class="sourceLineNo">176</span> // TODO: move this comment when implementing Level:<a name="line.176"></a> +<span class="sourceLineNo">177</span> // Level store can trim the list by range, removing all the files which cannot have<a name="line.177"></a> +<span class="sourceLineNo">178</span> // any useful candidates less than "candidate".<a name="line.178"></a> +<span class="sourceLineNo">179</span> return candidateFiles;<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> @Override<a name="line.182"></a> +<span class="sourceLineNo">183</span> public final byte[] getSplitPoint() throws IOException {<a name="line.183"></a> +<span class="sourceLineNo">184</span> List<StoreFile> storefiles = this.storefiles;<a name="line.184"></a> +<span class="sourceLineNo">185</span> if (storefiles.isEmpty()) {<a name="line.185"></a> +<span class="sourceLineNo">186</span> return null;<a name="line.186"></a> +<span class="sourceLineNo">187</span> }<a name="line.187"></a> +<span class="sourceLineNo">188</span> Optional<StoreFile> largestFile = StoreUtils.getLargestFile(storefiles);<a name="line.188"></a> +<span class="sourceLineNo">189</span> return largestFile.isPresent()<a name="line.189"></a> +<span class="sourceLineNo">190</span> ? StoreUtils.getFileSplitPoint(largestFile.get(), kvComparator).orElse(null) : null;<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 final Collection<StoreFile> getFilesForScan(byte[] startRow, boolean includeStartRow,<a name="line.194"></a> +<span class="sourceLineNo">195</span> byte[] stopRow, boolean includeStopRow) {<a name="line.195"></a> +<span class="sourceLineNo">196</span> // We cannot provide any useful input and already have the files sorted by seqNum.<a name="line.196"></a> +<span class="sourceLineNo">197</span> return getStorefiles();<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> @Override<a name="line.200"></a> +<span class="sourceLineNo">201</span> public int getStoreCompactionPriority() {<a name="line.201"></a> +<span class="sourceLineNo">202</span> int priority = blockingFileCount - storefiles.size();<a name="line.202"></a> +<span class="sourceLineNo">203</span> return (priority == HStore.PRIORITY_USER) ? priority + 1 : priority;<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 Collection<StoreFile> getUnneededFiles(long maxTs, List<StoreFile> filesCompacting) {<a name="line.207"></a> +<span class="sourceLineNo">208</span> Collection<StoreFile> expiredStoreFiles = null;<a name="line.208"></a> +<span class="sourceLineNo">209</span> ImmutableList<StoreFile> files = storefiles;<a name="line.209"></a> +<span class="sourceLineNo">210</span> // 1) We can never get rid of the last file which has the maximum seqid.<a name="line.210"></a> +<span class="sourceLineNo">211</span> // 2) Files that are not the latest can't become one due to (1), so the rest are fair game.<a name="line.211"></a> +<span class="sourceLineNo">212</span> for (int i = 0; i < files.size() - 1; ++i) {<a name="line.212"></a> +<span class="sourceLineNo">213</span> StoreFile sf = files.get(i);<a name="line.213"></a> +<span class="sourceLineNo">214</span> long fileTs = sf.getReader().getMaxTimestamp();<a name="line.214"></a> +<span class="sourceLineNo">215</span> if (fileTs < maxTs && !filesCompacting.contains(sf)) {<a name="line.215"></a> +<span class="sourceLineNo">216</span> LOG.info("Found an expired store file: " + sf.getPath()<a name="line.216"></a> +<span class="sourceLineNo">217</span> + " whose maxTimeStamp is " + fileTs + ", which is below " + maxTs);<a name="line.217"></a> +<span class="sourceLineNo">218</span> if (expiredStoreFiles == null) {<a name="line.218"></a> +<span class="sourceLineNo">219</span> expiredStoreFiles = new ArrayList<>();<a name="line.219"></a> +<span class="sourceLineNo">220</span> }<a name="line.220"></a> +<span class="sourceLineNo">221</span> expiredStoreFiles.add(sf);<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> return expiredStoreFiles;<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> private void sortAndSetStoreFiles(List<StoreFile> storeFiles) {<a name="line.227"></a> +<span class="sourceLineNo">228</span> Collections.sort(storeFiles, storeFileComparator);<a name="line.228"></a> +<span class="sourceLineNo">229</span> storefiles = ImmutableList.copyOf(storeFiles);<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> private List<StoreFile> sortCompactedfiles(List<StoreFile> storefiles) {<a name="line.232"></a> +<span class="sourceLineNo">233</span> // Sorting may not be really needed here for the compacted files?<a name="line.233"></a> +<span class="sourceLineNo">234</span> Collections.sort(storefiles, storeFileComparator);<a name="line.234"></a> +<span class="sourceLineNo">235</span> return new ArrayList<>(storefiles);<a name="line.235"></a> +<span class="sourceLineNo">236</span> }<a name="line.236"></a> +<span class="sourceLineNo">237</span><a name="line.237"></a> +<span class="sourceLineNo">238</span> @Override<a name="line.238"></a> +<span class="sourceLineNo">239</span> public double getCompactionPressure() {<a name="line.239"></a> +<span class="sourceLineNo">240</span> int storefileCount = getStorefileCount();<a name="line.240"></a> +<span class="sourceLineNo">241</span> int minFilesToCompact = comConf.getMinFilesToCompact();<a name="line.241"></a> +<span class="sourceLineNo">242</span> if (storefileCount <= minFilesToCompact) {<a name="line.242"></a> +<span class="sourceLineNo">243</span> return 0.0;<a name="line.243"></a> +<span class="sourceLineNo">244</span> }<a name="line.244"></a> +<span class="sourceLineNo">245</span> return (double) (storefileCount - minFilesToCompact) / (blockingFileCount - minFilesToCompact);<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> @Override<a name="line.248"></a> +<span class="sourceLineNo">249</span> public Comparator<StoreFile> getStoreFileComparator() {<a name="line.249"></a> +<span class="sourceLineNo">250</span> return storeFileComparator;<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>