http://git-wip-us.apache.org/repos/asf/hbase-site/blob/92a26cfb/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MemStoreSize.html
----------------------------------------------------------------------
diff --git 
a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MemStoreSize.html 
b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MemStoreSize.html
index cdc0ca3..f434f88 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MemStoreSize.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MemStoreSize.html
@@ -27,109 +27,99 @@
 <span class="sourceLineNo">019</span><a name="line.19"></a>
 <span class="sourceLineNo">020</span>import 
org.apache.hadoop.hbase.HBaseInterfaceAudience;<a name="line.20"></a>
 <span class="sourceLineNo">021</span>import 
org.apache.yetus.audience.InterfaceAudience;<a name="line.21"></a>
-<span class="sourceLineNo">022</span><a name="line.22"></a>
-<span class="sourceLineNo">023</span>/**<a name="line.23"></a>
-<span class="sourceLineNo">024</span> * Reports the data size part and total 
heap space occupied by the MemStore.<a name="line.24"></a>
-<span class="sourceLineNo">025</span> * Read-only.<a name="line.25"></a>
+<span class="sourceLineNo">022</span>/**<a name="line.22"></a>
+<span class="sourceLineNo">023</span> * Data structure of three longs.<a 
name="line.23"></a>
+<span class="sourceLineNo">024</span> * Convenient package in which to carry 
current state of three counters.<a name="line.24"></a>
+<span class="sourceLineNo">025</span> * &lt;p&gt;Immutable!&lt;/p&gt;<a 
name="line.25"></a>
 <span class="sourceLineNo">026</span> * @see MemStoreSizing<a 
name="line.26"></a>
 <span class="sourceLineNo">027</span> */<a name="line.27"></a>
 <span 
class="sourceLineNo">028</span>@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.COPROC)<a
 name="line.28"></a>
 <span class="sourceLineNo">029</span>public class MemStoreSize {<a 
name="line.29"></a>
-<span class="sourceLineNo">030</span>  // MemStore size tracks 3 sizes:<a 
name="line.30"></a>
-<span class="sourceLineNo">031</span>  // (1) data size: the aggregated size 
of all key-value not including meta data such as<a name="line.31"></a>
-<span class="sourceLineNo">032</span>  // index, time range etc.<a 
name="line.32"></a>
-<span class="sourceLineNo">033</span>  // (2) heap size: the aggregated size 
of all data that is allocated on-heap including all<a name="line.33"></a>
-<span class="sourceLineNo">034</span>  // key-values that reside on-heap and 
the metadata that resides on-heap<a name="line.34"></a>
-<span class="sourceLineNo">035</span>  // (3) off-heap size: the aggregated 
size of all data that is allocated off-heap including all<a name="line.35"></a>
-<span class="sourceLineNo">036</span>  // key-values that reside off-heap and 
the metadata that resides off-heap<a name="line.36"></a>
-<span class="sourceLineNo">037</span>  //<a name="line.37"></a>
-<span class="sourceLineNo">038</span>  // 3 examples to illustrate their 
usage:<a name="line.38"></a>
-<span class="sourceLineNo">039</span>  // Consider a store with 100MB of 
key-values allocated on-heap and 20MB of metadata allocated<a 
name="line.39"></a>
-<span class="sourceLineNo">040</span>  // on-heap. The counters are &lt;100MB, 
120MB, 0&gt;, respectively.<a name="line.40"></a>
-<span class="sourceLineNo">041</span>  // Consider a store with 100MB of 
key-values allocated off-heap and 20MB of metadata<a name="line.41"></a>
-<span class="sourceLineNo">042</span>  // allocated on-heap (e.g, CAM index). 
The counters are &lt;100MB, 20MB, 100MB&gt;, respectively.<a name="line.42"></a>
-<span class="sourceLineNo">043</span>  // Consider a store with 100MB of 
key-values from which 95MB are allocated off-heap and 5MB<a name="line.43"></a>
-<span class="sourceLineNo">044</span>  // are allocated on-heap (e.g., due to 
upserts) and 20MB of metadata from which 15MB allocated<a name="line.44"></a>
-<span class="sourceLineNo">045</span>  // off-heap (e.g, CCM index) and 5MB 
allocated on-heap (e.g, CSLM index in active).<a name="line.45"></a>
-<span class="sourceLineNo">046</span>  // The counters are &lt;100MB, 10MB, 
110MB&gt;, respectively.<a name="line.46"></a>
-<span class="sourceLineNo">047</span><a name="line.47"></a>
-<span class="sourceLineNo">048</span>  /**<a name="line.48"></a>
-<span class="sourceLineNo">049</span>   *'dataSize' tracks the Cell's data 
bytes size alone (Key bytes, value bytes). A cell's data can<a 
name="line.49"></a>
-<span class="sourceLineNo">050</span>   * be in on heap or off heap area 
depending on the MSLAB and its configuration to be using on heap<a 
name="line.50"></a>
-<span class="sourceLineNo">051</span>   * or off heap LABs<a 
name="line.51"></a>
-<span class="sourceLineNo">052</span>   */<a name="line.52"></a>
-<span class="sourceLineNo">053</span>  protected volatile long dataSize;<a 
name="line.53"></a>
-<span class="sourceLineNo">054</span><a name="line.54"></a>
-<span class="sourceLineNo">055</span>  /** 'heapSize' tracks all Cell's heap 
size occupancy. This will include Cell POJO heap overhead.<a name="line.55"></a>
-<span class="sourceLineNo">056</span>   * When Cells in on heap area, this 
will include the cells data size as well.<a name="line.56"></a>
-<span class="sourceLineNo">057</span>   */<a name="line.57"></a>
-<span class="sourceLineNo">058</span>  protected volatile long heapSize;<a 
name="line.58"></a>
-<span class="sourceLineNo">059</span><a name="line.59"></a>
-<span class="sourceLineNo">060</span>  /** off-heap size: the aggregated size 
of all data that is allocated off-heap including all<a name="line.60"></a>
-<span class="sourceLineNo">061</span>   * key-values that reside off-heap and 
the metadata that resides off-heap<a name="line.61"></a>
-<span class="sourceLineNo">062</span>   */<a name="line.62"></a>
-<span class="sourceLineNo">063</span>  protected volatile long offHeapSize;<a 
name="line.63"></a>
-<span class="sourceLineNo">064</span><a name="line.64"></a>
-<span class="sourceLineNo">065</span>  public MemStoreSize() {<a 
name="line.65"></a>
-<span class="sourceLineNo">066</span>    this(0L, 0L, 0L);<a 
name="line.66"></a>
-<span class="sourceLineNo">067</span>  }<a name="line.67"></a>
-<span class="sourceLineNo">068</span><a name="line.68"></a>
-<span class="sourceLineNo">069</span>  public MemStoreSize(long dataSize, long 
heapSize, long offHeapSize) {<a name="line.69"></a>
-<span class="sourceLineNo">070</span>    this.dataSize = dataSize;<a 
name="line.70"></a>
-<span class="sourceLineNo">071</span>    this.heapSize = heapSize;<a 
name="line.71"></a>
-<span class="sourceLineNo">072</span>    this.offHeapSize = offHeapSize;<a 
name="line.72"></a>
-<span class="sourceLineNo">073</span>  }<a name="line.73"></a>
-<span class="sourceLineNo">074</span><a name="line.74"></a>
-<span class="sourceLineNo">075</span>  protected MemStoreSize(MemStoreSize 
memStoreSize) {<a name="line.75"></a>
-<span class="sourceLineNo">076</span>    this.dataSize = 
memStoreSize.dataSize;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>    this.heapSize = 
memStoreSize.heapSize;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>    this.offHeapSize = 
memStoreSize.offHeapSize;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>  }<a name="line.79"></a>
-<span class="sourceLineNo">080</span>  public boolean isEmpty() {<a 
name="line.80"></a>
-<span class="sourceLineNo">081</span>    return this.dataSize == 0 &amp;&amp; 
this.heapSize == 0 &amp;&amp; this.offHeapSize == 0;<a name="line.81"></a>
+<span class="sourceLineNo">030</span>  /**<a name="line.30"></a>
+<span class="sourceLineNo">031</span>   *'dataSize' tracks the Cell's data 
bytes size alone (Key bytes, value bytes). A cell's data can<a 
name="line.31"></a>
+<span class="sourceLineNo">032</span>   * be in on heap or off heap area 
depending on the MSLAB and its configuration to be using on<a 
name="line.32"></a>
+<span class="sourceLineNo">033</span>   * heap or off heap LABs<a 
name="line.33"></a>
+<span class="sourceLineNo">034</span>   */<a name="line.34"></a>
+<span class="sourceLineNo">035</span>  private final long dataSize;<a 
name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>  /**'getHeapSize' tracks all Cell's heap 
size occupancy. This will include Cell POJO heap overhead.<a name="line.37"></a>
+<span class="sourceLineNo">038</span>   * When Cells in on heap area, this 
will include the cells data size as well.<a name="line.38"></a>
+<span class="sourceLineNo">039</span>   */<a name="line.39"></a>
+<span class="sourceLineNo">040</span>  private final long heapSize;<a 
name="line.40"></a>
+<span class="sourceLineNo">041</span><a name="line.41"></a>
+<span class="sourceLineNo">042</span>  /** off-heap size: the aggregated size 
of all data that is allocated off-heap including all<a name="line.42"></a>
+<span class="sourceLineNo">043</span>   * key-values that reside off-heap and 
the metadata that resides off-heap<a name="line.43"></a>
+<span class="sourceLineNo">044</span>   */<a name="line.44"></a>
+<span class="sourceLineNo">045</span>  private final long offHeapSize;<a 
name="line.45"></a>
+<span class="sourceLineNo">046</span><a name="line.46"></a>
+<span class="sourceLineNo">047</span>  /**<a name="line.47"></a>
+<span class="sourceLineNo">048</span>   * Package private constructor.<a 
name="line.48"></a>
+<span class="sourceLineNo">049</span>   */<a name="line.49"></a>
+<span class="sourceLineNo">050</span>  MemStoreSize() {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>    this(0L, 0L, 0L);<a 
name="line.51"></a>
+<span class="sourceLineNo">052</span>  }<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>  /**<a name="line.54"></a>
+<span class="sourceLineNo">055</span>   * Package private constructor.<a 
name="line.55"></a>
+<span class="sourceLineNo">056</span>   */<a name="line.56"></a>
+<span class="sourceLineNo">057</span>  MemStoreSize(long dataSize, long 
heapSize, long offHeapSize) {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>    this.dataSize = dataSize;<a 
name="line.58"></a>
+<span class="sourceLineNo">059</span>    this.heapSize = heapSize;<a 
name="line.59"></a>
+<span class="sourceLineNo">060</span>    this.offHeapSize = offHeapSize;<a 
name="line.60"></a>
+<span class="sourceLineNo">061</span>  }<a name="line.61"></a>
+<span class="sourceLineNo">062</span><a name="line.62"></a>
+<span class="sourceLineNo">063</span>  /**<a name="line.63"></a>
+<span class="sourceLineNo">064</span>   * Package private constructor.<a 
name="line.64"></a>
+<span class="sourceLineNo">065</span>   */<a name="line.65"></a>
+<span class="sourceLineNo">066</span>  MemStoreSize(MemStoreSize memStoreSize) 
{<a name="line.66"></a>
+<span class="sourceLineNo">067</span>    this.dataSize = 
memStoreSize.getDataSize();<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    this.heapSize = 
memStoreSize.getHeapSize();<a name="line.68"></a>
+<span class="sourceLineNo">069</span>    this.offHeapSize = 
memStoreSize.getOffHeapSize();<a name="line.69"></a>
+<span class="sourceLineNo">070</span>  }<a name="line.70"></a>
+<span class="sourceLineNo">071</span><a name="line.71"></a>
+<span class="sourceLineNo">072</span>  public boolean isEmpty() {<a 
name="line.72"></a>
+<span class="sourceLineNo">073</span>    return this.dataSize == 0 &amp;&amp; 
this.heapSize == 0 &amp;&amp; this.offHeapSize == 0;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>  }<a name="line.74"></a>
+<span class="sourceLineNo">075</span><a name="line.75"></a>
+<span class="sourceLineNo">076</span>  public long getDataSize() {<a 
name="line.76"></a>
+<span class="sourceLineNo">077</span>    return this.dataSize;<a 
name="line.77"></a>
+<span class="sourceLineNo">078</span>  }<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>  public long getHeapSize() {<a 
name="line.80"></a>
+<span class="sourceLineNo">081</span>    return this.heapSize;<a 
name="line.81"></a>
 <span class="sourceLineNo">082</span>  }<a name="line.82"></a>
 <span class="sourceLineNo">083</span><a name="line.83"></a>
-<span class="sourceLineNo">084</span>  public long getDataSize() {<a 
name="line.84"></a>
-<span class="sourceLineNo">085</span>    return this.dataSize;<a 
name="line.85"></a>
+<span class="sourceLineNo">084</span>  public long getOffHeapSize() {<a 
name="line.84"></a>
+<span class="sourceLineNo">085</span>    return this.offHeapSize;<a 
name="line.85"></a>
 <span class="sourceLineNo">086</span>  }<a name="line.86"></a>
 <span class="sourceLineNo">087</span><a name="line.87"></a>
-<span class="sourceLineNo">088</span>  public long getHeapSize() {<a 
name="line.88"></a>
-<span class="sourceLineNo">089</span>    return this.heapSize;<a 
name="line.89"></a>
-<span class="sourceLineNo">090</span>  }<a name="line.90"></a>
-<span class="sourceLineNo">091</span><a name="line.91"></a>
-<span class="sourceLineNo">092</span>  public long getOffHeapSize() {<a 
name="line.92"></a>
-<span class="sourceLineNo">093</span>    return this.offHeapSize;<a 
name="line.93"></a>
-<span class="sourceLineNo">094</span>  }<a name="line.94"></a>
-<span class="sourceLineNo">095</span><a name="line.95"></a>
-<span class="sourceLineNo">096</span>  @Override<a name="line.96"></a>
-<span class="sourceLineNo">097</span>  public boolean equals(Object obj) {<a 
name="line.97"></a>
-<span class="sourceLineNo">098</span>    if (obj == null) {<a 
name="line.98"></a>
-<span class="sourceLineNo">099</span>      return false;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    }<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    if (!(obj instanceof MemStoreSize)) 
{<a name="line.101"></a>
-<span class="sourceLineNo">102</span>      return false;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    }<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    MemStoreSize other = (MemStoreSize) 
obj;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    return this.dataSize == 
other.dataSize<a name="line.105"></a>
-<span class="sourceLineNo">106</span>        &amp;&amp; this.heapSize == 
other.heapSize<a name="line.106"></a>
-<span class="sourceLineNo">107</span>        &amp;&amp; this.offHeapSize == 
other.offHeapSize;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>  }<a name="line.108"></a>
-<span class="sourceLineNo">109</span><a name="line.109"></a>
-<span class="sourceLineNo">110</span>  @Override<a name="line.110"></a>
-<span class="sourceLineNo">111</span>  public int hashCode() {<a 
name="line.111"></a>
-<span class="sourceLineNo">112</span>    long h = 13 * this.dataSize;<a 
name="line.112"></a>
-<span class="sourceLineNo">113</span>    h = h + 14 * this.heapSize;<a 
name="line.113"></a>
-<span class="sourceLineNo">114</span>    h = h + 15 * this.offHeapSize;<a 
name="line.114"></a>
-<span class="sourceLineNo">115</span>    return (int) h;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>  }<a name="line.116"></a>
-<span class="sourceLineNo">117</span><a name="line.117"></a>
-<span class="sourceLineNo">118</span>  @Override<a name="line.118"></a>
-<span class="sourceLineNo">119</span>  public String toString() {<a 
name="line.119"></a>
-<span class="sourceLineNo">120</span>    return "dataSize=" + this.dataSize<a 
name="line.120"></a>
-<span class="sourceLineNo">121</span>        + " , heapSize=" + 
this.heapSize<a name="line.121"></a>
-<span class="sourceLineNo">122</span>        + " , offHeapSize=" + 
this.offHeapSize;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>  }<a name="line.123"></a>
-<span class="sourceLineNo">124</span>}<a name="line.124"></a>
+<span class="sourceLineNo">088</span>  @Override<a name="line.88"></a>
+<span class="sourceLineNo">089</span>  public boolean equals(Object obj) {<a 
name="line.89"></a>
+<span class="sourceLineNo">090</span>    if (obj == null) {<a 
name="line.90"></a>
+<span class="sourceLineNo">091</span>      return false;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>    }<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    if (!(obj instanceof MemStoreSize)) 
{<a name="line.93"></a>
+<span class="sourceLineNo">094</span>      return false;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>    }<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    MemStoreSize other = 
(MemStoreSize)obj;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    return this.dataSize == 
other.dataSize &amp;&amp; this.heapSize == other.heapSize &amp;&amp;<a 
name="line.97"></a>
+<span class="sourceLineNo">098</span>        this.offHeapSize == 
other.offHeapSize;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>  }<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>  @Override<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  public int hashCode() {<a 
name="line.102"></a>
+<span class="sourceLineNo">103</span>    long h = 31 * this.dataSize;<a 
name="line.103"></a>
+<span class="sourceLineNo">104</span>    h = h + 31 * this.heapSize;<a 
name="line.104"></a>
+<span class="sourceLineNo">105</span>    h = h + 31 * this.offHeapSize;<a 
name="line.105"></a>
+<span class="sourceLineNo">106</span>    return (int) h;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>  }<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span>  @Override<a name="line.109"></a>
+<span class="sourceLineNo">110</span>  public String toString() {<a 
name="line.110"></a>
+<span class="sourceLineNo">111</span>    return "dataSize=" + this.dataSize + 
", getHeapSize=" + this.heapSize +<a name="line.111"></a>
+<span class="sourceLineNo">112</span>        ", getOffHeapSize=" + 
this.offHeapSize;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>  }<a name="line.113"></a>
+<span class="sourceLineNo">114</span>}<a name="line.114"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/92a26cfb/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MemStoreSizing.html
----------------------------------------------------------------------
diff --git 
a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MemStoreSizing.html 
b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MemStoreSizing.html
index 9ec5131..9fa1077 100644
--- 
a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MemStoreSizing.html
+++ 
b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MemStoreSizing.html
@@ -29,64 +29,99 @@
 <span class="sourceLineNo">021</span><a name="line.21"></a>
 <span class="sourceLineNo">022</span>/**<a name="line.22"></a>
 <span class="sourceLineNo">023</span> * Accounting of current heap and data 
sizes.<a name="line.23"></a>
-<span class="sourceLineNo">024</span> * Allows read/write on data/heap size as 
opposed to {@Link MemStoreSize} which is read-only.<a name="line.24"></a>
-<span class="sourceLineNo">025</span> * For internal use.<a name="line.25"></a>
-<span class="sourceLineNo">026</span> * @see MemStoreSize<a name="line.26"></a>
-<span class="sourceLineNo">027</span> */<a name="line.27"></a>
-<span class="sourceLineNo">028</span>@InterfaceAudience.Private<a 
name="line.28"></a>
-<span class="sourceLineNo">029</span>public class MemStoreSizing extends 
MemStoreSize {<a name="line.29"></a>
-<span class="sourceLineNo">030</span>  public static final MemStoreSizing DUD 
= new MemStoreSizing() {<a name="line.30"></a>
-<span class="sourceLineNo">031</span><a name="line.31"></a>
-<span class="sourceLineNo">032</span>    @Override public void 
incMemStoreSize(long dataSizeDelta, long heapSizeDelta,<a name="line.32"></a>
-<span class="sourceLineNo">033</span>        long offHeapSizeDelta) {<a 
name="line.33"></a>
-<span class="sourceLineNo">034</span>      throw new RuntimeException("I'm a 
dud, you can't use me!");<a name="line.34"></a>
-<span class="sourceLineNo">035</span>    }<a name="line.35"></a>
-<span class="sourceLineNo">036</span><a name="line.36"></a>
-<span class="sourceLineNo">037</span>    @Override public void 
decMemStoreSize(long dataSizeDelta, long heapSizeDelta,<a name="line.37"></a>
-<span class="sourceLineNo">038</span>        long offHeapSizeDelta) {<a 
name="line.38"></a>
-<span class="sourceLineNo">039</span>      throw new RuntimeException("I'm a 
dud, you can't use me!");<a name="line.39"></a>
-<span class="sourceLineNo">040</span>    }<a name="line.40"></a>
-<span class="sourceLineNo">041</span>  };<a name="line.41"></a>
-<span class="sourceLineNo">042</span><a name="line.42"></a>
-<span class="sourceLineNo">043</span>  public MemStoreSizing() {<a 
name="line.43"></a>
-<span class="sourceLineNo">044</span>    super();<a name="line.44"></a>
-<span class="sourceLineNo">045</span>  }<a name="line.45"></a>
-<span class="sourceLineNo">046</span><a name="line.46"></a>
-<span class="sourceLineNo">047</span>  public MemStoreSizing(long dataSize, 
long heapSize, long offHeapSize) {<a name="line.47"></a>
-<span class="sourceLineNo">048</span>    super(dataSize, heapSize, 
offHeapSize);<a name="line.48"></a>
-<span class="sourceLineNo">049</span>  }<a name="line.49"></a>
-<span class="sourceLineNo">050</span><a name="line.50"></a>
-<span class="sourceLineNo">051</span>  public MemStoreSizing(MemStoreSize 
memStoreSize) {<a name="line.51"></a>
-<span class="sourceLineNo">052</span>    super(memStoreSize);<a 
name="line.52"></a>
-<span class="sourceLineNo">053</span>  }<a name="line.53"></a>
-<span class="sourceLineNo">054</span><a name="line.54"></a>
-<span class="sourceLineNo">055</span>  public void incMemStoreSize(long 
dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a 
name="line.55"></a>
-<span class="sourceLineNo">056</span>    this.dataSize += dataSizeDelta;<a 
name="line.56"></a>
-<span class="sourceLineNo">057</span>    this.heapSize += heapSizeDelta;<a 
name="line.57"></a>
-<span class="sourceLineNo">058</span>    this.offHeapSize += 
offHeapSizeDelta;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>  }<a name="line.59"></a>
-<span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span>  public void 
incMemStoreSize(MemStoreSize delta) {<a name="line.61"></a>
-<span class="sourceLineNo">062</span>    incMemStoreSize(delta.getDataSize(), 
delta.getHeapSize(), delta.getOffHeapSize());<a name="line.62"></a>
-<span class="sourceLineNo">063</span>  }<a name="line.63"></a>
-<span class="sourceLineNo">064</span><a name="line.64"></a>
-<span class="sourceLineNo">065</span>  public void decMemStoreSize(long 
dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a 
name="line.65"></a>
-<span class="sourceLineNo">066</span>    this.dataSize -= dataSizeDelta;<a 
name="line.66"></a>
-<span class="sourceLineNo">067</span>    this.heapSize -= heapSizeDelta;<a 
name="line.67"></a>
-<span class="sourceLineNo">068</span>    this.offHeapSize -= 
offHeapSizeDelta;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>  }<a name="line.69"></a>
-<span class="sourceLineNo">070</span><a name="line.70"></a>
-<span class="sourceLineNo">071</span>  public void 
decMemStoreSize(MemStoreSize delta) {<a name="line.71"></a>
-<span class="sourceLineNo">072</span>    decMemStoreSize(delta.getDataSize(), 
delta.getHeapSize(), delta.getOffHeapSize());<a name="line.72"></a>
-<span class="sourceLineNo">073</span>  }<a name="line.73"></a>
-<span class="sourceLineNo">074</span><a name="line.74"></a>
-<span class="sourceLineNo">075</span>  public void empty() {<a 
name="line.75"></a>
-<span class="sourceLineNo">076</span>    this.dataSize = 0L;<a 
name="line.76"></a>
-<span class="sourceLineNo">077</span>    this.heapSize = 0L;<a 
name="line.77"></a>
-<span class="sourceLineNo">078</span>    this.offHeapSize = 0L;<a 
name="line.78"></a>
-<span class="sourceLineNo">079</span>  }<a name="line.79"></a>
-<span class="sourceLineNo">080</span><a name="line.80"></a>
-<span class="sourceLineNo">081</span>}<a name="line.81"></a>
+<span class="sourceLineNo">024</span> * Tracks 3 sizes:<a name="line.24"></a>
+<span class="sourceLineNo">025</span> * &lt;ol&gt;<a name="line.25"></a>
+<span class="sourceLineNo">026</span> * &lt;li&gt;&lt;/li&gt;data size: the 
aggregated size of all key-value not including meta data such as<a 
name="line.26"></a>
+<span class="sourceLineNo">027</span> * index, time range etc.<a 
name="line.27"></a>
+<span class="sourceLineNo">028</span> * &lt;/li&gt;<a name="line.28"></a>
+<span class="sourceLineNo">029</span> * &lt;li&gt;heap size: the aggregated 
size of all data that is allocated on-heap including all<a name="line.29"></a>
+<span class="sourceLineNo">030</span> * key-values that reside on-heap and the 
metadata that resides on-heap<a name="line.30"></a>
+<span class="sourceLineNo">031</span> * &lt;/li&gt;<a name="line.31"></a>
+<span class="sourceLineNo">032</span> * &lt;li&gt;&lt;/li&gt;off-heap size: 
the aggregated size of all data that is allocated off-heap including all<a 
name="line.32"></a>
+<span class="sourceLineNo">033</span> * key-values that reside off-heap and 
the metadata that resides off-heap<a name="line.33"></a>
+<span class="sourceLineNo">034</span> * &lt;/li&gt;<a name="line.34"></a>
+<span class="sourceLineNo">035</span> * &lt;/ol&gt;<a name="line.35"></a>
+<span class="sourceLineNo">036</span> *<a name="line.36"></a>
+<span class="sourceLineNo">037</span> * 3 examples to illustrate their 
usage:<a name="line.37"></a>
+<span class="sourceLineNo">038</span> * &lt;p&gt;<a name="line.38"></a>
+<span class="sourceLineNo">039</span> * Consider a store with 100MB of 
key-values allocated on-heap and 20MB of metadata allocated<a 
name="line.39"></a>
+<span class="sourceLineNo">040</span> * on-heap. The counters are &lt;100MB, 
120MB, 0&gt;, respectively.<a name="line.40"></a>
+<span class="sourceLineNo">041</span> * &lt;/p&gt;<a name="line.41"></a>
+<span class="sourceLineNo">042</span> * &lt;p&gt;Consider a store with 100MB 
of key-values allocated off-heap and 20MB of metadata<a name="line.42"></a>
+<span class="sourceLineNo">043</span> * allocated on-heap (e.g, CAM index). 
The counters are &lt;100MB, 20MB, 100MB&gt;, respectively.<a name="line.43"></a>
+<span class="sourceLineNo">044</span> * &lt;/p&gt;<a name="line.44"></a>
+<span class="sourceLineNo">045</span> * &lt;p&gt;<a name="line.45"></a>
+<span class="sourceLineNo">046</span> * Consider a store with 100MB of 
key-values from which 95MB are allocated off-heap and 5MB<a name="line.46"></a>
+<span class="sourceLineNo">047</span> * are allocated on-heap (e.g., due to 
upserts) and 20MB of metadata from which 15MB allocated<a name="line.47"></a>
+<span class="sourceLineNo">048</span> * off-heap (e.g, CCM index) and 5MB 
allocated on-heap (e.g, CSLM index in active).<a name="line.48"></a>
+<span class="sourceLineNo">049</span> * The counters are &lt;100MB, 10MB, 
110MB&gt;, respectively.<a name="line.49"></a>
+<span class="sourceLineNo">050</span> * &lt;/p&gt;<a name="line.50"></a>
+<span class="sourceLineNo">051</span> *<a name="line.51"></a>
+<span class="sourceLineNo">052</span> * Like {@link TimeRangeTracker}, it has 
thread-safe and non-thread-safe implementations.<a name="line.52"></a>
+<span class="sourceLineNo">053</span> */<a name="line.53"></a>
+<span class="sourceLineNo">054</span>@InterfaceAudience.Private<a 
name="line.54"></a>
+<span class="sourceLineNo">055</span>public interface MemStoreSizing {<a 
name="line.55"></a>
+<span class="sourceLineNo">056</span>  static final MemStoreSizing DUD = new 
MemStoreSizing() {<a name="line.56"></a>
+<span class="sourceLineNo">057</span>    private final MemStoreSize mss = new 
MemStoreSize();<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span>    @Override<a name="line.59"></a>
+<span class="sourceLineNo">060</span>    public MemStoreSize getMemStoreSize() 
{<a name="line.60"></a>
+<span class="sourceLineNo">061</span>      return this.mss;<a 
name="line.61"></a>
+<span class="sourceLineNo">062</span>    }<a name="line.62"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span>    @Override<a name="line.64"></a>
+<span class="sourceLineNo">065</span>    public long getDataSize() {<a 
name="line.65"></a>
+<span class="sourceLineNo">066</span>      return this.mss.getDataSize();<a 
name="line.66"></a>
+<span class="sourceLineNo">067</span>    }<a name="line.67"></a>
+<span class="sourceLineNo">068</span><a name="line.68"></a>
+<span class="sourceLineNo">069</span>    @Override<a name="line.69"></a>
+<span class="sourceLineNo">070</span>    public long getHeapSize() {<a 
name="line.70"></a>
+<span class="sourceLineNo">071</span>      return this.mss.getHeapSize();<a 
name="line.71"></a>
+<span class="sourceLineNo">072</span>    }<a name="line.72"></a>
+<span class="sourceLineNo">073</span><a name="line.73"></a>
+<span class="sourceLineNo">074</span>    @Override<a name="line.74"></a>
+<span class="sourceLineNo">075</span>    public long getOffHeapSize() {<a 
name="line.75"></a>
+<span class="sourceLineNo">076</span>      return this.mss.getOffHeapSize();<a 
name="line.76"></a>
+<span class="sourceLineNo">077</span>    }<a name="line.77"></a>
+<span class="sourceLineNo">078</span><a name="line.78"></a>
+<span class="sourceLineNo">079</span>    @Override<a name="line.79"></a>
+<span class="sourceLineNo">080</span>    public long incMemStoreSize(long 
dataSizeDelta, long heapSizeDelta,<a name="line.80"></a>
+<span class="sourceLineNo">081</span>        long offHeapSizeDelta) {<a 
name="line.81"></a>
+<span class="sourceLineNo">082</span>      throw new RuntimeException("I'm a 
DUD, you can't use me!");<a name="line.82"></a>
+<span class="sourceLineNo">083</span>    }<a name="line.83"></a>
+<span class="sourceLineNo">084</span>  };<a name="line.84"></a>
+<span class="sourceLineNo">085</span><a name="line.85"></a>
+<span class="sourceLineNo">086</span>  /**<a name="line.86"></a>
+<span class="sourceLineNo">087</span>   * @return The new dataSize ONLY as a 
convenience<a name="line.87"></a>
+<span class="sourceLineNo">088</span>   */<a name="line.88"></a>
+<span class="sourceLineNo">089</span>  long incMemStoreSize(long 
dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta);<a name="line.89"></a>
+<span class="sourceLineNo">090</span><a name="line.90"></a>
+<span class="sourceLineNo">091</span>  default long 
incMemStoreSize(MemStoreSize delta) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>    return 
incMemStoreSize(delta.getDataSize(), delta.getHeapSize(), 
delta.getOffHeapSize());<a name="line.92"></a>
+<span class="sourceLineNo">093</span>  }<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span>  /**<a name="line.95"></a>
+<span class="sourceLineNo">096</span>   * @return The new dataSize ONLY as a 
convenience<a name="line.96"></a>
+<span class="sourceLineNo">097</span>   */<a name="line.97"></a>
+<span class="sourceLineNo">098</span>  default long decMemStoreSize(long 
dataSizeDelta, long heapSizeDelta,<a name="line.98"></a>
+<span class="sourceLineNo">099</span>      long offHeapSizeDelta) {<a 
name="line.99"></a>
+<span class="sourceLineNo">100</span>    return 
incMemStoreSize(-dataSizeDelta, -heapSizeDelta, -offHeapSizeDelta);<a 
name="line.100"></a>
+<span class="sourceLineNo">101</span>  }<a name="line.101"></a>
+<span class="sourceLineNo">102</span><a name="line.102"></a>
+<span class="sourceLineNo">103</span>  default long 
decMemStoreSize(MemStoreSize delta) {<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    return 
incMemStoreSize(-delta.getDataSize(), -delta.getHeapSize(), 
-delta.getOffHeapSize());<a name="line.104"></a>
+<span class="sourceLineNo">105</span>  }<a name="line.105"></a>
+<span class="sourceLineNo">106</span><a name="line.106"></a>
+<span class="sourceLineNo">107</span>  long getDataSize();<a 
name="line.107"></a>
+<span class="sourceLineNo">108</span>  long getHeapSize();<a 
name="line.108"></a>
+<span class="sourceLineNo">109</span>  long getOffHeapSize();<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>   * @return Use this datastructure to 
return all three settings, {@link #getDataSize()},<a name="line.112"></a>
+<span class="sourceLineNo">113</span>   * {@link #getHeapSize()}, and {@link 
#getOffHeapSize()}, in the one go.<a name="line.113"></a>
+<span class="sourceLineNo">114</span>   */<a name="line.114"></a>
+<span class="sourceLineNo">115</span>  MemStoreSize getMemStoreSize();<a 
name="line.115"></a>
+<span class="sourceLineNo">116</span>}<a name="line.116"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/92a26cfb/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MutableSegment.html
----------------------------------------------------------------------
diff --git 
a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MutableSegment.html 
b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MutableSegment.html
index dbc09df..1f601ea 100644
--- 
a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MutableSegment.html
+++ 
b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MutableSegment.html
@@ -52,7 +52,7 @@
 <span class="sourceLineNo">044</span><a name="line.44"></a>
 <span class="sourceLineNo">045</span>  protected MutableSegment(CellSet 
cellSet, CellComparator comparator, MemStoreLAB memStoreLAB) {<a 
name="line.45"></a>
 <span class="sourceLineNo">046</span>    super(cellSet, comparator, 
memStoreLAB, TimeRangeTracker.create(TimeRangeTracker.Type.SYNC));<a 
name="line.46"></a>
-<span class="sourceLineNo">047</span>    incSize(0, DEEP_OVERHEAD, 0); // 
update the mutable segment metadata<a name="line.47"></a>
+<span class="sourceLineNo">047</span>    incMemStoreSize(0, DEEP_OVERHEAD, 0); 
// update the mutable segment metadata<a name="line.47"></a>
 <span class="sourceLineNo">048</span>  }<a name="line.48"></a>
 <span class="sourceLineNo">049</span><a name="line.49"></a>
 <span class="sourceLineNo">050</span>  /**<a name="line.50"></a>
@@ -97,7 +97,7 @@
 <span class="sourceLineNo">089</span>            int cellLen = 
getCellLength(cur);<a name="line.89"></a>
 <span class="sourceLineNo">090</span>            long heapSize = 
heapSizeChange(cur, true);<a name="line.90"></a>
 <span class="sourceLineNo">091</span>            long offHeapSize = 
offHeapSizeChange(cur, true);<a name="line.91"></a>
-<span class="sourceLineNo">092</span>            this.incSize(-cellLen, 
-heapSize, -offHeapSize);<a name="line.92"></a>
+<span class="sourceLineNo">092</span>            incMemStoreSize(-cellLen, 
-heapSize, -offHeapSize);<a name="line.92"></a>
 <span class="sourceLineNo">093</span>            if (memStoreSizing != null) 
{<a name="line.93"></a>
 <span class="sourceLineNo">094</span>              
memStoreSizing.decMemStoreSize(cellLen, heapSize, offHeapSize);<a 
name="line.94"></a>
 <span class="sourceLineNo">095</span>            }<a name="line.95"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/92a26cfb/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/NonThreadSafeMemStoreSizing.html
----------------------------------------------------------------------
diff --git 
a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/NonThreadSafeMemStoreSizing.html
 
b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/NonThreadSafeMemStoreSizing.html
new file mode 100644
index 0000000..259c19b
--- /dev/null
+++ 
b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/NonThreadSafeMemStoreSizing.html
@@ -0,0 +1,153 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" 
title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Licensed to the Apache Software 
Foundation (ASF) under one<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * or more contributor license 
agreements.  See the NOTICE file<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * distributed with this work for 
additional information<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * regarding copyright ownership.  The 
ASF licenses this file<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * to you under the Apache License, 
Version 2.0 (the<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * "License"); you may not use this file 
except in compliance<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * with the License.  You may obtain a 
copy of the License at<a name="line.8"></a>
+<span class="sourceLineNo">009</span> *<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *     
http://www.apache.org/licenses/LICENSE-2.0<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *<a name="line.11"></a>
+<span class="sourceLineNo">012</span> * Unless required by applicable law or 
agreed to in writing, software<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * distributed under the License is 
distributed on an "AS IS" BASIS,<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * WITHOUT WARRANTIES OR CONDITIONS OF 
ANY KIND, either express or implied.<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * See the License for the specific 
language governing permissions and<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * limitations under the License.<a 
name="line.16"></a>
+<span class="sourceLineNo">017</span> */<a name="line.17"></a>
+<span class="sourceLineNo">018</span>package 
org.apache.hadoop.hbase.regionserver;<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>import 
org.apache.yetus.audience.InterfaceAudience;<a name="line.20"></a>
+<span class="sourceLineNo">021</span><a name="line.21"></a>
+<span class="sourceLineNo">022</span>/**<a name="line.22"></a>
+<span class="sourceLineNo">023</span> * Accounting of current heap and data 
sizes.<a name="line.23"></a>
+<span class="sourceLineNo">024</span> * &lt;em&gt;NOT THREAD 
SAFE&lt;/em&gt;.<a name="line.24"></a>
+<span class="sourceLineNo">025</span> * Use in a 'local' context only where 
just a single-thread is updating. No concurrency!<a name="line.25"></a>
+<span class="sourceLineNo">026</span> * Used, for example, when summing all 
Cells in a single batch where result is then applied to the<a 
name="line.26"></a>
+<span class="sourceLineNo">027</span> * Store.<a name="line.27"></a>
+<span class="sourceLineNo">028</span> * @see ThreadSafeMemStoreSizing<a 
name="line.28"></a>
+<span class="sourceLineNo">029</span> */<a name="line.29"></a>
+<span class="sourceLineNo">030</span>@InterfaceAudience.Private<a 
name="line.30"></a>
+<span class="sourceLineNo">031</span>class NonThreadSafeMemStoreSizing 
implements MemStoreSizing {<a name="line.31"></a>
+<span class="sourceLineNo">032</span>  private long dataSize = 0;<a 
name="line.32"></a>
+<span class="sourceLineNo">033</span>  private long heapSize = 0;<a 
name="line.33"></a>
+<span class="sourceLineNo">034</span>  private long offHeapSize = 0;<a 
name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>  NonThreadSafeMemStoreSizing() {<a 
name="line.36"></a>
+<span class="sourceLineNo">037</span>    this(0, 0, 0);<a name="line.37"></a>
+<span class="sourceLineNo">038</span>  }<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>  
NonThreadSafeMemStoreSizing(MemStoreSize mss) {<a name="line.40"></a>
+<span class="sourceLineNo">041</span>    this(mss.getDataSize(), 
mss.getHeapSize(), mss.getOffHeapSize());<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>  NonThreadSafeMemStoreSizing(long 
dataSize, long heapSize, long offHeapSize) {<a name="line.44"></a>
+<span class="sourceLineNo">045</span>    incMemStoreSize(dataSize, heapSize, 
offHeapSize);<a name="line.45"></a>
+<span class="sourceLineNo">046</span>  }<a name="line.46"></a>
+<span class="sourceLineNo">047</span><a name="line.47"></a>
+<span class="sourceLineNo">048</span>  @Override<a name="line.48"></a>
+<span class="sourceLineNo">049</span>  public MemStoreSize getMemStoreSize() 
{<a name="line.49"></a>
+<span class="sourceLineNo">050</span>    return new 
MemStoreSize(this.dataSize, this.heapSize, this.offHeapSize);<a 
name="line.50"></a>
+<span class="sourceLineNo">051</span>  }<a name="line.51"></a>
+<span class="sourceLineNo">052</span><a name="line.52"></a>
+<span class="sourceLineNo">053</span>  @Override<a name="line.53"></a>
+<span class="sourceLineNo">054</span>  public long incMemStoreSize(long 
dataSizeDelta, long heapSizeDelta,<a name="line.54"></a>
+<span class="sourceLineNo">055</span>      long offHeapSizeDelta) {<a 
name="line.55"></a>
+<span class="sourceLineNo">056</span>    this.offHeapSize += 
offHeapSizeDelta;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>    this.heapSize += heapSizeDelta;<a 
name="line.57"></a>
+<span class="sourceLineNo">058</span>    this.dataSize += dataSizeDelta;<a 
name="line.58"></a>
+<span class="sourceLineNo">059</span>    return this.dataSize;<a 
name="line.59"></a>
+<span class="sourceLineNo">060</span>  }<a name="line.60"></a>
+<span class="sourceLineNo">061</span><a name="line.61"></a>
+<span class="sourceLineNo">062</span>  @Override<a name="line.62"></a>
+<span class="sourceLineNo">063</span>  public long getDataSize() {<a 
name="line.63"></a>
+<span class="sourceLineNo">064</span>    return dataSize;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>  }<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>  @Override<a name="line.67"></a>
+<span class="sourceLineNo">068</span>  public long getHeapSize() {<a 
name="line.68"></a>
+<span class="sourceLineNo">069</span>    return heapSize;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>  }<a name="line.70"></a>
+<span class="sourceLineNo">071</span><a name="line.71"></a>
+<span class="sourceLineNo">072</span>  @Override<a name="line.72"></a>
+<span class="sourceLineNo">073</span>  public long getOffHeapSize() {<a 
name="line.73"></a>
+<span class="sourceLineNo">074</span>    return offHeapSize;<a 
name="line.74"></a>
+<span class="sourceLineNo">075</span>  }<a name="line.75"></a>
+<span class="sourceLineNo">076</span><a name="line.76"></a>
+<span class="sourceLineNo">077</span>  @Override<a name="line.77"></a>
+<span class="sourceLineNo">078</span>  public String toString() {<a 
name="line.78"></a>
+<span class="sourceLineNo">079</span>    return 
getMemStoreSize().toString();<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  }<a name="line.80"></a>
+<span class="sourceLineNo">081</span>}<a name="line.81"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/92a26cfb/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RegionServerAccounting.html
----------------------------------------------------------------------
diff --git 
a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RegionServerAccounting.html
 
b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RegionServerAccounting.html
index 0f32d61..4782db3 100644
--- 
a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RegionServerAccounting.html
+++ 
b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RegionServerAccounting.html
@@ -139,20 +139,20 @@
 <span class="sourceLineNo">131</span>    return 
this.globalMemStoreOffHeapSize.sum();<a name="line.131"></a>
 <span class="sourceLineNo">132</span>  }<a name="line.132"></a>
 <span class="sourceLineNo">133</span><a name="line.133"></a>
-<span class="sourceLineNo">134</span>  /**<a name="line.134"></a>
-<span class="sourceLineNo">135</span>   * @param memStoreSize the Memstore 
size will be added to<a name="line.135"></a>
-<span class="sourceLineNo">136</span>   *        the global Memstore size<a 
name="line.136"></a>
-<span class="sourceLineNo">137</span>   */<a name="line.137"></a>
-<span class="sourceLineNo">138</span>  public void 
incGlobalMemStoreSize(MemStoreSize memStoreSize) {<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    
globalMemStoreDataSize.add(memStoreSize.getDataSize());<a name="line.139"></a>
-<span class="sourceLineNo">140</span>    
globalMemStoreHeapSize.add(memStoreSize.getHeapSize());<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    
globalMemStoreOffHeapSize.add(memStoreSize.getOffHeapSize());<a 
name="line.141"></a>
+<span class="sourceLineNo">134</span>  void incGlobalMemStoreSize(MemStoreSize 
mss) {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    
incGlobalMemStoreSize(mss.getDataSize(), mss.getHeapSize(), 
mss.getOffHeapSize());<a name="line.135"></a>
+<span class="sourceLineNo">136</span>  }<a name="line.136"></a>
+<span class="sourceLineNo">137</span><a name="line.137"></a>
+<span class="sourceLineNo">138</span>  public void incGlobalMemStoreSize(long 
dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a 
name="line.138"></a>
+<span class="sourceLineNo">139</span>    
globalMemStoreDataSize.add(dataSizeDelta);<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    
globalMemStoreHeapSize.add(heapSizeDelta);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    
globalMemStoreOffHeapSize.add(offHeapSizeDelta);<a name="line.141"></a>
 <span class="sourceLineNo">142</span>  }<a name="line.142"></a>
 <span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span>  public void 
decGlobalMemStoreSize(MemStoreSize memStoreSize) {<a name="line.144"></a>
-<span class="sourceLineNo">145</span>    
globalMemStoreDataSize.add(-memStoreSize.getDataSize());<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    
globalMemStoreHeapSize.add(-memStoreSize.getHeapSize());<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    
globalMemStoreOffHeapSize.add(-memStoreSize.getOffHeapSize());<a 
name="line.147"></a>
+<span class="sourceLineNo">144</span>  public void decGlobalMemStoreSize(long 
dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a 
name="line.144"></a>
+<span class="sourceLineNo">145</span>    
globalMemStoreDataSize.add(-dataSizeDelta);<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    
globalMemStoreHeapSize.add(-heapSizeDelta);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>    
globalMemStoreOffHeapSize.add(-offHeapSizeDelta);<a name="line.147"></a>
 <span class="sourceLineNo">148</span>  }<a name="line.148"></a>
 <span class="sourceLineNo">149</span><a name="line.149"></a>
 <span class="sourceLineNo">150</span>  /**<a name="line.150"></a>
@@ -239,7 +239,7 @@
 <span class="sourceLineNo">231</span>    // the region open operation. No need 
to handle multi thread issues on one region's entry in<a name="line.231"></a>
 <span class="sourceLineNo">232</span>    // this Map.<a name="line.232"></a>
 <span class="sourceLineNo">233</span>    if (replayEdistsSize == null) {<a 
name="line.233"></a>
-<span class="sourceLineNo">234</span>      replayEdistsSize = new 
MemStoreSizing();<a name="line.234"></a>
+<span class="sourceLineNo">234</span>      replayEdistsSize = new 
ThreadSafeMemStoreSizing();<a name="line.234"></a>
 <span class="sourceLineNo">235</span>      
replayEditsPerRegion.put(regionName, replayEdistsSize);<a name="line.235"></a>
 <span class="sourceLineNo">236</span>    }<a name="line.236"></a>
 <span class="sourceLineNo">237</span>    
replayEdistsSize.incMemStoreSize(memStoreSize);<a name="line.237"></a>
@@ -252,22 +252,23 @@
 <span class="sourceLineNo">244</span>   * @param regionName the region which 
could not open.<a name="line.244"></a>
 <span class="sourceLineNo">245</span>   */<a name="line.245"></a>
 <span class="sourceLineNo">246</span>  public void 
rollbackRegionReplayEditsSize(byte[] regionName) {<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    MemStoreSize replayEditsSize = 
replayEditsPerRegion.get(regionName);<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    if (replayEditsSize != null) {<a 
name="line.248"></a>
+<span class="sourceLineNo">247</span>    MemStoreSizing replayEditsSizing = 
replayEditsPerRegion.get(regionName);<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    if (replayEditsSizing != null) {<a 
name="line.248"></a>
 <span class="sourceLineNo">249</span>      
clearRegionReplayEditsSize(regionName);<a name="line.249"></a>
-<span class="sourceLineNo">250</span>      
decGlobalMemStoreSize(replayEditsSize);<a name="line.250"></a>
-<span class="sourceLineNo">251</span>    }<a name="line.251"></a>
-<span class="sourceLineNo">252</span>  }<a name="line.252"></a>
-<span class="sourceLineNo">253</span><a name="line.253"></a>
-<span class="sourceLineNo">254</span>  /**<a name="line.254"></a>
-<span class="sourceLineNo">255</span>   * Clear a region from 
replayEditsPerRegion.<a name="line.255"></a>
-<span class="sourceLineNo">256</span>   *<a name="line.256"></a>
-<span class="sourceLineNo">257</span>   * @param regionName region name.<a 
name="line.257"></a>
-<span class="sourceLineNo">258</span>   */<a name="line.258"></a>
-<span class="sourceLineNo">259</span>  public void 
clearRegionReplayEditsSize(byte[] regionName) {<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    
replayEditsPerRegion.remove(regionName);<a name="line.260"></a>
-<span class="sourceLineNo">261</span>  }<a name="line.261"></a>
-<span class="sourceLineNo">262</span>}<a name="line.262"></a>
+<span class="sourceLineNo">250</span>      
decGlobalMemStoreSize(replayEditsSizing.getDataSize(), 
replayEditsSizing.getHeapSize(),<a name="line.250"></a>
+<span class="sourceLineNo">251</span>          
replayEditsSizing.getOffHeapSize());<a name="line.251"></a>
+<span class="sourceLineNo">252</span>    }<a name="line.252"></a>
+<span class="sourceLineNo">253</span>  }<a name="line.253"></a>
+<span class="sourceLineNo">254</span><a name="line.254"></a>
+<span class="sourceLineNo">255</span>  /**<a name="line.255"></a>
+<span class="sourceLineNo">256</span>   * Clear a region from 
replayEditsPerRegion.<a name="line.256"></a>
+<span class="sourceLineNo">257</span>   *<a name="line.257"></a>
+<span class="sourceLineNo">258</span>   * @param regionName region name.<a 
name="line.258"></a>
+<span class="sourceLineNo">259</span>   */<a name="line.259"></a>
+<span class="sourceLineNo">260</span>  public void 
clearRegionReplayEditsSize(byte[] regionName) {<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    
replayEditsPerRegion.remove(regionName);<a name="line.261"></a>
+<span class="sourceLineNo">262</span>  }<a name="line.262"></a>
+<span class="sourceLineNo">263</span>}<a name="line.263"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/92a26cfb/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html
----------------------------------------------------------------------
diff --git 
a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html
 
b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html
index 145efa7..c2470a6 100644
--- 
a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html
+++ 
b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html
@@ -73,8 +73,8 @@
 <span class="sourceLineNo">065</span>    region.unblockUpdates();<a 
name="line.65"></a>
 <span class="sourceLineNo">066</span>  }<a name="line.66"></a>
 <span class="sourceLineNo">067</span><a name="line.67"></a>
-<span class="sourceLineNo">068</span>  public void 
addMemStoreSize(MemStoreSize size) {<a name="line.68"></a>
-<span class="sourceLineNo">069</span>    region.incMemStoreSize(size);<a 
name="line.69"></a>
+<span class="sourceLineNo">068</span>  public void addMemStoreSize(long 
dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a 
name="line.68"></a>
+<span class="sourceLineNo">069</span>    region.incMemStoreSize(dataSizeDelta, 
heapSizeDelta, offHeapSizeDelta);<a name="line.69"></a>
 <span class="sourceLineNo">070</span>  }<a name="line.70"></a>
 <span class="sourceLineNo">071</span><a name="line.71"></a>
 <span class="sourceLineNo">072</span>  public RegionInfo getRegionInfo() {<a 
name="line.72"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/92a26cfb/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.Builder.html
----------------------------------------------------------------------
diff --git 
a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.Builder.html
 
b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.Builder.html
index 03a0b2a..cabb570 100644
--- 
a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.Builder.html
+++ 
b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/ScannerContext.Builder.html
@@ -561,209 +561,206 @@
 <span class="sourceLineNo">553</span><a name="line.553"></a>
 <span class="sourceLineNo">554</span>    /**<a name="line.554"></a>
 <span class="sourceLineNo">555</span>     * Set all fields together.<a 
name="line.555"></a>
-<span class="sourceLineNo">556</span>     * @param batch<a name="line.556"></a>
-<span class="sourceLineNo">557</span>     * @param sizeScope<a 
name="line.557"></a>
-<span class="sourceLineNo">558</span>     * @param dataSize<a 
name="line.558"></a>
-<span class="sourceLineNo">559</span>     */<a name="line.559"></a>
-<span class="sourceLineNo">560</span>    void setFields(int batch, LimitScope 
sizeScope, long dataSize, long heapSize,<a name="line.560"></a>
-<span class="sourceLineNo">561</span>        LimitScope timeScope, long time) 
{<a name="line.561"></a>
-<span class="sourceLineNo">562</span>      setBatch(batch);<a 
name="line.562"></a>
-<span class="sourceLineNo">563</span>      setSizeScope(sizeScope);<a 
name="line.563"></a>
-<span class="sourceLineNo">564</span>      setDataSize(dataSize);<a 
name="line.564"></a>
-<span class="sourceLineNo">565</span>      setHeapSize(heapSize);<a 
name="line.565"></a>
-<span class="sourceLineNo">566</span>      setTimeScope(timeScope);<a 
name="line.566"></a>
-<span class="sourceLineNo">567</span>      setTime(time);<a 
name="line.567"></a>
-<span class="sourceLineNo">568</span>    }<a name="line.568"></a>
-<span class="sourceLineNo">569</span><a name="line.569"></a>
-<span class="sourceLineNo">570</span>    int getBatch() {<a 
name="line.570"></a>
-<span class="sourceLineNo">571</span>      return this.batch;<a 
name="line.571"></a>
-<span class="sourceLineNo">572</span>    }<a name="line.572"></a>
-<span class="sourceLineNo">573</span><a name="line.573"></a>
-<span class="sourceLineNo">574</span>    void setBatch(int batch) {<a 
name="line.574"></a>
-<span class="sourceLineNo">575</span>      this.batch = batch;<a 
name="line.575"></a>
-<span class="sourceLineNo">576</span>    }<a name="line.576"></a>
-<span class="sourceLineNo">577</span><a name="line.577"></a>
-<span class="sourceLineNo">578</span>    /**<a name="line.578"></a>
-<span class="sourceLineNo">579</span>     * @param checkerScope<a 
name="line.579"></a>
-<span class="sourceLineNo">580</span>     * @return true when the limit can be 
enforced from the scope of the checker<a name="line.580"></a>
-<span class="sourceLineNo">581</span>     */<a name="line.581"></a>
-<span class="sourceLineNo">582</span>    boolean 
canEnforceBatchLimitFromScope(LimitScope checkerScope) {<a name="line.582"></a>
-<span class="sourceLineNo">583</span>      return 
LimitScope.BETWEEN_CELLS.canEnforceLimitFromScope(checkerScope);<a 
name="line.583"></a>
-<span class="sourceLineNo">584</span>    }<a name="line.584"></a>
-<span class="sourceLineNo">585</span><a name="line.585"></a>
-<span class="sourceLineNo">586</span>    long getDataSize() {<a 
name="line.586"></a>
-<span class="sourceLineNo">587</span>      return this.dataSize;<a 
name="line.587"></a>
-<span class="sourceLineNo">588</span>    }<a name="line.588"></a>
-<span class="sourceLineNo">589</span><a name="line.589"></a>
-<span class="sourceLineNo">590</span>    long getHeapSize() {<a 
name="line.590"></a>
-<span class="sourceLineNo">591</span>      return this.heapSize;<a 
name="line.591"></a>
-<span class="sourceLineNo">592</span>    }<a name="line.592"></a>
-<span class="sourceLineNo">593</span><a name="line.593"></a>
-<span class="sourceLineNo">594</span>    void setDataSize(long dataSize) {<a 
name="line.594"></a>
-<span class="sourceLineNo">595</span>      this.dataSize = dataSize;<a 
name="line.595"></a>
-<span class="sourceLineNo">596</span>    }<a name="line.596"></a>
-<span class="sourceLineNo">597</span><a name="line.597"></a>
-<span class="sourceLineNo">598</span>    void setHeapSize(long heapSize) {<a 
name="line.598"></a>
-<span class="sourceLineNo">599</span>      this.heapSize = heapSize;<a 
name="line.599"></a>
-<span class="sourceLineNo">600</span>    }<a name="line.600"></a>
-<span class="sourceLineNo">601</span><a name="line.601"></a>
-<span class="sourceLineNo">602</span>    /**<a name="line.602"></a>
-<span class="sourceLineNo">603</span>     * @return {@link LimitScope} 
indicating scope in which the size limit is enforced<a name="line.603"></a>
-<span class="sourceLineNo">604</span>     */<a name="line.604"></a>
-<span class="sourceLineNo">605</span>    LimitScope getSizeScope() {<a 
name="line.605"></a>
-<span class="sourceLineNo">606</span>      return this.sizeScope;<a 
name="line.606"></a>
-<span class="sourceLineNo">607</span>    }<a name="line.607"></a>
-<span class="sourceLineNo">608</span><a name="line.608"></a>
-<span class="sourceLineNo">609</span>    /**<a name="line.609"></a>
-<span class="sourceLineNo">610</span>     * Change the scope in which the size 
limit is enforced<a name="line.610"></a>
-<span class="sourceLineNo">611</span>     */<a name="line.611"></a>
-<span class="sourceLineNo">612</span>    void setSizeScope(LimitScope scope) 
{<a name="line.612"></a>
-<span class="sourceLineNo">613</span>      this.sizeScope = scope;<a 
name="line.613"></a>
-<span class="sourceLineNo">614</span>    }<a name="line.614"></a>
-<span class="sourceLineNo">615</span><a name="line.615"></a>
-<span class="sourceLineNo">616</span>    /**<a name="line.616"></a>
-<span class="sourceLineNo">617</span>     * @param checkerScope<a 
name="line.617"></a>
-<span class="sourceLineNo">618</span>     * @return true when the limit can be 
enforced from the scope of the checker<a name="line.618"></a>
-<span class="sourceLineNo">619</span>     */<a name="line.619"></a>
-<span class="sourceLineNo">620</span>    boolean 
canEnforceSizeLimitFromScope(LimitScope checkerScope) {<a name="line.620"></a>
-<span class="sourceLineNo">621</span>      return 
this.sizeScope.canEnforceLimitFromScope(checkerScope);<a name="line.621"></a>
-<span class="sourceLineNo">622</span>    }<a name="line.622"></a>
-<span class="sourceLineNo">623</span><a name="line.623"></a>
-<span class="sourceLineNo">624</span>    long getTime() {<a 
name="line.624"></a>
-<span class="sourceLineNo">625</span>      return this.time;<a 
name="line.625"></a>
-<span class="sourceLineNo">626</span>    }<a name="line.626"></a>
-<span class="sourceLineNo">627</span><a name="line.627"></a>
-<span class="sourceLineNo">628</span>    void setTime(long time) {<a 
name="line.628"></a>
-<span class="sourceLineNo">629</span>      this.time = time;<a 
name="line.629"></a>
-<span class="sourceLineNo">630</span>    }<a name="line.630"></a>
-<span class="sourceLineNo">631</span><a name="line.631"></a>
-<span class="sourceLineNo">632</span>    /**<a name="line.632"></a>
-<span class="sourceLineNo">633</span>     * @return {@link LimitScope} 
indicating scope in which the time limit is enforced<a name="line.633"></a>
-<span class="sourceLineNo">634</span>     */<a name="line.634"></a>
-<span class="sourceLineNo">635</span>    LimitScope getTimeScope() {<a 
name="line.635"></a>
-<span class="sourceLineNo">636</span>      return this.timeScope;<a 
name="line.636"></a>
-<span class="sourceLineNo">637</span>    }<a name="line.637"></a>
-<span class="sourceLineNo">638</span><a name="line.638"></a>
-<span class="sourceLineNo">639</span>    /**<a name="line.639"></a>
-<span class="sourceLineNo">640</span>     * Change the scope in which the time 
limit is enforced<a name="line.640"></a>
-<span class="sourceLineNo">641</span>     */<a name="line.641"></a>
-<span class="sourceLineNo">642</span>    void setTimeScope(LimitScope scope) 
{<a name="line.642"></a>
-<span class="sourceLineNo">643</span>      this.timeScope = scope;<a 
name="line.643"></a>
-<span class="sourceLineNo">644</span>    }<a name="line.644"></a>
-<span class="sourceLineNo">645</span><a name="line.645"></a>
-<span class="sourceLineNo">646</span>    /**<a name="line.646"></a>
-<span class="sourceLineNo">647</span>     * @param checkerScope<a 
name="line.647"></a>
-<span class="sourceLineNo">648</span>     * @return true when the limit can be 
enforced from the scope of the checker<a name="line.648"></a>
-<span class="sourceLineNo">649</span>     */<a name="line.649"></a>
-<span class="sourceLineNo">650</span>    boolean 
canEnforceTimeLimitFromScope(LimitScope checkerScope) {<a name="line.650"></a>
-<span class="sourceLineNo">651</span>      return 
this.timeScope.canEnforceLimitFromScope(checkerScope);<a name="line.651"></a>
-<span class="sourceLineNo">652</span>    }<a name="line.652"></a>
-<span class="sourceLineNo">653</span><a name="line.653"></a>
-<span class="sourceLineNo">654</span>    @Override<a name="line.654"></a>
-<span class="sourceLineNo">655</span>    public String toString() {<a 
name="line.655"></a>
-<span class="sourceLineNo">656</span>      StringBuilder sb = new 
StringBuilder();<a name="line.656"></a>
-<span class="sourceLineNo">657</span>      sb.append("{");<a 
name="line.657"></a>
+<span class="sourceLineNo">556</span>     */<a name="line.556"></a>
+<span class="sourceLineNo">557</span>    void setFields(int batch, LimitScope 
sizeScope, long dataSize, long heapSize,<a name="line.557"></a>
+<span class="sourceLineNo">558</span>        LimitScope timeScope, long time) 
{<a name="line.558"></a>
+<span class="sourceLineNo">559</span>      setBatch(batch);<a 
name="line.559"></a>
+<span class="sourceLineNo">560</span>      setSizeScope(sizeScope);<a 
name="line.560"></a>
+<span class="sourceLineNo">561</span>      setDataSize(dataSize);<a 
name="line.561"></a>
+<span class="sourceLineNo">562</span>      setHeapSize(heapSize);<a 
name="line.562"></a>
+<span class="sourceLineNo">563</span>      setTimeScope(timeScope);<a 
name="line.563"></a>
+<span class="sourceLineNo">564</span>      setTime(time);<a 
name="line.564"></a>
+<span class="sourceLineNo">565</span>    }<a name="line.565"></a>
+<span class="sourceLineNo">566</span><a name="line.566"></a>
+<span class="sourceLineNo">567</span>    int getBatch() {<a 
name="line.567"></a>
+<span class="sourceLineNo">568</span>      return this.batch;<a 
name="line.568"></a>
+<span class="sourceLineNo">569</span>    }<a name="line.569"></a>
+<span class="sourceLineNo">570</span><a name="line.570"></a>
+<span class="sourceLineNo">571</span>    void setBatch(int batch) {<a 
name="line.571"></a>
+<span class="sourceLineNo">572</span>      this.batch = batch;<a 
name="line.572"></a>
+<span class="sourceLineNo">573</span>    }<a name="line.573"></a>
+<span class="sourceLineNo">574</span><a name="line.574"></a>
+<span class="sourceLineNo">575</span>    /**<a name="line.575"></a>
+<span class="sourceLineNo">576</span>     * @param checkerScope<a 
name="line.576"></a>
+<span class="sourceLineNo">577</span>     * @return true when the limit can be 
enforced from the scope of the checker<a name="line.577"></a>
+<span class="sourceLineNo">578</span>     */<a name="line.578"></a>
+<span class="sourceLineNo">579</span>    boolean 
canEnforceBatchLimitFromScope(LimitScope checkerScope) {<a name="line.579"></a>
+<span class="sourceLineNo">580</span>      return 
LimitScope.BETWEEN_CELLS.canEnforceLimitFromScope(checkerScope);<a 
name="line.580"></a>
+<span class="sourceLineNo">581</span>    }<a name="line.581"></a>
+<span class="sourceLineNo">582</span><a name="line.582"></a>
+<span class="sourceLineNo">583</span>    long getDataSize() {<a 
name="line.583"></a>
+<span class="sourceLineNo">584</span>      return this.dataSize;<a 
name="line.584"></a>
+<span class="sourceLineNo">585</span>    }<a name="line.585"></a>
+<span class="sourceLineNo">586</span><a name="line.586"></a>
+<span class="sourceLineNo">587</span>    long getHeapSize() {<a 
name="line.587"></a>
+<span class="sourceLineNo">588</span>      return this.heapSize;<a 
name="line.588"></a>
+<span class="sourceLineNo">589</span>    }<a name="line.589"></a>
+<span class="sourceLineNo">590</span><a name="line.590"></a>
+<span class="sourceLineNo">591</span>    void setDataSize(long dataSize) {<a 
name="line.591"></a>
+<span class="sourceLineNo">592</span>      this.dataSize = dataSize;<a 
name="line.592"></a>
+<span class="sourceLineNo">593</span>    }<a name="line.593"></a>
+<span class="sourceLineNo">594</span><a name="line.594"></a>
+<span class="sourceLineNo">595</span>    void setHeapSize(long heapSize) {<a 
name="line.595"></a>
+<span class="sourceLineNo">596</span>      this.heapSize = heapSize;<a 
name="line.596"></a>
+<span class="sourceLineNo">597</span>    }<a name="line.597"></a>
+<span class="sourceLineNo">598</span><a name="line.598"></a>
+<span class="sourceLineNo">599</span>    /**<a name="line.599"></a>
+<span class="sourceLineNo">600</span>     * @return {@link LimitScope} 
indicating scope in which the size limit is enforced<a name="line.600"></a>
+<span class="sourceLineNo">601</span>     */<a name="line.601"></a>
+<span class="sourceLineNo">602</span>    LimitScope getSizeScope() {<a 
name="line.602"></a>
+<span class="sourceLineNo">603</span>      return this.sizeScope;<a 
name="line.603"></a>
+<span class="sourceLineNo">604</span>    }<a name="line.604"></a>
+<span class="sourceLineNo">605</span><a name="line.605"></a>
+<span class="sourceLineNo">606</span>    /**<a name="line.606"></a>
+<span class="sourceLineNo">607</span>     * Change the scope in which the size 
limit is enforced<a name="line.607"></a>
+<span class="sourceLineNo">608</span>     */<a name="line.608"></a>
+<span class="sourceLineNo">609</span>    void setSizeScope(LimitScope scope) 
{<a name="line.609"></a>
+<span class="sourceLineNo">610</span>      this.sizeScope = scope;<a 
name="line.610"></a>
+<span class="sourceLineNo">611</span>    }<a name="line.611"></a>
+<span class="sourceLineNo">612</span><a name="line.612"></a>
+<span class="sourceLineNo">613</span>    /**<a name="line.613"></a>
+<span class="sourceLineNo">614</span>     * @param checkerScope<a 
name="line.614"></a>
+<span class="sourceLineNo">615</span>     * @return true when the limit can be 
enforced from the scope of the checker<a name="line.615"></a>
+<span class="sourceLineNo">616</span>     */<a name="line.616"></a>
+<span class="sourceLineNo">617</span>    boolean 
canEnforceSizeLimitFromScope(LimitScope checkerScope) {<a name="line.617"></a>
+<span class="sourceLineNo">618</span>      return 
this.sizeScope.canEnforceLimitFromScope(checkerScope);<a name="line.618"></a>
+<span class="sourceLineNo">619</span>    }<a name="line.619"></a>
+<span class="sourceLineNo">620</span><a name="line.620"></a>
+<span class="sourceLineNo">621</span>    long getTime() {<a 
name="line.621"></a>
+<span class="sourceLineNo">622</span>      return this.time;<a 
name="line.622"></a>
+<span class="sourceLineNo">623</span>    }<a name="line.623"></a>
+<span class="sourceLineNo">624</span><a name="line.624"></a>
+<span class="sourceLineNo">625</span>    void setTime(long time) {<a 
name="line.625"></a>
+<span class="sourceLineNo">626</span>      this.time = time;<a 
name="line.626"></a>
+<span class="sourceLineNo">627</span>    }<a name="line.627"></a>
+<span class="sourceLineNo">628</span><a name="line.628"></a>
+<span class="sourceLineNo">629</span>    /**<a name="line.629"></a>
+<span class="sourceLineNo">630</span>     * @return {@link LimitScope} 
indicating scope in which the time limit is enforced<a name="line.630"></a>
+<span class="sourceLineNo">631</span>     */<a name="line.631"></a>
+<span class="sourceLineNo">632</span>    LimitScope getTimeScope() {<a 
name="line.632"></a>
+<span class="sourceLineNo">633</span>      return this.timeScope;<a 
name="line.633"></a>
+<span class="sourceLineNo">634</span>    }<a name="line.634"></a>
+<span class="sourceLineNo">635</span><a name="line.635"></a>
+<span class="sourceLineNo">636</span>    /**<a name="line.636"></a>
+<span class="sourceLineNo">637</span>     * Change the scope in which the time 
limit is enforced<a name="line.637"></a>
+<span class="sourceLineNo">638</span>     */<a name="line.638"></a>
+<span class="sourceLineNo">639</span>    void setTimeScope(LimitScope scope) 
{<a name="line.639"></a>
+<span class="sourceLineNo">640</span>      this.timeScope = scope;<a 
name="line.640"></a>
+<span class="sourceLineNo">641</span>    }<a name="line.641"></a>
+<span class="sourceLineNo">642</span><a name="line.642"></a>
+<span class="sourceLineNo">643</span>    /**<a name="line.643"></a>
+<span class="sourceLineNo">644</span>     * @param checkerScope<a 
name="line.644"></a>
+<span class="sourceLineNo">645</span>     * @return true when the limit can be 
enforced from the scope of the checker<a name="line.645"></a>
+<span class="sourceLineNo">646</span>     */<a name="line.646"></a>
+<span class="sourceLineNo">647</span>    boolean 
canEnforceTimeLimitFromScope(LimitScope checkerScope) {<a name="line.647"></a>
+<span class="sourceLineNo">648</span>      return 
this.timeScope.canEnforceLimitFromScope(checkerScope);<a name="line.648"></a>
+<span class="sourceLineNo">649</span>    }<a name="line.649"></a>
+<span class="sourceLineNo">650</span><a name="line.650"></a>
+<span class="sourceLineNo">651</span>    @Override<a name="line.651"></a>
+<span class="sourceLineNo">652</span>    public String toString() {<a 
name="line.652"></a>
+<span class="sourceLineNo">653</span>      StringBuilder sb = new 
StringBuilder();<a name="line.653"></a>
+<span class="sourceLineNo">654</span>      sb.append("{");<a 
name="line.654"></a>
+<span class="sourceLineNo">655</span><a name="line.655"></a>
+<span class="sourceLineNo">656</span>      sb.append("batch:");<a 
name="line.656"></a>
+<span class="sourceLineNo">657</span>      sb.append(batch);<a 
name="line.657"></a>
 <span class="sourceLineNo">658</span><a name="line.658"></a>
-<span class="sourceLineNo">659</span>      sb.append("batch:");<a 
name="line.659"></a>
-<span class="sourceLineNo">660</span>      sb.append(batch);<a 
name="line.660"></a>
+<span class="sourceLineNo">659</span>      sb.append(", dataSize:");<a 
name="line.659"></a>
+<span class="sourceLineNo">660</span>      sb.append(dataSize);<a 
name="line.660"></a>
 <span class="sourceLineNo">661</span><a name="line.661"></a>
-<span class="sourceLineNo">662</span>      sb.append(", dataSize:");<a 
name="line.662"></a>
-<span class="sourceLineNo">663</span>      sb.append(dataSize);<a 
name="line.663"></a>
+<span class="sourceLineNo">662</span>      sb.append(", heapSize:");<a 
name="line.662"></a>
+<span class="sourceLineNo">663</span>      sb.append(heapSize);<a 
name="line.663"></a>
 <span class="sourceLineNo">664</span><a name="line.664"></a>
-<span class="sourceLineNo">665</span>      sb.append(", heapSize:");<a 
name="line.665"></a>
-<span class="sourceLineNo">666</span>      sb.append(heapSize);<a 
name="line.666"></a>
+<span class="sourceLineNo">665</span>      sb.append(", sizeScope:");<a 
name="line.665"></a>
+<span class="sourceLineNo">666</span>      sb.append(sizeScope);<a 
name="line.666"></a>
 <span class="sourceLineNo">667</span><a name="line.667"></a>
-<span class="sourceLineNo">668</span>      sb.append(", sizeScope:");<a 
name="line.668"></a>
-<span class="sourceLineNo">669</span>      sb.append(sizeScope);<a 
name="line.669"></a>
+<span class="sourceLineNo">668</span>      sb.append(", time:");<a 
name="line.668"></a>
+<span class="sourceLineNo">669</span>      sb.append(time);<a 
name="line.669"></a>
 <span class="sourceLineNo">670</span><a name="line.670"></a>
-<span class="sourceLineNo">671</span>      sb.append(", time:");<a 
name="line.671"></a>
-<span class="sourceLineNo">672</span>      sb.append(time);<a 
name="line.672"></a>
+<span class="sourceLineNo">671</span>      sb.append(", timeScope:");<a 
name="line.671"></a>
+<span class="sourceLineNo">672</span>      sb.append(timeScope);<a 
name="line.672"></a>
 <span class="sourceLineNo">673</span><a name="line.673"></a>
-<span class="sourceLineNo">674</span>      sb.append(", timeScope:");<a 
name="line.674"></a>
-<span class="sourceLineNo">675</span>      sb.append(timeScope);<a 
name="line.675"></a>
-<span class="sourceLineNo">676</span><a name="line.676"></a>
-<span class="sourceLineNo">677</span>      sb.append("}");<a 
name="line.677"></a>
-<span class="sourceLineNo">678</span>      return sb.toString();<a 
name="line.678"></a>
-<span class="sourceLineNo">679</span>    }<a name="line.679"></a>
-<span class="sourceLineNo">680</span>  }<a name="line.680"></a>
-<span class="sourceLineNo">681</span><a name="line.681"></a>
-<span class="sourceLineNo">682</span>  private static class ProgressFields {<a 
name="line.682"></a>
+<span class="sourceLineNo">674</span>      sb.append("}");<a 
name="line.674"></a>
+<span class="sourceLineNo">675</span>      return sb.toString();<a 
name="line.675"></a>
+<span class="sourceLineNo">676</span>    }<a name="line.676"></a>
+<span class="sourceLineNo">677</span>  }<a name="line.677"></a>
+<span class="sourceLineNo">678</span><a name="line.678"></a>
+<span class="sourceLineNo">679</span>  private static class ProgressFields {<a 
name="line.679"></a>
+<span class="sourceLineNo">680</span><a name="line.680"></a>
+<span class="sourceLineNo">681</span>    private static int DEFAULT_BATCH = 
-1;<a name="line.681"></a>
+<span class="sourceLineNo">682</span>    private static long DEFAULT_SIZE = 
-1L;<a name="line.682"></a>
 <span class="sourceLineNo">683</span><a name="line.683"></a>
-<span class="sourceLineNo">684</span>    private static int DEFAULT_BATCH = 
-1;<a name="line.684"></a>
-<span class="sourceLineNo">685</span>    private static long DEFAULT_SIZE = 
-1L;<a name="line.685"></a>
-<span class="sourceLineNo">686</span><a name="line.686"></a>
-<span class="sourceLineNo">687</span>    // The batch limit will always be 
enforced between cells, thus, there isn't a field to hold the<a 
name="line.687"></a>
-<span class="sourceLineNo">688</span>    // batch scope<a name="line.688"></a>
-<span class="sourceLineNo">689</span>    int batch = DEFAULT_BATCH;<a 
name="line.689"></a>
-<span class="sourceLineNo">690</span><a name="line.690"></a>
-<span class="sourceLineNo">691</span>    // The sum of cell data sizes(key + 
value). The Cell data might be in on heap or off heap area.<a 
name="line.691"></a>
-<span class="sourceLineNo">692</span>    long dataSize = DEFAULT_SIZE;<a 
name="line.692"></a>
-<span class="sourceLineNo">693</span>    // The sum of heap space occupied by 
all tracked cells. This includes Cell POJO's overhead as<a name="line.693"></a>
-<span class="sourceLineNo">694</span>    // such AND data cells of Cells which 
are in on heap area.<a name="line.694"></a>
-<span class="sourceLineNo">695</span>    long heapSize = DEFAULT_SIZE;<a 
name="line.695"></a>
-<span class="sourceLineNo">696</span><a name="line.696"></a>
-<span class="sourceLineNo">697</span>    /**<a name="line.697"></a>
-<span class="sourceLineNo">698</span>     * Fields keep their default 
values.<a name="line.698"></a>
-<span class="sourceLineNo">699</span>     */<a name="line.699"></a>
-<span class="sourceLineNo">700</span>    ProgressFields() {<a 
name="line.700"></a>
-<span class="sourceLineNo">701</span>    }<a name="line.701"></a>
-<span class="sourceLineNo">702</span><a name="line.702"></a>
-<span class="sourceLineNo">703</span>    ProgressFields(int batch, long size, 
long heapSize) {<a name="line.703"></a>
-<span class="sourceLineNo">704</span>      setFields(batch, size, heapSize);<a 
name="line.704"></a>
-<span class="sourceLineNo">705</span>    }<a name="line.705"></a>
-<span class="sourceLineNo">706</span><a name="line.706"></a>
-<span class="sourceLineNo">707</span>    /**<a name="line.707"></a>
-<span class="sourceLineNo">708</span>     * Set all fields together.<a 
name="line.708"></a>
-<span class="sourceLineNo">709</span>     */<a name="line.709"></a>
-<span class="sourceLineNo">710</span>    void setFields(int batch, long 
dataSize, long heapSize) {<a name="line.710"></a>
-<span class="sourceLineNo">711</span>      setBatch(batch);<a 
name="line.711"></a>
-<span class="sourceLineNo">712</span>      setDataSize(dataSize);<a 
name="line.712"></a>
-<span class="sourceLineNo">713</span>      setHeapSize(heapSize);<a 
name="line.713"></a>
-<span class="sourceLineNo">714</span>    }<a name="line.714"></a>
-<span class="sourceLineNo">715</span><a name="line.715"></a>
-<span class="sourceLineNo">716</span>    int getBatch() {<a 
name="line.716"></a>
-<span class="sourceLineNo">717</span>      return this.batch;<a 
name="line.717"></a>
-<span class="sourceLineNo">718</span>    }<a name="line.718"></a>
-<span class="sourceLineNo">719</span><a name="line.719"></a>
-<span class="sourceLineNo">720</span>    void setBatch(int batch) {<a 
name="line.720"></a>
-<span class="sourceLineNo">721</span>      this.batch = batch;<a 
name="line.721"></a>
-<span class="sourceLineNo">722</span>    }<a name="line.722"></a>
-<span class="sourceLineNo">723</span><a name="line.723"></a>
-<span class="sourceLineNo">724</span>    long getDataSize() {<a 
name="line.724"></a>
-<span class="sourceLineNo">725</span>      return this.dataSize;<a 
name="line.725"></a>
-<span class="sourceLineNo">726</span>    }<a name="line.726"></a>
-<span class="sourceLineNo">727</span><a name="line.727"></a>
-<span class="sourceLineNo">728</span>    long getHeapSize() {<a 
name="line.728"></a>
-<span class="sourceLineNo">729</span>      return this.heapSize;<a 
name="line.729"></a>
-<span class="sourceLineNo">730</span>    }<a name="line.730"></a>
-<span class="sourceLineNo">731</span><a name="line.731"></a>
-<span class="sourceLineNo">732</span>    void setDataSize(long dataSize) {<a 
name="line.732"></a>
-<span class="sourceLineNo">733</span>      this.dataSize = dataSize;<a 
name="line.733"></a>
-<span class="sourceLineNo">734</span>    }<a name="line.734"></a>
-<span class="sourceLineNo">735</span><a name="line.735"></a>
-<span class="sourceLineNo">736</span>    void setHeapSize(long heapSize) {<a 
name="line.736"></a>
-<span class="sourceLineNo">737</span>      this.heapSize = heapSize;<a 
name="line.737"></a>
-<span class="sourceLineNo">738</span>    }<a name="line.738"></a>
-<span class="sourceLineNo">739</span><a name="line.739"></a>
-<span class="sourceLineNo">740</span>    @Override<a name="line.740"></a>
-<span class="sourceLineNo">741</span>    public String toString() {<a 
name="line.741"></a>
-<span class="sourceLineNo">742</span>      StringBuilder sb = new 
StringBuilder();<a name="line.742"></a>
-<span class="sourceLineNo">743</span>      sb.append("{");<a 
name="line.743"></a>
+<span class="sourceLineNo">684</span>    // The batch limit will always be 
enforced between cells, thus, there isn't a field to hold the<a 
name="line.684"></a>
+<span class="sourceLineNo">685</span>    // batch scope<a name="line.685"></a>
+<span class="sourceLineNo">686</span>    int batch = DEFAULT_BATCH;<a 
name="line.686"></a>
+<span class="sourceLineNo">687</span><a name="line.687"></a>
+<span class="sourceLineNo">688</span>    // The sum of cell data sizes(key + 
value). The Cell data might be in on heap or off heap area.<a 
name="line.688"></a>
+<span class="sourceLineNo">689</span>    long dataSize = DEFAULT_SIZE;<a 
name="line.689"></a>
+<span class="sourceLineNo">690</span>    // The sum of heap space occupied by 
all tracked cells. This includes Cell POJO's overhead as<a name="line.690"></a>
+<span class="sourceLineNo">691</span>    // such AND data cells of Cells which 
are in on heap area.<a name="line.691"></a>
+<span class="sourceLineNo">692</span>    long heapSize = DEFAULT_SIZE;<a 
name="line.692"></a>
+<span class="sourceLineNo">693</span><a name="line.693"></a>
+<span class="sourceLineNo">694</span>    /**<a name="line.694"></a>
+<span class="sourceLineNo">695</span>     * Fields keep their default 
values.<a name="line.695"></a>
+<span class="sourceLineNo">696</span>     */<a name="line.696"></a>
+<span class="sourceLineNo">697</span>    ProgressFields() {<a 
name="line.697"></a>
+<span class="sourceLineNo">698</span>    }<a name="line.698"></a>
+<span class="sourceLineNo">699</span><a name="line.699"></a>
+<span class="sourceLineNo">700</span>    ProgressFields(int batch, long size, 
long heapSize) {<a name="line.700"></a>
+<span class="sourceLineNo">701</span>      setFields(batch, size, heapSize);<a 
name="line.701"></a>
+<span class="sourceLineNo">702</span>    }<a name="line.702"></a>
+<span class="sourceLineNo">703</span><a name="line.703"></a>
+<span class="sourceLineNo">704</span>    /**<a name="line.704"></a>
+<span class="sourceLineNo">705</span>     * Set all fields together.<a 
name="line.705"></a>
+<span class="sourceLineNo">706</span>     */<a name="line.706"></a>
+<span class="sourceLineNo">707</span>    void setFields(int batch, long 
dataSize, long heapSize) {<a name="line.707"></a>
+<span class="sourceLineNo">708</span>      setBatch(batch);<a 
name="line.708"></a>
+<span class="sourceLineNo">709</span>      setDataSize(dataSize);<a 
name="line.709"></a>
+<span class="sourceLineNo">710</span>      setHeapSize(heapSize);<a 
name="line.710"></a>
+<span class="sourceLineNo">711</span>    }<a name="line.711"></a>
+<span class="sourceLineNo">712</span><a name="line.712"></a>
+<span class="sourceLineNo">713</span>    int getBatch() {<a 
name="line.713"></a>
+<span class="sourceLineNo">714</span>      return this.batch;<a 
name="line.714"></a>
+<span class="sourceLineNo">715</span>    }<a name="line.715"></a>
+<span class="sourceLineNo">716</span><a name="line.716"></a>
+<span class="sourceLineNo">717</span>    void setBatch(int batch) {<a 
name="line.717"></a>
+<span class="sourceLineNo">718</span>      this.batch = batch;<a 
name="line.718"></a>
+<span class="sourceLineNo">719</span>    }<a name="line.719"></a>
+<span class="sourceLineNo">720</span><a name="line.720"></a>
+<span class="sourceLineNo">721</span>    long getDataSize() {<a 
name="line.721"></a>
+<span class="sourceLineNo">722</span>      return this.dataSize;<a 
name="line.722"></a>
+<span class="sourceLineNo">723</span>    }<a name="line.723"></a>
+<span class="sourceLineNo">724</span><a name="line.724"></a>
+<span class="sourceLineNo">725</span>    long getHeapSize() {<a 
name="line.725"></a>
+<span class="sourceLineNo">726</span>      return this.heapSize;<a 
name="line.726"></a>
+<span class="sourceLineNo">727</span>    }<a name="line.727"></a>
+<span class="sourceLineNo">728</span><a name="line.728"></a>
+<span class="sourceLineNo">729</span>    void setDataSize(long dataSize) {<a 
name="line.729"></a>
+<span class="sourceLineNo">730</span>      this.dataSize = dataSize;<a 
name="line.730"></a>
+<span class="sourceLineNo">731</span>    }<a name="line.731"></a>
+<span class="sourceLineNo">732</span><a name="line.732"></a>
+<span class="sourceLineNo">733</span>    void setHeapSize(long heapSize) {<a 
name="line.733"></a>
+<span class="sourceLineNo">734</span>      this.heapSize = heapSize;<a 
name="line.734"></a>
+<span class="sourceLineNo">735</span>    }<a name="line.735"></a>
+<span class="sourceLineNo">736</span><a name="line.736"></a>
+<span class="sourceLineNo">737</span>    @Override<a name="line.737"></a>
+<span class="sourceLineNo">738</span>    public String toString() {<a 
name="line.738"></a>
+<span class="sourceLineNo">739</span>      StringBuilder sb = new 
StringBuilder();<a name="line.739"></a>
+<span class="sourceLineNo">740</span>      sb.append("{");<a 
name="line.740"></a>
+<span class="sourceLineNo">741</span><a name="line.741"></a>
+<span class="sourceLineNo">742</span>      sb.append("batch:");<a 
name="line.742"></a>
+<span class="sourceLineNo">743</span>      sb.append(batch);<a 
name="line.743"></a>
 <span class="sourceLineNo">744</span><a name="line.744"></a>
-<span class="sourceLineNo">745</span>      sb.append("batch:");<a 
name="line.745"></a>
-<span class="sourceLineNo">746</span>      sb.append(batch);<a 
name="line.746"></a>
+<span class="sourceLineNo">745</span>      sb.append(", dataSize:");<a 
name="line.745"></a>
+<span class="sourceLineNo">746</span>      sb.append(dataSize);<a 
name="line.746"></a>
 <span class="sourceLineNo">747</span><a name="line.747"></a>
-<span class="sourceLineNo">748</span>      sb.append(", dataSize:");<a 
name="line.748"></a>
-<span class="sourceLineNo">749</span>      sb.append(dataSize);<a 
name="line.749"></a>
+<span class="sourceLineNo">748</span>      sb.append(", heapSize:");<a 
name="line.748"></a>
+<span class="sourceLineNo">749</span>      sb.append(heapSize);<a 
name="line.749"></a>
 <span class="sourceLineNo">750</span><a name="line.750"></a>
-<span class="sourceLineNo">751</span>      sb.append(", heapSize:");<a 
name="line.751"></a>
-<span class="sourceLineNo">752</span>      sb.append(heapSize);<a 
name="line.752"></a>
-<span class="sourceLineNo">753</span><a name="line.753"></a>
-<span class="sourceLineNo">754</span>      sb.append("}");<a 
name="line.754"></a>
-<span class="sourceLineNo">755</span>      return sb.toString();<a 
name="line.755"></a>
-<span class="sourceLineNo">756</span>    }<a name="line.756"></a>
-<span class="sourceLineNo">757</span>  }<a name="line.757"></a>
-<span class="sourceLineNo">758</span>}<a name="line.758"></a>
+<span class="sourceLineNo">751</span>      sb.append("}");<a 
name="line.751"></a>
+<span class="sourceLineNo">752</span>      return sb.toString();<a 
name="line.752"></a>
+<span class="sourceLineNo">753</span>    }<a name="line.753"></a>
+<span class="sourceLineNo">754</span>  }<a name="line.754"></a>
+<span class="sourceLineNo">755</span>}<a name="line.755"></a>
 
 
 

Reply via email to