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> * <p>Immutable!</p><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 <100MB, 120MB, 0>, 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 <100MB, 20MB, 100MB>, 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 <100MB, 10MB, 110MB>, 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 && this.heapSize == 0 && 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 && this.heapSize == 0 && 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> && this.heapSize == other.heapSize<a name="line.106"></a> -<span class="sourceLineNo">107</span> && 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 && this.heapSize == other.heapSize &&<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> * <ol><a name="line.25"></a> +<span class="sourceLineNo">026</span> * <li></li>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> * </li><a name="line.28"></a> +<span class="sourceLineNo">029</span> * <li>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> * </li><a name="line.31"></a> +<span class="sourceLineNo">032</span> * <li></li>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> * </li><a name="line.34"></a> +<span class="sourceLineNo">035</span> * </ol><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> * <p><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 <100MB, 120MB, 0>, respectively.<a name="line.40"></a> +<span class="sourceLineNo">041</span> * </p><a name="line.41"></a> +<span class="sourceLineNo">042</span> * <p>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 <100MB, 20MB, 100MB>, respectively.<a name="line.43"></a> +<span class="sourceLineNo">044</span> * </p><a name="line.44"></a> +<span class="sourceLineNo">045</span> * <p><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 <100MB, 10MB, 110MB>, respectively.<a name="line.49"></a> +<span class="sourceLineNo">050</span> * </p><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> * <em>NOT THREAD SAFE</em>.<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>