You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by gi...@apache.org on 2018/11/02 14:53:37 UTC

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/6c9b936e/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.CompletedProcedureCleaner.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.CompletedProcedureCleaner.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.CompletedProcedureCleaner.html
index c5f21ac..ffafe51 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.CompletedProcedureCleaner.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.CompletedProcedureCleaner.html
@@ -100,29 +100,29 @@
 <span class="sourceLineNo">092</span>   * break PE having it fail at various junctures. When non-null, testing is set to an instance of<a name="line.92"></a>
 <span class="sourceLineNo">093</span>   * the below internal {@link Testing} class with flags set for the particular test.<a name="line.93"></a>
 <span class="sourceLineNo">094</span>   */<a name="line.94"></a>
-<span class="sourceLineNo">095</span>  Testing testing = null;<a name="line.95"></a>
+<span class="sourceLineNo">095</span>  volatile Testing testing = null;<a name="line.95"></a>
 <span class="sourceLineNo">096</span><a name="line.96"></a>
 <span class="sourceLineNo">097</span>  /**<a name="line.97"></a>
 <span class="sourceLineNo">098</span>   * Class with parameters describing how to fail/die when in testing-context.<a name="line.98"></a>
 <span class="sourceLineNo">099</span>   */<a name="line.99"></a>
 <span class="sourceLineNo">100</span>  public static class Testing {<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    protected boolean killIfHasParent = true;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    protected boolean killIfSuspended = false;<a name="line.102"></a>
+<span class="sourceLineNo">101</span>    protected volatile boolean killIfHasParent = true;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    protected volatile boolean killIfSuspended = false;<a name="line.102"></a>
 <span class="sourceLineNo">103</span><a name="line.103"></a>
 <span class="sourceLineNo">104</span>    /**<a name="line.104"></a>
 <span class="sourceLineNo">105</span>     * Kill the PE BEFORE we store state to the WAL. Good for figuring out if a Procedure is<a name="line.105"></a>
 <span class="sourceLineNo">106</span>     * persisting all the state it needs to recover after a crash.<a name="line.106"></a>
 <span class="sourceLineNo">107</span>     */<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    protected boolean killBeforeStoreUpdate = false;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    protected boolean toggleKillBeforeStoreUpdate = false;<a name="line.109"></a>
+<span class="sourceLineNo">108</span>    protected volatile boolean killBeforeStoreUpdate = false;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    protected volatile boolean toggleKillBeforeStoreUpdate = false;<a name="line.109"></a>
 <span class="sourceLineNo">110</span><a name="line.110"></a>
 <span class="sourceLineNo">111</span>    /**<a name="line.111"></a>
 <span class="sourceLineNo">112</span>     * Set when we want to fail AFTER state has been stored into the WAL. Rarely used. HBASE-20978<a name="line.112"></a>
 <span class="sourceLineNo">113</span>     * is about a case where memory-state was being set after store to WAL where a crash could<a name="line.113"></a>
 <span class="sourceLineNo">114</span>     * cause us to get stuck. This flag allows killing at what was a vulnerable time.<a name="line.114"></a>
 <span class="sourceLineNo">115</span>     */<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    protected boolean killAfterStoreUpdate = false;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    protected boolean toggleKillAfterStoreUpdate = false;<a name="line.117"></a>
+<span class="sourceLineNo">116</span>    protected volatile boolean killAfterStoreUpdate = false;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    protected volatile boolean toggleKillAfterStoreUpdate = false;<a name="line.117"></a>
 <span class="sourceLineNo">118</span><a name="line.118"></a>
 <span class="sourceLineNo">119</span>    protected boolean shouldKillBeforeStoreUpdate() {<a name="line.119"></a>
 <span class="sourceLineNo">120</span>      final boolean kill = this.killBeforeStoreUpdate;<a name="line.120"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/6c9b936e/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.CompletedProcedureRetainer.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.CompletedProcedureRetainer.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.CompletedProcedureRetainer.html
index c5f21ac..ffafe51 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.CompletedProcedureRetainer.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.CompletedProcedureRetainer.html
@@ -100,29 +100,29 @@
 <span class="sourceLineNo">092</span>   * break PE having it fail at various junctures. When non-null, testing is set to an instance of<a name="line.92"></a>
 <span class="sourceLineNo">093</span>   * the below internal {@link Testing} class with flags set for the particular test.<a name="line.93"></a>
 <span class="sourceLineNo">094</span>   */<a name="line.94"></a>
-<span class="sourceLineNo">095</span>  Testing testing = null;<a name="line.95"></a>
+<span class="sourceLineNo">095</span>  volatile Testing testing = null;<a name="line.95"></a>
 <span class="sourceLineNo">096</span><a name="line.96"></a>
 <span class="sourceLineNo">097</span>  /**<a name="line.97"></a>
 <span class="sourceLineNo">098</span>   * Class with parameters describing how to fail/die when in testing-context.<a name="line.98"></a>
 <span class="sourceLineNo">099</span>   */<a name="line.99"></a>
 <span class="sourceLineNo">100</span>  public static class Testing {<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    protected boolean killIfHasParent = true;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    protected boolean killIfSuspended = false;<a name="line.102"></a>
+<span class="sourceLineNo">101</span>    protected volatile boolean killIfHasParent = true;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    protected volatile boolean killIfSuspended = false;<a name="line.102"></a>
 <span class="sourceLineNo">103</span><a name="line.103"></a>
 <span class="sourceLineNo">104</span>    /**<a name="line.104"></a>
 <span class="sourceLineNo">105</span>     * Kill the PE BEFORE we store state to the WAL. Good for figuring out if a Procedure is<a name="line.105"></a>
 <span class="sourceLineNo">106</span>     * persisting all the state it needs to recover after a crash.<a name="line.106"></a>
 <span class="sourceLineNo">107</span>     */<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    protected boolean killBeforeStoreUpdate = false;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    protected boolean toggleKillBeforeStoreUpdate = false;<a name="line.109"></a>
+<span class="sourceLineNo">108</span>    protected volatile boolean killBeforeStoreUpdate = false;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    protected volatile boolean toggleKillBeforeStoreUpdate = false;<a name="line.109"></a>
 <span class="sourceLineNo">110</span><a name="line.110"></a>
 <span class="sourceLineNo">111</span>    /**<a name="line.111"></a>
 <span class="sourceLineNo">112</span>     * Set when we want to fail AFTER state has been stored into the WAL. Rarely used. HBASE-20978<a name="line.112"></a>
 <span class="sourceLineNo">113</span>     * is about a case where memory-state was being set after store to WAL where a crash could<a name="line.113"></a>
 <span class="sourceLineNo">114</span>     * cause us to get stuck. This flag allows killing at what was a vulnerable time.<a name="line.114"></a>
 <span class="sourceLineNo">115</span>     */<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    protected boolean killAfterStoreUpdate = false;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    protected boolean toggleKillAfterStoreUpdate = false;<a name="line.117"></a>
+<span class="sourceLineNo">116</span>    protected volatile boolean killAfterStoreUpdate = false;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    protected volatile boolean toggleKillAfterStoreUpdate = false;<a name="line.117"></a>
 <span class="sourceLineNo">118</span><a name="line.118"></a>
 <span class="sourceLineNo">119</span>    protected boolean shouldKillBeforeStoreUpdate() {<a name="line.119"></a>
 <span class="sourceLineNo">120</span>      final boolean kill = this.killBeforeStoreUpdate;<a name="line.120"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/6c9b936e/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.FailedProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.FailedProcedure.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.FailedProcedure.html
index c5f21ac..ffafe51 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.FailedProcedure.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.FailedProcedure.html
@@ -100,29 +100,29 @@
 <span class="sourceLineNo">092</span>   * break PE having it fail at various junctures. When non-null, testing is set to an instance of<a name="line.92"></a>
 <span class="sourceLineNo">093</span>   * the below internal {@link Testing} class with flags set for the particular test.<a name="line.93"></a>
 <span class="sourceLineNo">094</span>   */<a name="line.94"></a>
-<span class="sourceLineNo">095</span>  Testing testing = null;<a name="line.95"></a>
+<span class="sourceLineNo">095</span>  volatile Testing testing = null;<a name="line.95"></a>
 <span class="sourceLineNo">096</span><a name="line.96"></a>
 <span class="sourceLineNo">097</span>  /**<a name="line.97"></a>
 <span class="sourceLineNo">098</span>   * Class with parameters describing how to fail/die when in testing-context.<a name="line.98"></a>
 <span class="sourceLineNo">099</span>   */<a name="line.99"></a>
 <span class="sourceLineNo">100</span>  public static class Testing {<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    protected boolean killIfHasParent = true;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    protected boolean killIfSuspended = false;<a name="line.102"></a>
+<span class="sourceLineNo">101</span>    protected volatile boolean killIfHasParent = true;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    protected volatile boolean killIfSuspended = false;<a name="line.102"></a>
 <span class="sourceLineNo">103</span><a name="line.103"></a>
 <span class="sourceLineNo">104</span>    /**<a name="line.104"></a>
 <span class="sourceLineNo">105</span>     * Kill the PE BEFORE we store state to the WAL. Good for figuring out if a Procedure is<a name="line.105"></a>
 <span class="sourceLineNo">106</span>     * persisting all the state it needs to recover after a crash.<a name="line.106"></a>
 <span class="sourceLineNo">107</span>     */<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    protected boolean killBeforeStoreUpdate = false;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    protected boolean toggleKillBeforeStoreUpdate = false;<a name="line.109"></a>
+<span class="sourceLineNo">108</span>    protected volatile boolean killBeforeStoreUpdate = false;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    protected volatile boolean toggleKillBeforeStoreUpdate = false;<a name="line.109"></a>
 <span class="sourceLineNo">110</span><a name="line.110"></a>
 <span class="sourceLineNo">111</span>    /**<a name="line.111"></a>
 <span class="sourceLineNo">112</span>     * Set when we want to fail AFTER state has been stored into the WAL. Rarely used. HBASE-20978<a name="line.112"></a>
 <span class="sourceLineNo">113</span>     * is about a case where memory-state was being set after store to WAL where a crash could<a name="line.113"></a>
 <span class="sourceLineNo">114</span>     * cause us to get stuck. This flag allows killing at what was a vulnerable time.<a name="line.114"></a>
 <span class="sourceLineNo">115</span>     */<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    protected boolean killAfterStoreUpdate = false;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    protected boolean toggleKillAfterStoreUpdate = false;<a name="line.117"></a>
+<span class="sourceLineNo">116</span>    protected volatile boolean killAfterStoreUpdate = false;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    protected volatile boolean toggleKillAfterStoreUpdate = false;<a name="line.117"></a>
 <span class="sourceLineNo">118</span><a name="line.118"></a>
 <span class="sourceLineNo">119</span>    protected boolean shouldKillBeforeStoreUpdate() {<a name="line.119"></a>
 <span class="sourceLineNo">120</span>      final boolean kill = this.killBeforeStoreUpdate;<a name="line.120"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/6c9b936e/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.KeepAliveWorkerThread.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.KeepAliveWorkerThread.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.KeepAliveWorkerThread.html
index c5f21ac..ffafe51 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.KeepAliveWorkerThread.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.KeepAliveWorkerThread.html
@@ -100,29 +100,29 @@
 <span class="sourceLineNo">092</span>   * break PE having it fail at various junctures. When non-null, testing is set to an instance of<a name="line.92"></a>
 <span class="sourceLineNo">093</span>   * the below internal {@link Testing} class with flags set for the particular test.<a name="line.93"></a>
 <span class="sourceLineNo">094</span>   */<a name="line.94"></a>
-<span class="sourceLineNo">095</span>  Testing testing = null;<a name="line.95"></a>
+<span class="sourceLineNo">095</span>  volatile Testing testing = null;<a name="line.95"></a>
 <span class="sourceLineNo">096</span><a name="line.96"></a>
 <span class="sourceLineNo">097</span>  /**<a name="line.97"></a>
 <span class="sourceLineNo">098</span>   * Class with parameters describing how to fail/die when in testing-context.<a name="line.98"></a>
 <span class="sourceLineNo">099</span>   */<a name="line.99"></a>
 <span class="sourceLineNo">100</span>  public static class Testing {<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    protected boolean killIfHasParent = true;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    protected boolean killIfSuspended = false;<a name="line.102"></a>
+<span class="sourceLineNo">101</span>    protected volatile boolean killIfHasParent = true;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    protected volatile boolean killIfSuspended = false;<a name="line.102"></a>
 <span class="sourceLineNo">103</span><a name="line.103"></a>
 <span class="sourceLineNo">104</span>    /**<a name="line.104"></a>
 <span class="sourceLineNo">105</span>     * Kill the PE BEFORE we store state to the WAL. Good for figuring out if a Procedure is<a name="line.105"></a>
 <span class="sourceLineNo">106</span>     * persisting all the state it needs to recover after a crash.<a name="line.106"></a>
 <span class="sourceLineNo">107</span>     */<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    protected boolean killBeforeStoreUpdate = false;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    protected boolean toggleKillBeforeStoreUpdate = false;<a name="line.109"></a>
+<span class="sourceLineNo">108</span>    protected volatile boolean killBeforeStoreUpdate = false;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    protected volatile boolean toggleKillBeforeStoreUpdate = false;<a name="line.109"></a>
 <span class="sourceLineNo">110</span><a name="line.110"></a>
 <span class="sourceLineNo">111</span>    /**<a name="line.111"></a>
 <span class="sourceLineNo">112</span>     * Set when we want to fail AFTER state has been stored into the WAL. Rarely used. HBASE-20978<a name="line.112"></a>
 <span class="sourceLineNo">113</span>     * is about a case where memory-state was being set after store to WAL where a crash could<a name="line.113"></a>
 <span class="sourceLineNo">114</span>     * cause us to get stuck. This flag allows killing at what was a vulnerable time.<a name="line.114"></a>
 <span class="sourceLineNo">115</span>     */<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    protected boolean killAfterStoreUpdate = false;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    protected boolean toggleKillAfterStoreUpdate = false;<a name="line.117"></a>
+<span class="sourceLineNo">116</span>    protected volatile boolean killAfterStoreUpdate = false;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    protected volatile boolean toggleKillAfterStoreUpdate = false;<a name="line.117"></a>
 <span class="sourceLineNo">118</span><a name="line.118"></a>
 <span class="sourceLineNo">119</span>    protected boolean shouldKillBeforeStoreUpdate() {<a name="line.119"></a>
 <span class="sourceLineNo">120</span>      final boolean kill = this.killBeforeStoreUpdate;<a name="line.120"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/6c9b936e/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.ProcedureExecutorListener.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.ProcedureExecutorListener.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.ProcedureExecutorListener.html
index c5f21ac..ffafe51 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.ProcedureExecutorListener.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.ProcedureExecutorListener.html
@@ -100,29 +100,29 @@
 <span class="sourceLineNo">092</span>   * break PE having it fail at various junctures. When non-null, testing is set to an instance of<a name="line.92"></a>
 <span class="sourceLineNo">093</span>   * the below internal {@link Testing} class with flags set for the particular test.<a name="line.93"></a>
 <span class="sourceLineNo">094</span>   */<a name="line.94"></a>
-<span class="sourceLineNo">095</span>  Testing testing = null;<a name="line.95"></a>
+<span class="sourceLineNo">095</span>  volatile Testing testing = null;<a name="line.95"></a>
 <span class="sourceLineNo">096</span><a name="line.96"></a>
 <span class="sourceLineNo">097</span>  /**<a name="line.97"></a>
 <span class="sourceLineNo">098</span>   * Class with parameters describing how to fail/die when in testing-context.<a name="line.98"></a>
 <span class="sourceLineNo">099</span>   */<a name="line.99"></a>
 <span class="sourceLineNo">100</span>  public static class Testing {<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    protected boolean killIfHasParent = true;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    protected boolean killIfSuspended = false;<a name="line.102"></a>
+<span class="sourceLineNo">101</span>    protected volatile boolean killIfHasParent = true;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    protected volatile boolean killIfSuspended = false;<a name="line.102"></a>
 <span class="sourceLineNo">103</span><a name="line.103"></a>
 <span class="sourceLineNo">104</span>    /**<a name="line.104"></a>
 <span class="sourceLineNo">105</span>     * Kill the PE BEFORE we store state to the WAL. Good for figuring out if a Procedure is<a name="line.105"></a>
 <span class="sourceLineNo">106</span>     * persisting all the state it needs to recover after a crash.<a name="line.106"></a>
 <span class="sourceLineNo">107</span>     */<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    protected boolean killBeforeStoreUpdate = false;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    protected boolean toggleKillBeforeStoreUpdate = false;<a name="line.109"></a>
+<span class="sourceLineNo">108</span>    protected volatile boolean killBeforeStoreUpdate = false;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    protected volatile boolean toggleKillBeforeStoreUpdate = false;<a name="line.109"></a>
 <span class="sourceLineNo">110</span><a name="line.110"></a>
 <span class="sourceLineNo">111</span>    /**<a name="line.111"></a>
 <span class="sourceLineNo">112</span>     * Set when we want to fail AFTER state has been stored into the WAL. Rarely used. HBASE-20978<a name="line.112"></a>
 <span class="sourceLineNo">113</span>     * is about a case where memory-state was being set after store to WAL where a crash could<a name="line.113"></a>
 <span class="sourceLineNo">114</span>     * cause us to get stuck. This flag allows killing at what was a vulnerable time.<a name="line.114"></a>
 <span class="sourceLineNo">115</span>     */<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    protected boolean killAfterStoreUpdate = false;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    protected boolean toggleKillAfterStoreUpdate = false;<a name="line.117"></a>
+<span class="sourceLineNo">116</span>    protected volatile boolean killAfterStoreUpdate = false;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    protected volatile boolean toggleKillAfterStoreUpdate = false;<a name="line.117"></a>
 <span class="sourceLineNo">118</span><a name="line.118"></a>
 <span class="sourceLineNo">119</span>    protected boolean shouldKillBeforeStoreUpdate() {<a name="line.119"></a>
 <span class="sourceLineNo">120</span>      final boolean kill = this.killBeforeStoreUpdate;<a name="line.120"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/6c9b936e/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.Testing.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.Testing.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.Testing.html
index c5f21ac..ffafe51 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.Testing.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.Testing.html
@@ -100,29 +100,29 @@
 <span class="sourceLineNo">092</span>   * break PE having it fail at various junctures. When non-null, testing is set to an instance of<a name="line.92"></a>
 <span class="sourceLineNo">093</span>   * the below internal {@link Testing} class with flags set for the particular test.<a name="line.93"></a>
 <span class="sourceLineNo">094</span>   */<a name="line.94"></a>
-<span class="sourceLineNo">095</span>  Testing testing = null;<a name="line.95"></a>
+<span class="sourceLineNo">095</span>  volatile Testing testing = null;<a name="line.95"></a>
 <span class="sourceLineNo">096</span><a name="line.96"></a>
 <span class="sourceLineNo">097</span>  /**<a name="line.97"></a>
 <span class="sourceLineNo">098</span>   * Class with parameters describing how to fail/die when in testing-context.<a name="line.98"></a>
 <span class="sourceLineNo">099</span>   */<a name="line.99"></a>
 <span class="sourceLineNo">100</span>  public static class Testing {<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    protected boolean killIfHasParent = true;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    protected boolean killIfSuspended = false;<a name="line.102"></a>
+<span class="sourceLineNo">101</span>    protected volatile boolean killIfHasParent = true;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    protected volatile boolean killIfSuspended = false;<a name="line.102"></a>
 <span class="sourceLineNo">103</span><a name="line.103"></a>
 <span class="sourceLineNo">104</span>    /**<a name="line.104"></a>
 <span class="sourceLineNo">105</span>     * Kill the PE BEFORE we store state to the WAL. Good for figuring out if a Procedure is<a name="line.105"></a>
 <span class="sourceLineNo">106</span>     * persisting all the state it needs to recover after a crash.<a name="line.106"></a>
 <span class="sourceLineNo">107</span>     */<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    protected boolean killBeforeStoreUpdate = false;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    protected boolean toggleKillBeforeStoreUpdate = false;<a name="line.109"></a>
+<span class="sourceLineNo">108</span>    protected volatile boolean killBeforeStoreUpdate = false;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    protected volatile boolean toggleKillBeforeStoreUpdate = false;<a name="line.109"></a>
 <span class="sourceLineNo">110</span><a name="line.110"></a>
 <span class="sourceLineNo">111</span>    /**<a name="line.111"></a>
 <span class="sourceLineNo">112</span>     * Set when we want to fail AFTER state has been stored into the WAL. Rarely used. HBASE-20978<a name="line.112"></a>
 <span class="sourceLineNo">113</span>     * is about a case where memory-state was being set after store to WAL where a crash could<a name="line.113"></a>
 <span class="sourceLineNo">114</span>     * cause us to get stuck. This flag allows killing at what was a vulnerable time.<a name="line.114"></a>
 <span class="sourceLineNo">115</span>     */<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    protected boolean killAfterStoreUpdate = false;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    protected boolean toggleKillAfterStoreUpdate = false;<a name="line.117"></a>
+<span class="sourceLineNo">116</span>    protected volatile boolean killAfterStoreUpdate = false;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    protected volatile boolean toggleKillAfterStoreUpdate = false;<a name="line.117"></a>
 <span class="sourceLineNo">118</span><a name="line.118"></a>
 <span class="sourceLineNo">119</span>    protected boolean shouldKillBeforeStoreUpdate() {<a name="line.119"></a>
 <span class="sourceLineNo">120</span>      final boolean kill = this.killBeforeStoreUpdate;<a name="line.120"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/6c9b936e/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html
index c5f21ac..ffafe51 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerMonitor.html
@@ -100,29 +100,29 @@
 <span class="sourceLineNo">092</span>   * break PE having it fail at various junctures. When non-null, testing is set to an instance of<a name="line.92"></a>
 <span class="sourceLineNo">093</span>   * the below internal {@link Testing} class with flags set for the particular test.<a name="line.93"></a>
 <span class="sourceLineNo">094</span>   */<a name="line.94"></a>
-<span class="sourceLineNo">095</span>  Testing testing = null;<a name="line.95"></a>
+<span class="sourceLineNo">095</span>  volatile Testing testing = null;<a name="line.95"></a>
 <span class="sourceLineNo">096</span><a name="line.96"></a>
 <span class="sourceLineNo">097</span>  /**<a name="line.97"></a>
 <span class="sourceLineNo">098</span>   * Class with parameters describing how to fail/die when in testing-context.<a name="line.98"></a>
 <span class="sourceLineNo">099</span>   */<a name="line.99"></a>
 <span class="sourceLineNo">100</span>  public static class Testing {<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    protected boolean killIfHasParent = true;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    protected boolean killIfSuspended = false;<a name="line.102"></a>
+<span class="sourceLineNo">101</span>    protected volatile boolean killIfHasParent = true;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    protected volatile boolean killIfSuspended = false;<a name="line.102"></a>
 <span class="sourceLineNo">103</span><a name="line.103"></a>
 <span class="sourceLineNo">104</span>    /**<a name="line.104"></a>
 <span class="sourceLineNo">105</span>     * Kill the PE BEFORE we store state to the WAL. Good for figuring out if a Procedure is<a name="line.105"></a>
 <span class="sourceLineNo">106</span>     * persisting all the state it needs to recover after a crash.<a name="line.106"></a>
 <span class="sourceLineNo">107</span>     */<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    protected boolean killBeforeStoreUpdate = false;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    protected boolean toggleKillBeforeStoreUpdate = false;<a name="line.109"></a>
+<span class="sourceLineNo">108</span>    protected volatile boolean killBeforeStoreUpdate = false;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    protected volatile boolean toggleKillBeforeStoreUpdate = false;<a name="line.109"></a>
 <span class="sourceLineNo">110</span><a name="line.110"></a>
 <span class="sourceLineNo">111</span>    /**<a name="line.111"></a>
 <span class="sourceLineNo">112</span>     * Set when we want to fail AFTER state has been stored into the WAL. Rarely used. HBASE-20978<a name="line.112"></a>
 <span class="sourceLineNo">113</span>     * is about a case where memory-state was being set after store to WAL where a crash could<a name="line.113"></a>
 <span class="sourceLineNo">114</span>     * cause us to get stuck. This flag allows killing at what was a vulnerable time.<a name="line.114"></a>
 <span class="sourceLineNo">115</span>     */<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    protected boolean killAfterStoreUpdate = false;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    protected boolean toggleKillAfterStoreUpdate = false;<a name="line.117"></a>
+<span class="sourceLineNo">116</span>    protected volatile boolean killAfterStoreUpdate = false;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    protected volatile boolean toggleKillAfterStoreUpdate = false;<a name="line.117"></a>
 <span class="sourceLineNo">118</span><a name="line.118"></a>
 <span class="sourceLineNo">119</span>    protected boolean shouldKillBeforeStoreUpdate() {<a name="line.119"></a>
 <span class="sourceLineNo">120</span>      final boolean kill = this.killBeforeStoreUpdate;<a name="line.120"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/6c9b936e/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html
index c5f21ac..ffafe51 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.WorkerThread.html
@@ -100,29 +100,29 @@
 <span class="sourceLineNo">092</span>   * break PE having it fail at various junctures. When non-null, testing is set to an instance of<a name="line.92"></a>
 <span class="sourceLineNo">093</span>   * the below internal {@link Testing} class with flags set for the particular test.<a name="line.93"></a>
 <span class="sourceLineNo">094</span>   */<a name="line.94"></a>
-<span class="sourceLineNo">095</span>  Testing testing = null;<a name="line.95"></a>
+<span class="sourceLineNo">095</span>  volatile Testing testing = null;<a name="line.95"></a>
 <span class="sourceLineNo">096</span><a name="line.96"></a>
 <span class="sourceLineNo">097</span>  /**<a name="line.97"></a>
 <span class="sourceLineNo">098</span>   * Class with parameters describing how to fail/die when in testing-context.<a name="line.98"></a>
 <span class="sourceLineNo">099</span>   */<a name="line.99"></a>
 <span class="sourceLineNo">100</span>  public static class Testing {<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    protected boolean killIfHasParent = true;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    protected boolean killIfSuspended = false;<a name="line.102"></a>
+<span class="sourceLineNo">101</span>    protected volatile boolean killIfHasParent = true;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    protected volatile boolean killIfSuspended = false;<a name="line.102"></a>
 <span class="sourceLineNo">103</span><a name="line.103"></a>
 <span class="sourceLineNo">104</span>    /**<a name="line.104"></a>
 <span class="sourceLineNo">105</span>     * Kill the PE BEFORE we store state to the WAL. Good for figuring out if a Procedure is<a name="line.105"></a>
 <span class="sourceLineNo">106</span>     * persisting all the state it needs to recover after a crash.<a name="line.106"></a>
 <span class="sourceLineNo">107</span>     */<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    protected boolean killBeforeStoreUpdate = false;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    protected boolean toggleKillBeforeStoreUpdate = false;<a name="line.109"></a>
+<span class="sourceLineNo">108</span>    protected volatile boolean killBeforeStoreUpdate = false;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    protected volatile boolean toggleKillBeforeStoreUpdate = false;<a name="line.109"></a>
 <span class="sourceLineNo">110</span><a name="line.110"></a>
 <span class="sourceLineNo">111</span>    /**<a name="line.111"></a>
 <span class="sourceLineNo">112</span>     * Set when we want to fail AFTER state has been stored into the WAL. Rarely used. HBASE-20978<a name="line.112"></a>
 <span class="sourceLineNo">113</span>     * is about a case where memory-state was being set after store to WAL where a crash could<a name="line.113"></a>
 <span class="sourceLineNo">114</span>     * cause us to get stuck. This flag allows killing at what was a vulnerable time.<a name="line.114"></a>
 <span class="sourceLineNo">115</span>     */<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    protected boolean killAfterStoreUpdate = false;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    protected boolean toggleKillAfterStoreUpdate = false;<a name="line.117"></a>
+<span class="sourceLineNo">116</span>    protected volatile boolean killAfterStoreUpdate = false;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    protected volatile boolean toggleKillAfterStoreUpdate = false;<a name="line.117"></a>
 <span class="sourceLineNo">118</span><a name="line.118"></a>
 <span class="sourceLineNo">119</span>    protected boolean shouldKillBeforeStoreUpdate() {<a name="line.119"></a>
 <span class="sourceLineNo">120</span>      final boolean kill = this.killBeforeStoreUpdate;<a name="line.120"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/6c9b936e/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html
index c5f21ac..ffafe51 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html
@@ -100,29 +100,29 @@
 <span class="sourceLineNo">092</span>   * break PE having it fail at various junctures. When non-null, testing is set to an instance of<a name="line.92"></a>
 <span class="sourceLineNo">093</span>   * the below internal {@link Testing} class with flags set for the particular test.<a name="line.93"></a>
 <span class="sourceLineNo">094</span>   */<a name="line.94"></a>
-<span class="sourceLineNo">095</span>  Testing testing = null;<a name="line.95"></a>
+<span class="sourceLineNo">095</span>  volatile Testing testing = null;<a name="line.95"></a>
 <span class="sourceLineNo">096</span><a name="line.96"></a>
 <span class="sourceLineNo">097</span>  /**<a name="line.97"></a>
 <span class="sourceLineNo">098</span>   * Class with parameters describing how to fail/die when in testing-context.<a name="line.98"></a>
 <span class="sourceLineNo">099</span>   */<a name="line.99"></a>
 <span class="sourceLineNo">100</span>  public static class Testing {<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    protected boolean killIfHasParent = true;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    protected boolean killIfSuspended = false;<a name="line.102"></a>
+<span class="sourceLineNo">101</span>    protected volatile boolean killIfHasParent = true;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    protected volatile boolean killIfSuspended = false;<a name="line.102"></a>
 <span class="sourceLineNo">103</span><a name="line.103"></a>
 <span class="sourceLineNo">104</span>    /**<a name="line.104"></a>
 <span class="sourceLineNo">105</span>     * Kill the PE BEFORE we store state to the WAL. Good for figuring out if a Procedure is<a name="line.105"></a>
 <span class="sourceLineNo">106</span>     * persisting all the state it needs to recover after a crash.<a name="line.106"></a>
 <span class="sourceLineNo">107</span>     */<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    protected boolean killBeforeStoreUpdate = false;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    protected boolean toggleKillBeforeStoreUpdate = false;<a name="line.109"></a>
+<span class="sourceLineNo">108</span>    protected volatile boolean killBeforeStoreUpdate = false;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    protected volatile boolean toggleKillBeforeStoreUpdate = false;<a name="line.109"></a>
 <span class="sourceLineNo">110</span><a name="line.110"></a>
 <span class="sourceLineNo">111</span>    /**<a name="line.111"></a>
 <span class="sourceLineNo">112</span>     * Set when we want to fail AFTER state has been stored into the WAL. Rarely used. HBASE-20978<a name="line.112"></a>
 <span class="sourceLineNo">113</span>     * is about a case where memory-state was being set after store to WAL where a crash could<a name="line.113"></a>
 <span class="sourceLineNo">114</span>     * cause us to get stuck. This flag allows killing at what was a vulnerable time.<a name="line.114"></a>
 <span class="sourceLineNo">115</span>     */<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    protected boolean killAfterStoreUpdate = false;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    protected boolean toggleKillAfterStoreUpdate = false;<a name="line.117"></a>
+<span class="sourceLineNo">116</span>    protected volatile boolean killAfterStoreUpdate = false;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    protected volatile boolean toggleKillAfterStoreUpdate = false;<a name="line.117"></a>
 <span class="sourceLineNo">118</span><a name="line.118"></a>
 <span class="sourceLineNo">119</span>    protected boolean shouldKillBeforeStoreUpdate() {<a name="line.119"></a>
 <span class="sourceLineNo">120</span>      final boolean kill = this.killBeforeStoreUpdate;<a name="line.120"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/6c9b936e/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/BaseRowProcessor.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/BaseRowProcessor.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/BaseRowProcessor.html
index 8cbd46f..d0578e9 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/BaseRowProcessor.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/BaseRowProcessor.html
@@ -26,7 +26,7 @@
 <span class="sourceLineNo">018</span>package org.apache.hadoop.hbase.regionserver;<a name="line.18"></a>
 <span class="sourceLineNo">019</span><a name="line.19"></a>
 <span class="sourceLineNo">020</span>import java.io.IOException;<a name="line.20"></a>
-<span class="sourceLineNo">021</span>import java.util.ArrayList;<a name="line.21"></a>
+<span class="sourceLineNo">021</span>import java.util.Collections;<a name="line.21"></a>
 <span class="sourceLineNo">022</span>import java.util.List;<a name="line.22"></a>
 <span class="sourceLineNo">023</span>import java.util.Locale;<a name="line.23"></a>
 <span class="sourceLineNo">024</span>import java.util.UUID;<a name="line.24"></a>
@@ -65,7 +65,7 @@
 <span class="sourceLineNo">057</span><a name="line.57"></a>
 <span class="sourceLineNo">058</span>  @Override<a name="line.58"></a>
 <span class="sourceLineNo">059</span>  public List&lt;UUID&gt; getClusterIds() {<a name="line.59"></a>
-<span class="sourceLineNo">060</span>    return new ArrayList&lt;&gt;();<a name="line.60"></a>
+<span class="sourceLineNo">060</span>    return Collections.emptyList();<a name="line.60"></a>
 <span class="sourceLineNo">061</span>  }<a name="line.61"></a>
 <span class="sourceLineNo">062</span><a name="line.62"></a>
 <span class="sourceLineNo">063</span>  @Override<a name="line.63"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/6c9b936e/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StripeStoreFileManager.CompactionOrFlushMergeCopy.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StripeStoreFileManager.CompactionOrFlushMergeCopy.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StripeStoreFileManager.CompactionOrFlushMergeCopy.html
index 88a820a..7332a83 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StripeStoreFileManager.CompactionOrFlushMergeCopy.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StripeStoreFileManager.CompactionOrFlushMergeCopy.html
@@ -1004,93 +1004,95 @@
 <span class="sourceLineNo">996</span><a name="line.996"></a>
 <span class="sourceLineNo">997</span>  @Override<a name="line.997"></a>
 <span class="sourceLineNo">998</span>  public List&lt;byte[]&gt; getStripeBoundaries() {<a name="line.998"></a>
-<span class="sourceLineNo">999</span>    if (this.state.stripeFiles.isEmpty()) return new ArrayList&lt;&gt;();<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>    ArrayList&lt;byte[]&gt; result = new ArrayList&lt;&gt;(this.state.stripeEndRows.length + 2);<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>    result.add(OPEN_KEY);<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>    Collections.addAll(result, this.state.stripeEndRows);<a name="line.1002"></a>
+<span class="sourceLineNo">999</span>    if (this.state.stripeFiles.isEmpty()) {<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>      return Collections.emptyList();<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>    }<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>    ArrayList&lt;byte[]&gt; result = new ArrayList&lt;&gt;(this.state.stripeEndRows.length + 2);<a name="line.1002"></a>
 <span class="sourceLineNo">1003</span>    result.add(OPEN_KEY);<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    return result;<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>  }<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span><a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>  @Override<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>  public ArrayList&lt;ImmutableList&lt;HStoreFile&gt;&gt; getStripes() {<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>    return this.state.stripeFiles;<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>  }<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span><a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>  @Override<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>  public int getStripeCount() {<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>    return this.state.stripeFiles.size();<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>  }<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span><a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>  @Override<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>  public Collection&lt;HStoreFile&gt; getUnneededFiles(long maxTs, List&lt;HStoreFile&gt; filesCompacting) {<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>    // 1) We can never get rid of the last file which has the maximum seqid in a stripe.<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>    // 2) Files that are not the latest can't become one due to (1), so the rest are fair game.<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>    State state = this.state;<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>    Collection&lt;HStoreFile&gt; expiredStoreFiles = null;<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>    for (ImmutableList&lt;HStoreFile&gt; stripe : state.stripeFiles) {<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>      expiredStoreFiles = findExpiredFiles(stripe, maxTs, filesCompacting, expiredStoreFiles);<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>    }<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>    return findExpiredFiles(state.level0Files, maxTs, filesCompacting, expiredStoreFiles);<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>  }<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span><a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>  private Collection&lt;HStoreFile&gt; findExpiredFiles(ImmutableList&lt;HStoreFile&gt; stripe, long maxTs,<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>      List&lt;HStoreFile&gt; filesCompacting, Collection&lt;HStoreFile&gt; expiredStoreFiles) {<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>    // Order by seqnum is reversed.<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>    for (int i = 1; i &lt; stripe.size(); ++i) {<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>      HStoreFile sf = stripe.get(i);<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>      synchronized (sf) {<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>        long fileTs = sf.getReader().getMaxTimestamp();<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>        if (fileTs &lt; maxTs &amp;&amp; !filesCompacting.contains(sf)) {<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>          LOG.info("Found an expired store file: " + sf.getPath() + " whose maxTimestamp is "<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>              + fileTs + ", which is below " + maxTs);<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>          if (expiredStoreFiles == null) {<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>            expiredStoreFiles = new ArrayList&lt;&gt;();<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>          }<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>          expiredStoreFiles.add(sf);<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>        }<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>      }<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>    }<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>    return expiredStoreFiles;<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>  }<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span><a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>  @Override<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>  public double getCompactionPressure() {<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>    State stateLocal = this.state;<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>    if (stateLocal.allFilesCached.size() &gt; blockingFileCount) {<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>      // just a hit to tell others that we have reached the blocking file count.<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>      return 2.0;<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>    }<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>    if (stateLocal.stripeFiles.isEmpty()) {<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>      return 0.0;<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>    }<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>    int blockingFilePerStripe = blockingFileCount / stateLocal.stripeFiles.size();<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>    // do not calculate L0 separately because data will be moved to stripe quickly and in most cases<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>    // we flush data to stripe directly.<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>    int delta = stateLocal.level0Files.isEmpty() ? 0 : 1;<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>    double max = 0.0;<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>    for (ImmutableList&lt;HStoreFile&gt; stripeFile : stateLocal.stripeFiles) {<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>      int stripeFileCount = stripeFile.size();<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>      double normCount =<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>          (double) (stripeFileCount + delta - config.getStripeCompactMinFiles())<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>              / (blockingFilePerStripe - config.getStripeCompactMinFiles());<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>      if (normCount &gt;= 1.0) {<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>        // This could happen if stripe is not split evenly. Do not return values that larger than<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>        // 1.0 because we have not reached the blocking file count actually.<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>        return 1.0;<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>      }<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>      if (normCount &gt; max) {<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>        max = normCount;<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>      }<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>    }<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>    return max;<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>  }<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span><a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>  @Override<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>  public Comparator&lt;HStoreFile&gt; getStoreFileComparator() {<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>    return StoreFileComparators.SEQ_ID;<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>  }<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>}<a name="line.1085"></a>
+<span class="sourceLineNo">1004</span>    Collections.addAll(result, this.state.stripeEndRows);<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>    result.add(OPEN_KEY);<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>    return result;<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>  }<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span><a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>  @Override<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>  public ArrayList&lt;ImmutableList&lt;HStoreFile&gt;&gt; getStripes() {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>    return this.state.stripeFiles;<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>  }<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span><a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>  @Override<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>  public int getStripeCount() {<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>    return this.state.stripeFiles.size();<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>  }<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span><a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>  @Override<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>  public Collection&lt;HStoreFile&gt; getUnneededFiles(long maxTs, List&lt;HStoreFile&gt; filesCompacting) {<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>    // 1) We can never get rid of the last file which has the maximum seqid in a stripe.<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>    // 2) Files that are not the latest can't become one due to (1), so the rest are fair game.<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>    State state = this.state;<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>    Collection&lt;HStoreFile&gt; expiredStoreFiles = null;<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>    for (ImmutableList&lt;HStoreFile&gt; stripe : state.stripeFiles) {<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>      expiredStoreFiles = findExpiredFiles(stripe, maxTs, filesCompacting, expiredStoreFiles);<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>    }<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>    return findExpiredFiles(state.level0Files, maxTs, filesCompacting, expiredStoreFiles);<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>  }<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span><a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>  private Collection&lt;HStoreFile&gt; findExpiredFiles(ImmutableList&lt;HStoreFile&gt; stripe, long maxTs,<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>      List&lt;HStoreFile&gt; filesCompacting, Collection&lt;HStoreFile&gt; expiredStoreFiles) {<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>    // Order by seqnum is reversed.<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>    for (int i = 1; i &lt; stripe.size(); ++i) {<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>      HStoreFile sf = stripe.get(i);<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>      synchronized (sf) {<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>        long fileTs = sf.getReader().getMaxTimestamp();<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>        if (fileTs &lt; maxTs &amp;&amp; !filesCompacting.contains(sf)) {<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>          LOG.info("Found an expired store file: " + sf.getPath() + " whose maxTimestamp is "<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>              + fileTs + ", which is below " + maxTs);<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>          if (expiredStoreFiles == null) {<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>            expiredStoreFiles = new ArrayList&lt;&gt;();<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>          }<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>          expiredStoreFiles.add(sf);<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>        }<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>      }<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>    }<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>    return expiredStoreFiles;<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>  }<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span><a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>  @Override<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>  public double getCompactionPressure() {<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>    State stateLocal = this.state;<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>    if (stateLocal.allFilesCached.size() &gt; blockingFileCount) {<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>      // just a hit to tell others that we have reached the blocking file count.<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>      return 2.0;<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>    }<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>    if (stateLocal.stripeFiles.isEmpty()) {<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>      return 0.0;<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>    }<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>    int blockingFilePerStripe = blockingFileCount / stateLocal.stripeFiles.size();<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>    // do not calculate L0 separately because data will be moved to stripe quickly and in most cases<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>    // we flush data to stripe directly.<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>    int delta = stateLocal.level0Files.isEmpty() ? 0 : 1;<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>    double max = 0.0;<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>    for (ImmutableList&lt;HStoreFile&gt; stripeFile : stateLocal.stripeFiles) {<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>      int stripeFileCount = stripeFile.size();<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>      double normCount =<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>          (double) (stripeFileCount + delta - config.getStripeCompactMinFiles())<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>              / (blockingFilePerStripe - config.getStripeCompactMinFiles());<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>      if (normCount &gt;= 1.0) {<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>        // This could happen if stripe is not split evenly. Do not return values that larger than<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>        // 1.0 because we have not reached the blocking file count actually.<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>        return 1.0;<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>      }<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>      if (normCount &gt; max) {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>        max = normCount;<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>      }<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>    }<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>    return max;<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>  }<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span><a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>  @Override<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>  public Comparator&lt;HStoreFile&gt; getStoreFileComparator() {<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>    return StoreFileComparators.SEQ_ID;<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>  }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>}<a name="line.1087"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/6c9b936e/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StripeStoreFileManager.KeyBeforeConcatenatedLists.Iterator.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StripeStoreFileManager.KeyBeforeConcatenatedLists.Iterator.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StripeStoreFileManager.KeyBeforeConcatenatedLists.Iterator.html
index 88a820a..7332a83 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StripeStoreFileManager.KeyBeforeConcatenatedLists.Iterator.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StripeStoreFileManager.KeyBeforeConcatenatedLists.Iterator.html
@@ -1004,93 +1004,95 @@
 <span class="sourceLineNo">996</span><a name="line.996"></a>
 <span class="sourceLineNo">997</span>  @Override<a name="line.997"></a>
 <span class="sourceLineNo">998</span>  public List&lt;byte[]&gt; getStripeBoundaries() {<a name="line.998"></a>
-<span class="sourceLineNo">999</span>    if (this.state.stripeFiles.isEmpty()) return new ArrayList&lt;&gt;();<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>    ArrayList&lt;byte[]&gt; result = new ArrayList&lt;&gt;(this.state.stripeEndRows.length + 2);<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>    result.add(OPEN_KEY);<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>    Collections.addAll(result, this.state.stripeEndRows);<a name="line.1002"></a>
+<span class="sourceLineNo">999</span>    if (this.state.stripeFiles.isEmpty()) {<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>      return Collections.emptyList();<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>    }<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>    ArrayList&lt;byte[]&gt; result = new ArrayList&lt;&gt;(this.state.stripeEndRows.length + 2);<a name="line.1002"></a>
 <span class="sourceLineNo">1003</span>    result.add(OPEN_KEY);<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    return result;<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>  }<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span><a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>  @Override<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>  public ArrayList&lt;ImmutableList&lt;HStoreFile&gt;&gt; getStripes() {<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>    return this.state.stripeFiles;<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>  }<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span><a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>  @Override<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>  public int getStripeCount() {<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>    return this.state.stripeFiles.size();<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>  }<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span><a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>  @Override<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>  public Collection&lt;HStoreFile&gt; getUnneededFiles(long maxTs, List&lt;HStoreFile&gt; filesCompacting) {<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>    // 1) We can never get rid of the last file which has the maximum seqid in a stripe.<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>    // 2) Files that are not the latest can't become one due to (1), so the rest are fair game.<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>    State state = this.state;<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>    Collection&lt;HStoreFile&gt; expiredStoreFiles = null;<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>    for (ImmutableList&lt;HStoreFile&gt; stripe : state.stripeFiles) {<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>      expiredStoreFiles = findExpiredFiles(stripe, maxTs, filesCompacting, expiredStoreFiles);<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>    }<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>    return findExpiredFiles(state.level0Files, maxTs, filesCompacting, expiredStoreFiles);<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>  }<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span><a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>  private Collection&lt;HStoreFile&gt; findExpiredFiles(ImmutableList&lt;HStoreFile&gt; stripe, long maxTs,<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>      List&lt;HStoreFile&gt; filesCompacting, Collection&lt;HStoreFile&gt; expiredStoreFiles) {<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>    // Order by seqnum is reversed.<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>    for (int i = 1; i &lt; stripe.size(); ++i) {<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>      HStoreFile sf = stripe.get(i);<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>      synchronized (sf) {<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>        long fileTs = sf.getReader().getMaxTimestamp();<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>        if (fileTs &lt; maxTs &amp;&amp; !filesCompacting.contains(sf)) {<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>          LOG.info("Found an expired store file: " + sf.getPath() + " whose maxTimestamp is "<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>              + fileTs + ", which is below " + maxTs);<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>          if (expiredStoreFiles == null) {<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>            expiredStoreFiles = new ArrayList&lt;&gt;();<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>          }<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>          expiredStoreFiles.add(sf);<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>        }<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>      }<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>    }<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>    return expiredStoreFiles;<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>  }<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span><a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>  @Override<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>  public double getCompactionPressure() {<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>    State stateLocal = this.state;<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>    if (stateLocal.allFilesCached.size() &gt; blockingFileCount) {<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>      // just a hit to tell others that we have reached the blocking file count.<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>      return 2.0;<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>    }<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>    if (stateLocal.stripeFiles.isEmpty()) {<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>      return 0.0;<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>    }<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>    int blockingFilePerStripe = blockingFileCount / stateLocal.stripeFiles.size();<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>    // do not calculate L0 separately because data will be moved to stripe quickly and in most cases<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>    // we flush data to stripe directly.<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>    int delta = stateLocal.level0Files.isEmpty() ? 0 : 1;<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>    double max = 0.0;<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>    for (ImmutableList&lt;HStoreFile&gt; stripeFile : stateLocal.stripeFiles) {<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>      int stripeFileCount = stripeFile.size();<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>      double normCount =<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>          (double) (stripeFileCount + delta - config.getStripeCompactMinFiles())<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>              / (blockingFilePerStripe - config.getStripeCompactMinFiles());<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>      if (normCount &gt;= 1.0) {<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>        // This could happen if stripe is not split evenly. Do not return values that larger than<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>        // 1.0 because we have not reached the blocking file count actually.<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>        return 1.0;<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>      }<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>      if (normCount &gt; max) {<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>        max = normCount;<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>      }<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>    }<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>    return max;<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>  }<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span><a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>  @Override<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>  public Comparator&lt;HStoreFile&gt; getStoreFileComparator() {<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>    return StoreFileComparators.SEQ_ID;<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>  }<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>}<a name="line.1085"></a>
+<span class="sourceLineNo">1004</span>    Collections.addAll(result, this.state.stripeEndRows);<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>    result.add(OPEN_KEY);<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>    return result;<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>  }<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span><a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>  @Override<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>  public ArrayList&lt;ImmutableList&lt;HStoreFile&gt;&gt; getStripes() {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>    return this.state.stripeFiles;<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>  }<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span><a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>  @Override<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>  public int getStripeCount() {<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>    return this.state.stripeFiles.size();<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>  }<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span><a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>  @Override<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>  public Collection&lt;HStoreFile&gt; getUnneededFiles(long maxTs, List&lt;HStoreFile&gt; filesCompacting) {<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>    // 1) We can never get rid of the last file which has the maximum seqid in a stripe.<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>    // 2) Files that are not the latest can't become one due to (1), so the rest are fair game.<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>    State state = this.state;<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>    Collection&lt;HStoreFile&gt; expiredStoreFiles = null;<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>    for (ImmutableList&lt;HStoreFile&gt; stripe : state.stripeFiles) {<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>      expiredStoreFiles = findExpiredFiles(stripe, maxTs, filesCompacting, expiredStoreFiles);<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>    }<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>    return findExpiredFiles(state.level0Files, maxTs, filesCompacting, expiredStoreFiles);<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>  }<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span><a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>  private Collection&lt;HStoreFile&gt; findExpiredFiles(ImmutableList&lt;HStoreFile&gt; stripe, long maxTs,<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>      List&lt;HStoreFile&gt; filesCompacting, Collection&lt;HStoreFile&gt; expiredStoreFiles) {<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>    // Order by seqnum is reversed.<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>    for (int i = 1; i &lt; stripe.size(); ++i) {<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>      HStoreFile sf = stripe.get(i);<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>      synchronized (sf) {<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>        long fileTs = sf.getReader().getMaxTimestamp();<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>        if (fileTs &lt; maxTs &amp;&amp; !filesCompacting.contains(sf)) {<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>          LOG.info("Found an expired store file: " + sf.getPath() + " whose maxTimestamp is "<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>              + fileTs + ", which is below " + maxTs);<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>          if (expiredStoreFiles == null) {<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>            expiredStoreFiles = new ArrayList&lt;&gt;();<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>          }<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>          expiredStoreFiles.add(sf);<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>        }<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>      }<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>    }<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>    return expiredStoreFiles;<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>  }<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span><a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>  @Override<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>  public double getCompactionPressure() {<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>    State stateLocal = this.state;<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>    if (stateLocal.allFilesCached.size() &gt; blockingFileCount) {<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>      // just a hit to tell others that we have reached the blocking file count.<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>      return 2.0;<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>    }<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>    if (stateLocal.stripeFiles.isEmpty()) {<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>      return 0.0;<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>    }<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>    int blockingFilePerStripe = blockingFileCount / stateLocal.stripeFiles.size();<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>    // do not calculate L0 separately because data will be moved to stripe quickly and in most cases<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>    // we flush data to stripe directly.<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>    int delta = stateLocal.level0Files.isEmpty() ? 0 : 1;<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>    double max = 0.0;<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>    for (ImmutableList&lt;HStoreFile&gt; stripeFile : stateLocal.stripeFiles) {<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>      int stripeFileCount = stripeFile.size();<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>      double normCount =<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>          (double) (stripeFileCount + delta - config.getStripeCompactMinFiles())<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>              / (blockingFilePerStripe - config.getStripeCompactMinFiles());<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>      if (normCount &gt;= 1.0) {<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>        // This could happen if stripe is not split evenly. Do not return values that larger than<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>        // 1.0 because we have not reached the blocking file count actually.<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>        return 1.0;<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>      }<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>      if (normCount &gt; max) {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>        max = normCount;<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>      }<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>    }<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>    return max;<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>  }<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span><a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>  @Override<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>  public Comparator&lt;HStoreFile&gt; getStoreFileComparator() {<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>    return StoreFileComparators.SEQ_ID;<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>  }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>}<a name="line.1087"></a>