http://git-wip-us.apache.org/repos/asf/hbase-site/blob/3332caca/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 ae6ba6a..f781d96 100644 --- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RegionServerAccounting.html +++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RegionServerAccounting.html @@ -54,7 +54,7 @@ <span class="sourceLineNo">046</span><a name="line.46"></a> <span class="sourceLineNo">047</span> // Store the edits size during replaying WAL. Use this to roll back the<a name="line.47"></a> <span class="sourceLineNo">048</span> // global memstore size once a region opening failed.<a name="line.48"></a> -<span class="sourceLineNo">049</span> private final ConcurrentMap<byte[], MemstoreSize> replayEditsPerRegion =<a name="line.49"></a> +<span class="sourceLineNo">049</span> private final ConcurrentMap<byte[], MemStoreSize> replayEditsPerRegion =<a name="line.49"></a> <span class="sourceLineNo">050</span> new ConcurrentSkipListMap<>(Bytes.BYTES_COMPARATOR);<a name="line.50"></a> <span class="sourceLineNo">051</span><a name="line.51"></a> <span class="sourceLineNo">052</span> private long globalMemStoreLimit;<a name="line.52"></a> @@ -65,7 +65,7 @@ <span class="sourceLineNo">057</span> private long globalOnHeapMemstoreLimitLowMark;<a name="line.57"></a> <span class="sourceLineNo">058</span><a name="line.58"></a> <span class="sourceLineNo">059</span> public RegionServerAccounting(Configuration conf) {<a name="line.59"></a> -<span class="sourceLineNo">060</span> Pair<Long, MemoryType> globalMemstoreSizePair = MemorySizeUtil.getGlobalMemstoreSize(conf);<a name="line.60"></a> +<span class="sourceLineNo">060</span> Pair<Long, MemoryType> globalMemstoreSizePair = MemorySizeUtil.getGlobalMemStoreSize(conf);<a name="line.60"></a> <span class="sourceLineNo">061</span> this.globalMemStoreLimit = globalMemstoreSizePair.getFirst();<a name="line.61"></a> <span class="sourceLineNo">062</span> this.memType = globalMemstoreSizePair.getSecond();<a name="line.62"></a> <span class="sourceLineNo">063</span> this.globalMemStoreLimitLowMarkPercent =<a name="line.63"></a> @@ -81,21 +81,21 @@ <span class="sourceLineNo">073</span> // "hbase.regionserver.global.memstore.lowerLimit". Can get rid of this boolean passing then.<a name="line.73"></a> <span class="sourceLineNo">074</span> this.globalMemStoreLimitLowMark =<a name="line.74"></a> <span class="sourceLineNo">075</span> (long) (this.globalMemStoreLimit * this.globalMemStoreLimitLowMarkPercent);<a name="line.75"></a> -<span class="sourceLineNo">076</span> this.globalOnHeapMemstoreLimit = MemorySizeUtil.getOnheapGlobalMemstoreSize(conf);<a name="line.76"></a> +<span class="sourceLineNo">076</span> this.globalOnHeapMemstoreLimit = MemorySizeUtil.getOnheapGlobalMemStoreSize(conf);<a name="line.76"></a> <span class="sourceLineNo">077</span> this.globalOnHeapMemstoreLimitLowMark =<a name="line.77"></a> <span class="sourceLineNo">078</span> (long) (this.globalOnHeapMemstoreLimit * this.globalMemStoreLimitLowMarkPercent);<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> long getGlobalMemstoreLimit() {<a name="line.81"></a> +<span class="sourceLineNo">081</span> long getGlobalMemStoreLimit() {<a name="line.81"></a> <span class="sourceLineNo">082</span> return this.globalMemStoreLimit;<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> long getGlobalOnHeapMemstoreLimit() {<a name="line.85"></a> +<span class="sourceLineNo">085</span> long getGlobalOnHeapMemStoreLimit() {<a name="line.85"></a> <span class="sourceLineNo">086</span> return this.globalOnHeapMemstoreLimit;<a name="line.86"></a> <span class="sourceLineNo">087</span> }<a name="line.87"></a> <span class="sourceLineNo">088</span><a name="line.88"></a> <span class="sourceLineNo">089</span> // Called by the tuners.<a name="line.89"></a> -<span class="sourceLineNo">090</span> void setGlobalMemstoreLimits(long newGlobalMemstoreLimit) {<a name="line.90"></a> +<span class="sourceLineNo">090</span> void setGlobalMemStoreLimits(long newGlobalMemstoreLimit) {<a name="line.90"></a> <span class="sourceLineNo">091</span> if (this.memType == MemoryType.HEAP) {<a name="line.91"></a> <span class="sourceLineNo">092</span> this.globalMemStoreLimit = newGlobalMemstoreLimit;<a name="line.92"></a> <span class="sourceLineNo">093</span> this.globalMemStoreLimitLowMark =<a name="line.93"></a> @@ -111,38 +111,38 @@ <span class="sourceLineNo">103</span> return this.memType == MemoryType.NON_HEAP;<a name="line.103"></a> <span class="sourceLineNo">104</span> }<a name="line.104"></a> <span class="sourceLineNo">105</span><a name="line.105"></a> -<span class="sourceLineNo">106</span> long getGlobalMemstoreLimitLowMark() {<a name="line.106"></a> +<span class="sourceLineNo">106</span> long getGlobalMemStoreLimitLowMark() {<a name="line.106"></a> <span class="sourceLineNo">107</span> return this.globalMemStoreLimitLowMark;<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> float getGlobalMemstoreLimitLowMarkPercent() {<a name="line.110"></a> +<span class="sourceLineNo">110</span> float getGlobalMemStoreLimitLowMarkPercent() {<a name="line.110"></a> <span class="sourceLineNo">111</span> return this.globalMemStoreLimitLowMarkPercent;<a name="line.111"></a> <span class="sourceLineNo">112</span> }<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> <span class="sourceLineNo">115</span> * @return the global Memstore data size in the RegionServer<a name="line.115"></a> <span class="sourceLineNo">116</span> */<a name="line.116"></a> -<span class="sourceLineNo">117</span> public long getGlobalMemstoreDataSize() {<a name="line.117"></a> +<span class="sourceLineNo">117</span> public long getGlobalMemStoreDataSize() {<a name="line.117"></a> <span class="sourceLineNo">118</span> return globalMemstoreDataSize.sum();<a name="line.118"></a> <span class="sourceLineNo">119</span> }<a name="line.119"></a> <span class="sourceLineNo">120</span><a name="line.120"></a> <span class="sourceLineNo">121</span> /**<a name="line.121"></a> <span class="sourceLineNo">122</span> * @return the global memstore heap size in the RegionServer<a name="line.122"></a> <span class="sourceLineNo">123</span> */<a name="line.123"></a> -<span class="sourceLineNo">124</span> public long getGlobalMemstoreHeapSize() {<a name="line.124"></a> +<span class="sourceLineNo">124</span> public long getGlobalMemStoreHeapSize() {<a name="line.124"></a> <span class="sourceLineNo">125</span> return this.globalMemstoreHeapSize.sum();<a name="line.125"></a> <span class="sourceLineNo">126</span> }<a name="line.126"></a> <span class="sourceLineNo">127</span><a name="line.127"></a> <span class="sourceLineNo">128</span> /**<a name="line.128"></a> -<span class="sourceLineNo">129</span> * @param memStoreSize the Memstore size will be added to <a name="line.129"></a> -<span class="sourceLineNo">130</span> * the global Memstore size <a name="line.130"></a> +<span class="sourceLineNo">129</span> * @param memStoreSize the Memstore size will be added to<a name="line.129"></a> +<span class="sourceLineNo">130</span> * the global Memstore size<a name="line.130"></a> <span class="sourceLineNo">131</span> */<a name="line.131"></a> -<span class="sourceLineNo">132</span> public void incGlobalMemstoreSize(MemstoreSize memStoreSize) {<a name="line.132"></a> +<span class="sourceLineNo">132</span> public void incGlobalMemStoreSize(MemStoreSize memStoreSize) {<a name="line.132"></a> <span class="sourceLineNo">133</span> globalMemstoreDataSize.add(memStoreSize.getDataSize());<a name="line.133"></a> <span class="sourceLineNo">134</span> globalMemstoreHeapSize.add(memStoreSize.getHeapSize());<a name="line.134"></a> <span class="sourceLineNo">135</span> }<a name="line.135"></a> <span class="sourceLineNo">136</span><a name="line.136"></a> -<span class="sourceLineNo">137</span> public void decGlobalMemstoreSize(MemstoreSize memStoreSize) {<a name="line.137"></a> +<span class="sourceLineNo">137</span> public void decGlobalMemStoreSize(MemStoreSize memStoreSize) {<a name="line.137"></a> <span class="sourceLineNo">138</span> globalMemstoreDataSize.add(-memStoreSize.getDataSize());<a name="line.138"></a> <span class="sourceLineNo">139</span> globalMemstoreHeapSize.add(-memStoreSize.getHeapSize());<a name="line.139"></a> <span class="sourceLineNo">140</span> }<a name="line.140"></a> @@ -155,7 +155,7 @@ <span class="sourceLineNo">147</span> // for onheap memstore we check if the global memstore size and the<a name="line.147"></a> <span class="sourceLineNo">148</span> // global heap overhead is greater than the global memstore limit<a name="line.148"></a> <span class="sourceLineNo">149</span> if (memType == MemoryType.HEAP) {<a name="line.149"></a> -<span class="sourceLineNo">150</span> if (getGlobalMemstoreHeapSize() >= globalMemStoreLimit) {<a name="line.150"></a> +<span class="sourceLineNo">150</span> if (getGlobalMemStoreHeapSize() >= globalMemStoreLimit) {<a name="line.150"></a> <span class="sourceLineNo">151</span> return FlushType.ABOVE_ONHEAP_HIGHER_MARK;<a name="line.151"></a> <span class="sourceLineNo">152</span> }<a name="line.152"></a> <span class="sourceLineNo">153</span> } else {<a name="line.153"></a> @@ -166,11 +166,11 @@ <span class="sourceLineNo">158</span> // global memstore limit 'hbase.regionserver.global.memstore.size'.<a name="line.158"></a> <span class="sourceLineNo">159</span> // We do this to avoid OOME incase of scenarios where the heap is occupied with<a name="line.159"></a> <span class="sourceLineNo">160</span> // lot of onheap references to the cells in memstore<a name="line.160"></a> -<span class="sourceLineNo">161</span> if (getGlobalMemstoreDataSize() >= globalMemStoreLimit) {<a name="line.161"></a> +<span class="sourceLineNo">161</span> if (getGlobalMemStoreDataSize() >= globalMemStoreLimit) {<a name="line.161"></a> <span class="sourceLineNo">162</span> // Indicates that global memstore size is above the configured<a name="line.162"></a> <span class="sourceLineNo">163</span> // 'hbase.regionserver.offheap.global.memstore.size'<a name="line.163"></a> <span class="sourceLineNo">164</span> return FlushType.ABOVE_OFFHEAP_HIGHER_MARK;<a name="line.164"></a> -<span class="sourceLineNo">165</span> } else if (getGlobalMemstoreHeapSize() >= this.globalOnHeapMemstoreLimit) {<a name="line.165"></a> +<span class="sourceLineNo">165</span> } else if (getGlobalMemStoreHeapSize() >= this.globalOnHeapMemstoreLimit) {<a name="line.165"></a> <span class="sourceLineNo">166</span> // Indicates that the offheap memstore's heap overhead is greater than the<a name="line.166"></a> <span class="sourceLineNo">167</span> // configured 'hbase.regionserver.global.memstore.size'.<a name="line.167"></a> <span class="sourceLineNo">168</span> return FlushType.ABOVE_ONHEAP_HIGHER_MARK;<a name="line.168"></a> @@ -186,15 +186,15 @@ <span class="sourceLineNo">178</span> // for onheap memstore we check if the global memstore size and the<a name="line.178"></a> <span class="sourceLineNo">179</span> // global heap overhead is greater than the global memstore lower mark limit<a name="line.179"></a> <span class="sourceLineNo">180</span> if (memType == MemoryType.HEAP) {<a name="line.180"></a> -<span class="sourceLineNo">181</span> if (getGlobalMemstoreHeapSize() >= globalMemStoreLimitLowMark) {<a name="line.181"></a> +<span class="sourceLineNo">181</span> if (getGlobalMemStoreHeapSize() >= globalMemStoreLimitLowMark) {<a name="line.181"></a> <span class="sourceLineNo">182</span> return FlushType.ABOVE_ONHEAP_LOWER_MARK;<a name="line.182"></a> <span class="sourceLineNo">183</span> }<a name="line.183"></a> <span class="sourceLineNo">184</span> } else {<a name="line.184"></a> -<span class="sourceLineNo">185</span> if (getGlobalMemstoreDataSize() >= globalMemStoreLimitLowMark) {<a name="line.185"></a> +<span class="sourceLineNo">185</span> if (getGlobalMemStoreDataSize() >= globalMemStoreLimitLowMark) {<a name="line.185"></a> <span class="sourceLineNo">186</span> // Indicates that the offheap memstore's data size is greater than the global memstore<a name="line.186"></a> <span class="sourceLineNo">187</span> // lower limit<a name="line.187"></a> <span class="sourceLineNo">188</span> return FlushType.ABOVE_OFFHEAP_LOWER_MARK;<a name="line.188"></a> -<span class="sourceLineNo">189</span> } else if (getGlobalMemstoreHeapSize() >= globalOnHeapMemstoreLimitLowMark) {<a name="line.189"></a> +<span class="sourceLineNo">189</span> } else if (getGlobalMemStoreHeapSize() >= globalOnHeapMemstoreLimitLowMark) {<a name="line.189"></a> <span class="sourceLineNo">190</span> // Indicates that the offheap memstore's heap overhead is greater than the global memstore<a name="line.190"></a> <span class="sourceLineNo">191</span> // onheap lower limit<a name="line.191"></a> <span class="sourceLineNo">192</span> return FlushType.ABOVE_ONHEAP_LOWER_MARK;<a name="line.192"></a> @@ -210,10 +210,10 @@ <span class="sourceLineNo">202</span> */<a name="line.202"></a> <span class="sourceLineNo">203</span> public double getFlushPressure() {<a name="line.203"></a> <span class="sourceLineNo">204</span> if (memType == MemoryType.HEAP) {<a name="line.204"></a> -<span class="sourceLineNo">205</span> return (getGlobalMemstoreHeapSize()) * 1.0 / globalMemStoreLimitLowMark;<a name="line.205"></a> +<span class="sourceLineNo">205</span> return (getGlobalMemStoreHeapSize()) * 1.0 / globalMemStoreLimitLowMark;<a name="line.205"></a> <span class="sourceLineNo">206</span> } else {<a name="line.206"></a> -<span class="sourceLineNo">207</span> return Math.max(getGlobalMemstoreDataSize() * 1.0 / globalMemStoreLimitLowMark,<a name="line.207"></a> -<span class="sourceLineNo">208</span> getGlobalMemstoreHeapSize() * 1.0 / globalOnHeapMemstoreLimitLowMark);<a name="line.208"></a> +<span class="sourceLineNo">207</span> return Math.max(getGlobalMemStoreDataSize() * 1.0 / globalMemStoreLimitLowMark,<a name="line.207"></a> +<span class="sourceLineNo">208</span> getGlobalMemStoreHeapSize() * 1.0 / globalOnHeapMemstoreLimitLowMark);<a name="line.208"></a> <span class="sourceLineNo">209</span> }<a name="line.209"></a> <span class="sourceLineNo">210</span> }<a name="line.210"></a> <span class="sourceLineNo">211</span><a name="line.211"></a> @@ -223,37 +223,37 @@ <span class="sourceLineNo">215</span> * @param regionName region name.<a name="line.215"></a> <span class="sourceLineNo">216</span> * @param memStoreSize the Memstore size will be added to replayEditsPerRegion.<a name="line.216"></a> <span class="sourceLineNo">217</span> */<a name="line.217"></a> -<span class="sourceLineNo">218</span> public void addRegionReplayEditsSize(byte[] regionName, MemstoreSize memStoreSize) {<a name="line.218"></a> -<span class="sourceLineNo">219</span> MemstoreSize replayEdistsSize = replayEditsPerRegion.get(regionName);<a name="line.219"></a> -<span class="sourceLineNo">220</span> // All ops on the same MemstoreSize object is going to be done by single thread, sequentially<a name="line.220"></a> +<span class="sourceLineNo">218</span> public void addRegionReplayEditsSize(byte[] regionName, MemStoreSize memStoreSize) {<a name="line.218"></a> +<span class="sourceLineNo">219</span> MemStoreSize replayEdistsSize = replayEditsPerRegion.get(regionName);<a name="line.219"></a> +<span class="sourceLineNo">220</span> // All ops on the same MemStoreSize object is going to be done by single thread, sequentially<a name="line.220"></a> <span class="sourceLineNo">221</span> // only. First calls to this method to increment the per region reply edits size and then call<a name="line.221"></a> <span class="sourceLineNo">222</span> // to either rollbackRegionReplayEditsSize or clearRegionReplayEditsSize as per the result of<a name="line.222"></a> <span class="sourceLineNo">223</span> // the region open operation. No need to handle multi thread issues on one region's entry in<a name="line.223"></a> <span class="sourceLineNo">224</span> // this Map.<a name="line.224"></a> <span class="sourceLineNo">225</span> if (replayEdistsSize == null) {<a name="line.225"></a> -<span class="sourceLineNo">226</span> replayEdistsSize = new MemstoreSize();<a name="line.226"></a> +<span class="sourceLineNo">226</span> replayEdistsSize = new MemStoreSize();<a name="line.226"></a> <span class="sourceLineNo">227</span> replayEditsPerRegion.put(regionName, replayEdistsSize);<a name="line.227"></a> <span class="sourceLineNo">228</span> }<a name="line.228"></a> -<span class="sourceLineNo">229</span> replayEdistsSize.incMemstoreSize(memStoreSize);<a name="line.229"></a> +<span class="sourceLineNo">229</span> replayEdistsSize.incMemStoreSize(memStoreSize);<a name="line.229"></a> <span class="sourceLineNo">230</span> }<a name="line.230"></a> <span class="sourceLineNo">231</span><a name="line.231"></a> <span class="sourceLineNo">232</span> /**<a name="line.232"></a> <span class="sourceLineNo">233</span> * Roll back the global MemStore size for a specified region when this region<a name="line.233"></a> <span class="sourceLineNo">234</span> * can't be opened.<a name="line.234"></a> -<span class="sourceLineNo">235</span> * <a name="line.235"></a> +<span class="sourceLineNo">235</span> *<a name="line.235"></a> <span class="sourceLineNo">236</span> * @param regionName the region which could not open.<a name="line.236"></a> <span class="sourceLineNo">237</span> */<a name="line.237"></a> <span class="sourceLineNo">238</span> public void rollbackRegionReplayEditsSize(byte[] regionName) {<a name="line.238"></a> -<span class="sourceLineNo">239</span> MemstoreSize replayEditsSize = replayEditsPerRegion.get(regionName);<a name="line.239"></a> +<span class="sourceLineNo">239</span> MemStoreSize replayEditsSize = replayEditsPerRegion.get(regionName);<a name="line.239"></a> <span class="sourceLineNo">240</span> if (replayEditsSize != null) {<a name="line.240"></a> <span class="sourceLineNo">241</span> clearRegionReplayEditsSize(regionName);<a name="line.241"></a> -<span class="sourceLineNo">242</span> decGlobalMemstoreSize(replayEditsSize);<a name="line.242"></a> +<span class="sourceLineNo">242</span> decGlobalMemStoreSize(replayEditsSize);<a name="line.242"></a> <span class="sourceLineNo">243</span> }<a name="line.243"></a> <span class="sourceLineNo">244</span> }<a name="line.244"></a> <span class="sourceLineNo">245</span><a name="line.245"></a> <span class="sourceLineNo">246</span> /**<a name="line.246"></a> <span class="sourceLineNo">247</span> * Clear a region from replayEditsPerRegion.<a name="line.247"></a> -<span class="sourceLineNo">248</span> * <a name="line.248"></a> +<span class="sourceLineNo">248</span> *<a name="line.248"></a> <span class="sourceLineNo">249</span> * @param regionName region name.<a name="line.249"></a> <span class="sourceLineNo">250</span> */<a name="line.250"></a> <span class="sourceLineNo">251</span> public void clearRegionReplayEditsSize(byte[] regionName) {<a name="line.251"></a>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/3332caca/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 f5290b9..aaed291 100644 --- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html +++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html @@ -35,69 +35,71 @@ <span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.wal.WAL;<a name="line.27"></a> <span class="sourceLineNo">028</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.28"></a> <span class="sourceLineNo">029</span><a name="line.29"></a> -<span class="sourceLineNo">030</span>/**<a name="line.30"></a> -<span class="sourceLineNo">031</span> * Services a Store needs from a Region.<a name="line.31"></a> -<span class="sourceLineNo">032</span> * RegionServicesForStores class is the interface through which memstore access services at the<a name="line.32"></a> -<span class="sourceLineNo">033</span> * region level.<a name="line.33"></a> -<span class="sourceLineNo">034</span> * For example, when using alternative memory formats or due to compaction the memstore needs to<a name="line.34"></a> -<span class="sourceLineNo">035</span> * take occasional lock and update size counters at the region level.<a name="line.35"></a> -<span class="sourceLineNo">036</span> */<a name="line.36"></a> -<span class="sourceLineNo">037</span>@InterfaceAudience.Private<a name="line.37"></a> -<span class="sourceLineNo">038</span>public class RegionServicesForStores {<a name="line.38"></a> -<span class="sourceLineNo">039</span><a name="line.39"></a> -<span class="sourceLineNo">040</span> private static final int POOL_SIZE = 10;<a name="line.40"></a> -<span class="sourceLineNo">041</span> private static final ThreadPoolExecutor INMEMORY_COMPACTION_POOL =<a name="line.41"></a> -<span class="sourceLineNo">042</span> new ThreadPoolExecutor(POOL_SIZE, POOL_SIZE, 60, TimeUnit.SECONDS,<a name="line.42"></a> -<span class="sourceLineNo">043</span> new LinkedBlockingQueue<>(),<a name="line.43"></a> -<span class="sourceLineNo">044</span> new ThreadFactory() {<a name="line.44"></a> -<span class="sourceLineNo">045</span> @Override<a name="line.45"></a> -<span class="sourceLineNo">046</span> public Thread newThread(Runnable r) {<a name="line.46"></a> -<span class="sourceLineNo">047</span> String name = Thread.currentThread().getName() + "-inmemoryCompactions-" +<a name="line.47"></a> -<span class="sourceLineNo">048</span> System.currentTimeMillis();<a name="line.48"></a> -<span class="sourceLineNo">049</span> return new Thread(r, name);<a name="line.49"></a> -<span class="sourceLineNo">050</span> }<a name="line.50"></a> -<span class="sourceLineNo">051</span> });<a name="line.51"></a> -<span class="sourceLineNo">052</span> private final HRegion region;<a name="line.52"></a> -<span class="sourceLineNo">053</span><a name="line.53"></a> -<span class="sourceLineNo">054</span> public RegionServicesForStores(HRegion region) {<a name="line.54"></a> -<span class="sourceLineNo">055</span> this.region = region;<a name="line.55"></a> -<span class="sourceLineNo">056</span> }<a name="line.56"></a> -<span class="sourceLineNo">057</span><a name="line.57"></a> -<span class="sourceLineNo">058</span> public void blockUpdates() {<a name="line.58"></a> -<span class="sourceLineNo">059</span> region.blockUpdates();<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> public void unblockUpdates() {<a name="line.62"></a> -<span class="sourceLineNo">063</span> region.unblockUpdates();<a name="line.63"></a> -<span class="sourceLineNo">064</span> }<a name="line.64"></a> -<span class="sourceLineNo">065</span><a name="line.65"></a> -<span class="sourceLineNo">066</span> public void addMemstoreSize(MemstoreSize size) {<a name="line.66"></a> -<span class="sourceLineNo">067</span> region.addAndGetMemstoreSize(size);<a name="line.67"></a> -<span class="sourceLineNo">068</span> }<a name="line.68"></a> -<span class="sourceLineNo">069</span><a name="line.69"></a> -<span class="sourceLineNo">070</span> public RegionInfo getRegionInfo() {<a name="line.70"></a> -<span class="sourceLineNo">071</span> return region.getRegionInfo();<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> public WAL getWAL() {<a name="line.74"></a> -<span class="sourceLineNo">075</span> return region.getWAL();<a name="line.75"></a> -<span class="sourceLineNo">076</span> }<a name="line.76"></a> -<span class="sourceLineNo">077</span><a name="line.77"></a> -<span class="sourceLineNo">078</span> public ThreadPoolExecutor getInMemoryCompactionPool() { return INMEMORY_COMPACTION_POOL; }<a name="line.78"></a> +<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.shaded.com.google.common.annotations.VisibleForTesting;<a name="line.30"></a> +<span class="sourceLineNo">031</span><a name="line.31"></a> +<span class="sourceLineNo">032</span>/**<a name="line.32"></a> +<span class="sourceLineNo">033</span> * Services a Store needs from a Region.<a name="line.33"></a> +<span class="sourceLineNo">034</span> * RegionServicesForStores class is the interface through which memstore access services at the<a name="line.34"></a> +<span class="sourceLineNo">035</span> * region level.<a name="line.35"></a> +<span class="sourceLineNo">036</span> * For example, when using alternative memory formats or due to compaction the memstore needs to<a name="line.36"></a> +<span class="sourceLineNo">037</span> * take occasional lock and update size counters at the region level.<a name="line.37"></a> +<span class="sourceLineNo">038</span> */<a name="line.38"></a> +<span class="sourceLineNo">039</span>@InterfaceAudience.Private<a name="line.39"></a> +<span class="sourceLineNo">040</span>public class RegionServicesForStores {<a name="line.40"></a> +<span class="sourceLineNo">041</span><a name="line.41"></a> +<span class="sourceLineNo">042</span> private static final int POOL_SIZE = 10;<a name="line.42"></a> +<span class="sourceLineNo">043</span> private static final ThreadPoolExecutor INMEMORY_COMPACTION_POOL =<a name="line.43"></a> +<span class="sourceLineNo">044</span> new ThreadPoolExecutor(POOL_SIZE, POOL_SIZE, 60, TimeUnit.SECONDS,<a name="line.44"></a> +<span class="sourceLineNo">045</span> new LinkedBlockingQueue<>(),<a name="line.45"></a> +<span class="sourceLineNo">046</span> new ThreadFactory() {<a name="line.46"></a> +<span class="sourceLineNo">047</span> @Override<a name="line.47"></a> +<span class="sourceLineNo">048</span> public Thread newThread(Runnable r) {<a name="line.48"></a> +<span class="sourceLineNo">049</span> String name = Thread.currentThread().getName() + "-inmemoryCompactions-" +<a name="line.49"></a> +<span class="sourceLineNo">050</span> System.currentTimeMillis();<a name="line.50"></a> +<span class="sourceLineNo">051</span> return new Thread(r, name);<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> private final HRegion region;<a name="line.54"></a> +<span class="sourceLineNo">055</span><a name="line.55"></a> +<span class="sourceLineNo">056</span> public RegionServicesForStores(HRegion region) {<a name="line.56"></a> +<span class="sourceLineNo">057</span> this.region = region;<a name="line.57"></a> +<span class="sourceLineNo">058</span> }<a name="line.58"></a> +<span class="sourceLineNo">059</span><a name="line.59"></a> +<span class="sourceLineNo">060</span> public void blockUpdates() {<a name="line.60"></a> +<span class="sourceLineNo">061</span> region.blockUpdates();<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> public void unblockUpdates() {<a name="line.64"></a> +<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.addAndGetMemStoreSize(size);<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> +<span class="sourceLineNo">073</span> return region.getRegionInfo();<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 WAL getWAL() {<a name="line.76"></a> +<span class="sourceLineNo">077</span> return region.getWAL();<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 getMemstoreFlushSize() {<a name="line.80"></a> -<span class="sourceLineNo">081</span> return region.getMemstoreFlushSize();<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 int getNumStores() {<a name="line.84"></a> -<span class="sourceLineNo">085</span> return region.getTableDescriptor().getColumnFamilyCount();<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> // methods for tests<a name="line.88"></a> -<span class="sourceLineNo">089</span> long getMemstoreSize() {<a name="line.89"></a> -<span class="sourceLineNo">090</span> return region.getMemstoreSize();<a name="line.90"></a> -<span class="sourceLineNo">091</span> }<a name="line.91"></a> -<span class="sourceLineNo">092</span>}<a name="line.92"></a> +<span class="sourceLineNo">080</span> public ThreadPoolExecutor getInMemoryCompactionPool() { return INMEMORY_COMPACTION_POOL; }<a name="line.80"></a> +<span class="sourceLineNo">081</span><a name="line.81"></a> +<span class="sourceLineNo">082</span> public long getMemStoreFlushSize() {<a name="line.82"></a> +<span class="sourceLineNo">083</span> return region.getMemStoreFlushSize();<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> public int getNumStores() {<a name="line.86"></a> +<span class="sourceLineNo">087</span> return region.getTableDescriptor().getColumnFamilyCount();<a name="line.87"></a> +<span class="sourceLineNo">088</span> }<a name="line.88"></a> +<span class="sourceLineNo">089</span><a name="line.89"></a> +<span class="sourceLineNo">090</span> @VisibleForTesting<a name="line.90"></a> +<span class="sourceLineNo">091</span> long getMemStoreSize() {<a name="line.91"></a> +<span class="sourceLineNo">092</span> return region.getMemStoreSize();<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> http://git-wip-us.apache.org/repos/asf/hbase-site/blob/3332caca/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/Segment.html ---------------------------------------------------------------------- diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/Segment.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/Segment.html index 14f72a8..c7129d7 100644 --- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/Segment.html +++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/Segment.html @@ -283,13 +283,13 @@ <span class="sourceLineNo">275</span> return comparator;<a name="line.275"></a> <span class="sourceLineNo">276</span> }<a name="line.276"></a> <span class="sourceLineNo">277</span><a name="line.277"></a> -<span class="sourceLineNo">278</span> protected void internalAdd(Cell cell, boolean mslabUsed, MemstoreSize memstoreSize) {<a name="line.278"></a> +<span class="sourceLineNo">278</span> protected void internalAdd(Cell cell, boolean mslabUsed, MemStoreSize memstoreSize) {<a name="line.278"></a> <span class="sourceLineNo">279</span> boolean succ = getCellSet().add(cell);<a name="line.279"></a> <span class="sourceLineNo">280</span> updateMetaInfo(cell, succ, mslabUsed, memstoreSize);<a name="line.280"></a> <span class="sourceLineNo">281</span> }<a name="line.281"></a> <span class="sourceLineNo">282</span><a name="line.282"></a> <span class="sourceLineNo">283</span> protected void updateMetaInfo(Cell cellToAdd, boolean succ, boolean mslabUsed,<a name="line.283"></a> -<span class="sourceLineNo">284</span> MemstoreSize memstoreSize) {<a name="line.284"></a> +<span class="sourceLineNo">284</span> MemStoreSize memstoreSize) {<a name="line.284"></a> <span class="sourceLineNo">285</span> long cellSize = 0;<a name="line.285"></a> <span class="sourceLineNo">286</span> // If there's already a same cell in the CellSet and we are using MSLAB, we must count in the<a name="line.286"></a> <span class="sourceLineNo">287</span> // MSLAB allocation size as well, or else there will be memory leak (occupied heap size larger<a name="line.287"></a> @@ -300,7 +300,7 @@ <span class="sourceLineNo">292</span> long heapSize = heapSizeChange(cellToAdd, succ);<a name="line.292"></a> <span class="sourceLineNo">293</span> incSize(cellSize, heapSize);<a name="line.293"></a> <span class="sourceLineNo">294</span> if (memstoreSize != null) {<a name="line.294"></a> -<span class="sourceLineNo">295</span> memstoreSize.incMemstoreSize(cellSize, heapSize);<a name="line.295"></a> +<span class="sourceLineNo">295</span> memstoreSize.incMemStoreSize(cellSize, heapSize);<a name="line.295"></a> <span class="sourceLineNo">296</span> }<a name="line.296"></a> <span class="sourceLineNo">297</span> getTimeRangeTracker().includeTimestamp(cellToAdd);<a name="line.297"></a> <span class="sourceLineNo">298</span> minSequenceId = Math.min(minSequenceId, cellToAdd.getSequenceId());<a name="line.298"></a> @@ -313,7 +313,7 @@ <span class="sourceLineNo">305</span> }<a name="line.305"></a> <span class="sourceLineNo">306</span> }<a name="line.306"></a> <span class="sourceLineNo">307</span><a name="line.307"></a> -<span class="sourceLineNo">308</span> protected void updateMetaInfo(Cell cellToAdd, boolean succ, MemstoreSize memstoreSize) {<a name="line.308"></a> +<span class="sourceLineNo">308</span> protected void updateMetaInfo(Cell cellToAdd, boolean succ, MemStoreSize memstoreSize) {<a name="line.308"></a> <span class="sourceLineNo">309</span> updateMetaInfo(cellToAdd, succ, (getMemStoreLAB()!=null), memstoreSize);<a name="line.309"></a> <span class="sourceLineNo">310</span> }<a name="line.310"></a> <span class="sourceLineNo">311</span><a name="line.311"></a> http://git-wip-us.apache.org/repos/asf/hbase-site/blob/3332caca/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/SegmentFactory.html ---------------------------------------------------------------------- diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/SegmentFactory.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/SegmentFactory.html index ba1e3a8..639583f 100644 --- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/SegmentFactory.html +++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/SegmentFactory.html @@ -26,139 +26,138 @@ <span class="sourceLineNo">018</span> */<a name="line.18"></a> <span class="sourceLineNo">019</span>package org.apache.hadoop.hbase.regionserver;<a name="line.19"></a> <span class="sourceLineNo">020</span><a name="line.20"></a> -<span class="sourceLineNo">021</span>import org.apache.hadoop.hbase.shaded.com.google.common.base.Preconditions;<a name="line.21"></a> -<span class="sourceLineNo">022</span>import org.apache.hadoop.conf.Configuration;<a name="line.22"></a> -<span class="sourceLineNo">023</span>import org.apache.hadoop.hbase.CellComparator;<a name="line.23"></a> -<span class="sourceLineNo">024</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.24"></a> -<span class="sourceLineNo">025</span><a name="line.25"></a> -<span class="sourceLineNo">026</span>import java.io.IOException;<a name="line.26"></a> -<span class="sourceLineNo">027</span>import java.util.ArrayList;<a name="line.27"></a> -<span class="sourceLineNo">028</span>import java.util.List;<a name="line.28"></a> -<span class="sourceLineNo">029</span><a name="line.29"></a> -<span class="sourceLineNo">030</span>/**<a name="line.30"></a> -<span class="sourceLineNo">031</span> * A singleton store segment factory.<a name="line.31"></a> -<span class="sourceLineNo">032</span> * Generate concrete store segments.<a name="line.32"></a> -<span class="sourceLineNo">033</span> */<a name="line.33"></a> -<span class="sourceLineNo">034</span>@InterfaceAudience.Private<a name="line.34"></a> -<span class="sourceLineNo">035</span>public final class SegmentFactory {<a name="line.35"></a> -<span class="sourceLineNo">036</span><a name="line.36"></a> -<span class="sourceLineNo">037</span> private SegmentFactory() {}<a name="line.37"></a> -<span class="sourceLineNo">038</span> private static SegmentFactory instance = new SegmentFactory();<a name="line.38"></a> -<span class="sourceLineNo">039</span><a name="line.39"></a> -<span class="sourceLineNo">040</span> public static SegmentFactory instance() {<a name="line.40"></a> -<span class="sourceLineNo">041</span> return instance;<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> // create composite immutable segment from a list of segments<a name="line.44"></a> -<span class="sourceLineNo">045</span> // for snapshot consisting of multiple segments<a name="line.45"></a> -<span class="sourceLineNo">046</span> public CompositeImmutableSegment createCompositeImmutableSegment(<a name="line.46"></a> -<span class="sourceLineNo">047</span> final CellComparator comparator, List<ImmutableSegment> segments) {<a name="line.47"></a> -<span class="sourceLineNo">048</span> return new CompositeImmutableSegment(comparator, segments);<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> // create new flat immutable segment from compacting old immutable segments<a name="line.51"></a> -<span class="sourceLineNo">052</span> // for compaction<a name="line.52"></a> -<span class="sourceLineNo">053</span> public ImmutableSegment createImmutableSegmentByCompaction(final Configuration conf,<a name="line.53"></a> -<span class="sourceLineNo">054</span> final CellComparator comparator, MemStoreSegmentsIterator iterator, int numOfCells,<a name="line.54"></a> -<span class="sourceLineNo">055</span> CompactingMemStore.IndexType idxType)<a name="line.55"></a> -<span class="sourceLineNo">056</span> throws IOException {<a name="line.56"></a> -<span class="sourceLineNo">057</span><a name="line.57"></a> -<span class="sourceLineNo">058</span> MemStoreLAB memStoreLAB = MemStoreLAB.newInstance(conf);<a name="line.58"></a> -<span class="sourceLineNo">059</span> return<a name="line.59"></a> -<span class="sourceLineNo">060</span> createImmutableSegment(<a name="line.60"></a> -<span class="sourceLineNo">061</span> conf,comparator,iterator,memStoreLAB,numOfCells,MemStoreCompactor.Action.COMPACT,idxType);<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> // create empty immutable segment<a name="line.64"></a> -<span class="sourceLineNo">065</span> // for initializations<a name="line.65"></a> -<span class="sourceLineNo">066</span> public ImmutableSegment createImmutableSegment(CellComparator comparator) {<a name="line.66"></a> -<span class="sourceLineNo">067</span> MutableSegment segment = generateMutableSegment(null, comparator, null);<a name="line.67"></a> -<span class="sourceLineNo">068</span> return createImmutableSegment(segment);<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> // create not-flat immutable segment from mutable segment<a name="line.71"></a> -<span class="sourceLineNo">072</span> public ImmutableSegment createImmutableSegment(MutableSegment segment) {<a name="line.72"></a> -<span class="sourceLineNo">073</span> return new CSLMImmutableSegment(segment);<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> // create mutable segment<a name="line.76"></a> -<span class="sourceLineNo">077</span> public MutableSegment createMutableSegment(final Configuration conf, CellComparator comparator) {<a name="line.77"></a> -<span class="sourceLineNo">078</span> MemStoreLAB memStoreLAB = MemStoreLAB.newInstance(conf);<a name="line.78"></a> -<span class="sourceLineNo">079</span> return generateMutableSegment(conf, comparator, memStoreLAB);<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">082</span> // create new flat immutable segment from merging old immutable segments<a name="line.82"></a> -<span class="sourceLineNo">083</span> // for merge<a name="line.83"></a> -<span class="sourceLineNo">084</span> public ImmutableSegment createImmutableSegmentByMerge(final Configuration conf,<a name="line.84"></a> -<span class="sourceLineNo">085</span> final CellComparator comparator, MemStoreSegmentsIterator iterator, int numOfCells,<a name="line.85"></a> -<span class="sourceLineNo">086</span> List<ImmutableSegment> segments, CompactingMemStore.IndexType idxType)<a name="line.86"></a> -<span class="sourceLineNo">087</span> throws IOException {<a name="line.87"></a> -<span class="sourceLineNo">088</span><a name="line.88"></a> -<span class="sourceLineNo">089</span> MemStoreLAB memStoreLAB = getMergedMemStoreLAB(conf, segments);<a name="line.89"></a> -<span class="sourceLineNo">090</span> return<a name="line.90"></a> -<span class="sourceLineNo">091</span> createImmutableSegment(<a name="line.91"></a> -<span class="sourceLineNo">092</span> conf,comparator,iterator,memStoreLAB,numOfCells,MemStoreCompactor.Action.MERGE,idxType);<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> // create flat immutable segment from non-flat immutable segment<a name="line.96"></a> -<span class="sourceLineNo">097</span> // for flattening<a name="line.97"></a> -<span class="sourceLineNo">098</span> public ImmutableSegment createImmutableSegmentByFlattening(<a name="line.98"></a> -<span class="sourceLineNo">099</span> CSLMImmutableSegment segment, CompactingMemStore.IndexType idxType, MemstoreSize memstoreSize) {<a name="line.99"></a> -<span class="sourceLineNo">100</span> ImmutableSegment res = null;<a name="line.100"></a> -<span class="sourceLineNo">101</span> switch (idxType) {<a name="line.101"></a> -<span class="sourceLineNo">102</span> case CHUNK_MAP:<a name="line.102"></a> -<span class="sourceLineNo">103</span> res = new CellChunkImmutableSegment(segment, memstoreSize);<a name="line.103"></a> -<span class="sourceLineNo">104</span> break;<a name="line.104"></a> -<span class="sourceLineNo">105</span> case CSLM_MAP:<a name="line.105"></a> -<span class="sourceLineNo">106</span> assert false; // non-flat segment can not be the result of flattening<a name="line.106"></a> -<span class="sourceLineNo">107</span> break;<a name="line.107"></a> -<span class="sourceLineNo">108</span> case ARRAY_MAP:<a name="line.108"></a> -<span class="sourceLineNo">109</span> res = new CellArrayImmutableSegment(segment, memstoreSize);<a name="line.109"></a> -<span class="sourceLineNo">110</span> break;<a name="line.110"></a> -<span class="sourceLineNo">111</span> }<a name="line.111"></a> -<span class="sourceLineNo">112</span> return res;<a name="line.112"></a> -<span class="sourceLineNo">113</span> }<a name="line.113"></a> +<span class="sourceLineNo">021</span>import org.apache.hadoop.conf.Configuration;<a name="line.21"></a> +<span class="sourceLineNo">022</span>import org.apache.hadoop.hbase.CellComparator;<a name="line.22"></a> +<span class="sourceLineNo">023</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.23"></a> +<span class="sourceLineNo">024</span><a name="line.24"></a> +<span class="sourceLineNo">025</span>import java.io.IOException;<a name="line.25"></a> +<span class="sourceLineNo">026</span>import java.util.ArrayList;<a name="line.26"></a> +<span class="sourceLineNo">027</span>import java.util.List;<a name="line.27"></a> +<span class="sourceLineNo">028</span><a name="line.28"></a> +<span class="sourceLineNo">029</span>/**<a name="line.29"></a> +<span class="sourceLineNo">030</span> * A singleton store segment factory.<a name="line.30"></a> +<span class="sourceLineNo">031</span> * Generate concrete store segments.<a name="line.31"></a> +<span class="sourceLineNo">032</span> */<a name="line.32"></a> +<span class="sourceLineNo">033</span>@InterfaceAudience.Private<a name="line.33"></a> +<span class="sourceLineNo">034</span>public final class SegmentFactory {<a name="line.34"></a> +<span class="sourceLineNo">035</span><a name="line.35"></a> +<span class="sourceLineNo">036</span> private SegmentFactory() {}<a name="line.36"></a> +<span class="sourceLineNo">037</span> private static SegmentFactory instance = new SegmentFactory();<a name="line.37"></a> +<span class="sourceLineNo">038</span><a name="line.38"></a> +<span class="sourceLineNo">039</span> public static SegmentFactory instance() {<a name="line.39"></a> +<span class="sourceLineNo">040</span> return instance;<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> // create composite immutable segment from a list of segments<a name="line.43"></a> +<span class="sourceLineNo">044</span> // for snapshot consisting of multiple segments<a name="line.44"></a> +<span class="sourceLineNo">045</span> public CompositeImmutableSegment createCompositeImmutableSegment(<a name="line.45"></a> +<span class="sourceLineNo">046</span> final CellComparator comparator, List<ImmutableSegment> segments) {<a name="line.46"></a> +<span class="sourceLineNo">047</span> return new CompositeImmutableSegment(comparator, segments);<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> // create new flat immutable segment from compacting old immutable segments<a name="line.50"></a> +<span class="sourceLineNo">051</span> // for compaction<a name="line.51"></a> +<span class="sourceLineNo">052</span> public ImmutableSegment createImmutableSegmentByCompaction(final Configuration conf,<a name="line.52"></a> +<span class="sourceLineNo">053</span> final CellComparator comparator, MemStoreSegmentsIterator iterator, int numOfCells,<a name="line.53"></a> +<span class="sourceLineNo">054</span> CompactingMemStore.IndexType idxType)<a name="line.54"></a> +<span class="sourceLineNo">055</span> throws IOException {<a name="line.55"></a> +<span class="sourceLineNo">056</span><a name="line.56"></a> +<span class="sourceLineNo">057</span> MemStoreLAB memStoreLAB = MemStoreLAB.newInstance(conf);<a name="line.57"></a> +<span class="sourceLineNo">058</span> return<a name="line.58"></a> +<span class="sourceLineNo">059</span> createImmutableSegment(<a name="line.59"></a> +<span class="sourceLineNo">060</span> conf,comparator,iterator,memStoreLAB,numOfCells,MemStoreCompactor.Action.COMPACT,idxType);<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> // create empty immutable segment<a name="line.63"></a> +<span class="sourceLineNo">064</span> // for initializations<a name="line.64"></a> +<span class="sourceLineNo">065</span> public ImmutableSegment createImmutableSegment(CellComparator comparator) {<a name="line.65"></a> +<span class="sourceLineNo">066</span> MutableSegment segment = generateMutableSegment(null, comparator, null);<a name="line.66"></a> +<span class="sourceLineNo">067</span> return createImmutableSegment(segment);<a name="line.67"></a> +<span class="sourceLineNo">068</span> }<a name="line.68"></a> +<span class="sourceLineNo">069</span><a name="line.69"></a> +<span class="sourceLineNo">070</span> // create not-flat immutable segment from mutable segment<a name="line.70"></a> +<span class="sourceLineNo">071</span> public ImmutableSegment createImmutableSegment(MutableSegment segment) {<a name="line.71"></a> +<span class="sourceLineNo">072</span> return new CSLMImmutableSegment(segment);<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> // create mutable segment<a name="line.75"></a> +<span class="sourceLineNo">076</span> public MutableSegment createMutableSegment(final Configuration conf, CellComparator comparator) {<a name="line.76"></a> +<span class="sourceLineNo">077</span> MemStoreLAB memStoreLAB = MemStoreLAB.newInstance(conf);<a name="line.77"></a> +<span class="sourceLineNo">078</span> return generateMutableSegment(conf, comparator, memStoreLAB);<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> // create new flat immutable segment from merging old immutable segments<a name="line.81"></a> +<span class="sourceLineNo">082</span> // for merge<a name="line.82"></a> +<span class="sourceLineNo">083</span> public ImmutableSegment createImmutableSegmentByMerge(final Configuration conf,<a name="line.83"></a> +<span class="sourceLineNo">084</span> final CellComparator comparator, MemStoreSegmentsIterator iterator, int numOfCells,<a name="line.84"></a> +<span class="sourceLineNo">085</span> List<ImmutableSegment> segments, CompactingMemStore.IndexType idxType)<a name="line.85"></a> +<span class="sourceLineNo">086</span> throws IOException {<a name="line.86"></a> +<span class="sourceLineNo">087</span><a name="line.87"></a> +<span class="sourceLineNo">088</span> MemStoreLAB memStoreLAB = getMergedMemStoreLAB(conf, segments);<a name="line.88"></a> +<span class="sourceLineNo">089</span> return<a name="line.89"></a> +<span class="sourceLineNo">090</span> createImmutableSegment(<a name="line.90"></a> +<span class="sourceLineNo">091</span> conf,comparator,iterator,memStoreLAB,numOfCells,MemStoreCompactor.Action.MERGE,idxType);<a name="line.91"></a> +<span class="sourceLineNo">092</span><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> // create flat immutable segment from non-flat immutable segment<a name="line.95"></a> +<span class="sourceLineNo">096</span> // for flattening<a name="line.96"></a> +<span class="sourceLineNo">097</span> public ImmutableSegment createImmutableSegmentByFlattening(<a name="line.97"></a> +<span class="sourceLineNo">098</span> CSLMImmutableSegment segment, CompactingMemStore.IndexType idxType, MemStoreSize memstoreSize) {<a name="line.98"></a> +<span class="sourceLineNo">099</span> ImmutableSegment res = null;<a name="line.99"></a> +<span class="sourceLineNo">100</span> switch (idxType) {<a name="line.100"></a> +<span class="sourceLineNo">101</span> case CHUNK_MAP:<a name="line.101"></a> +<span class="sourceLineNo">102</span> res = new CellChunkImmutableSegment(segment, memstoreSize);<a name="line.102"></a> +<span class="sourceLineNo">103</span> break;<a name="line.103"></a> +<span class="sourceLineNo">104</span> case CSLM_MAP:<a name="line.104"></a> +<span class="sourceLineNo">105</span> assert false; // non-flat segment can not be the result of flattening<a name="line.105"></a> +<span class="sourceLineNo">106</span> break;<a name="line.106"></a> +<span class="sourceLineNo">107</span> case ARRAY_MAP:<a name="line.107"></a> +<span class="sourceLineNo">108</span> res = new CellArrayImmutableSegment(segment, memstoreSize);<a name="line.108"></a> +<span class="sourceLineNo">109</span> break;<a name="line.109"></a> +<span class="sourceLineNo">110</span> }<a name="line.110"></a> +<span class="sourceLineNo">111</span> return res;<a name="line.111"></a> +<span class="sourceLineNo">112</span> }<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> -<span class="sourceLineNo">115</span><a name="line.115"></a> -<span class="sourceLineNo">116</span> //****** private methods to instantiate concrete store segments **********//<a name="line.116"></a> -<span class="sourceLineNo">117</span> private ImmutableSegment createImmutableSegment(final Configuration conf, final CellComparator comparator,<a name="line.117"></a> -<span class="sourceLineNo">118</span> MemStoreSegmentsIterator iterator, MemStoreLAB memStoreLAB, int numOfCells,<a name="line.118"></a> -<span class="sourceLineNo">119</span> MemStoreCompactor.Action action, CompactingMemStore.IndexType idxType) {<a name="line.119"></a> -<span class="sourceLineNo">120</span><a name="line.120"></a> -<span class="sourceLineNo">121</span> ImmutableSegment res = null;<a name="line.121"></a> -<span class="sourceLineNo">122</span> switch (idxType) {<a name="line.122"></a> -<span class="sourceLineNo">123</span> case CHUNK_MAP:<a name="line.123"></a> -<span class="sourceLineNo">124</span> res = new CellChunkImmutableSegment(comparator, iterator, memStoreLAB, numOfCells, action);<a name="line.124"></a> -<span class="sourceLineNo">125</span> break;<a name="line.125"></a> -<span class="sourceLineNo">126</span> case CSLM_MAP:<a name="line.126"></a> -<span class="sourceLineNo">127</span> assert false; // non-flat segment can not be created here<a name="line.127"></a> -<span class="sourceLineNo">128</span> break;<a name="line.128"></a> -<span class="sourceLineNo">129</span> case ARRAY_MAP:<a name="line.129"></a> -<span class="sourceLineNo">130</span> res = new CellArrayImmutableSegment(comparator, iterator, memStoreLAB, numOfCells, action);<a name="line.130"></a> -<span class="sourceLineNo">131</span> break;<a name="line.131"></a> -<span class="sourceLineNo">132</span> }<a name="line.132"></a> -<span class="sourceLineNo">133</span> return res;<a name="line.133"></a> -<span class="sourceLineNo">134</span> }<a name="line.134"></a> -<span class="sourceLineNo">135</span><a name="line.135"></a> -<span class="sourceLineNo">136</span> private MutableSegment generateMutableSegment(final Configuration conf, CellComparator comparator,<a name="line.136"></a> -<span class="sourceLineNo">137</span> MemStoreLAB memStoreLAB) {<a name="line.137"></a> -<span class="sourceLineNo">138</span> // TBD use configuration to set type of segment<a name="line.138"></a> -<span class="sourceLineNo">139</span> CellSet set = new CellSet(comparator);<a name="line.139"></a> -<span class="sourceLineNo">140</span> return new MutableSegment(set, comparator, memStoreLAB);<a name="line.140"></a> -<span class="sourceLineNo">141</span> }<a name="line.141"></a> -<span class="sourceLineNo">142</span><a name="line.142"></a> -<span class="sourceLineNo">143</span> private MemStoreLAB getMergedMemStoreLAB(Configuration conf, List<ImmutableSegment> segments) {<a name="line.143"></a> -<span class="sourceLineNo">144</span> List<MemStoreLAB> mslabs = new ArrayList<>();<a name="line.144"></a> -<span class="sourceLineNo">145</span> if (!conf.getBoolean(MemStoreLAB.USEMSLAB_KEY, MemStoreLAB.USEMSLAB_DEFAULT)) {<a name="line.145"></a> -<span class="sourceLineNo">146</span> return null;<a name="line.146"></a> -<span class="sourceLineNo">147</span> }<a name="line.147"></a> -<span class="sourceLineNo">148</span> for (ImmutableSegment segment : segments) {<a name="line.148"></a> -<span class="sourceLineNo">149</span> mslabs.add(segment.getMemStoreLAB());<a name="line.149"></a> -<span class="sourceLineNo">150</span> }<a name="line.150"></a> -<span class="sourceLineNo">151</span> return new ImmutableMemStoreLAB(mslabs);<a name="line.151"></a> -<span class="sourceLineNo">152</span> }<a name="line.152"></a> -<span class="sourceLineNo">153</span>}<a name="line.153"></a> +<span class="sourceLineNo">115</span> //****** private methods to instantiate concrete store segments **********//<a name="line.115"></a> +<span class="sourceLineNo">116</span> private ImmutableSegment createImmutableSegment(final Configuration conf, final CellComparator comparator,<a name="line.116"></a> +<span class="sourceLineNo">117</span> MemStoreSegmentsIterator iterator, MemStoreLAB memStoreLAB, int numOfCells,<a name="line.117"></a> +<span class="sourceLineNo">118</span> MemStoreCompactor.Action action, CompactingMemStore.IndexType idxType) {<a name="line.118"></a> +<span class="sourceLineNo">119</span><a name="line.119"></a> +<span class="sourceLineNo">120</span> ImmutableSegment res = null;<a name="line.120"></a> +<span class="sourceLineNo">121</span> switch (idxType) {<a name="line.121"></a> +<span class="sourceLineNo">122</span> case CHUNK_MAP:<a name="line.122"></a> +<span class="sourceLineNo">123</span> res = new CellChunkImmutableSegment(comparator, iterator, memStoreLAB, numOfCells, action);<a name="line.123"></a> +<span class="sourceLineNo">124</span> break;<a name="line.124"></a> +<span class="sourceLineNo">125</span> case CSLM_MAP:<a name="line.125"></a> +<span class="sourceLineNo">126</span> assert false; // non-flat segment can not be created here<a name="line.126"></a> +<span class="sourceLineNo">127</span> break;<a name="line.127"></a> +<span class="sourceLineNo">128</span> case ARRAY_MAP:<a name="line.128"></a> +<span class="sourceLineNo">129</span> res = new CellArrayImmutableSegment(comparator, iterator, memStoreLAB, numOfCells, action);<a name="line.129"></a> +<span class="sourceLineNo">130</span> break;<a name="line.130"></a> +<span class="sourceLineNo">131</span> }<a name="line.131"></a> +<span class="sourceLineNo">132</span> return res;<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> private MutableSegment generateMutableSegment(final Configuration conf, CellComparator comparator,<a name="line.135"></a> +<span class="sourceLineNo">136</span> MemStoreLAB memStoreLAB) {<a name="line.136"></a> +<span class="sourceLineNo">137</span> // TBD use configuration to set type of segment<a name="line.137"></a> +<span class="sourceLineNo">138</span> CellSet set = new CellSet(comparator);<a name="line.138"></a> +<span class="sourceLineNo">139</span> return new MutableSegment(set, comparator, memStoreLAB);<a name="line.139"></a> +<span class="sourceLineNo">140</span> }<a name="line.140"></a> +<span class="sourceLineNo">141</span><a name="line.141"></a> +<span class="sourceLineNo">142</span> private MemStoreLAB getMergedMemStoreLAB(Configuration conf, List<ImmutableSegment> segments) {<a name="line.142"></a> +<span class="sourceLineNo">143</span> List<MemStoreLAB> mslabs = new ArrayList<>();<a name="line.143"></a> +<span class="sourceLineNo">144</span> if (!conf.getBoolean(MemStoreLAB.USEMSLAB_KEY, MemStoreLAB.USEMSLAB_DEFAULT)) {<a name="line.144"></a> +<span class="sourceLineNo">145</span> return null;<a name="line.145"></a> +<span class="sourceLineNo">146</span> }<a name="line.146"></a> +<span class="sourceLineNo">147</span> for (ImmutableSegment segment : segments) {<a name="line.147"></a> +<span class="sourceLineNo">148</span> mslabs.add(segment.getMemStoreLAB());<a name="line.148"></a> +<span class="sourceLineNo">149</span> }<a name="line.149"></a> +<span class="sourceLineNo">150</span> return new ImmutableMemStoreLAB(mslabs);<a name="line.150"></a> +<span class="sourceLineNo">151</span> }<a name="line.151"></a> +<span class="sourceLineNo">152</span>}<a name="line.152"></a> http://git-wip-us.apache.org/repos/asf/hbase-site/blob/3332caca/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/Store.html ---------------------------------------------------------------------- diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/Store.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/Store.html index 11c91aa..ad3d0bb 100644 --- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/Store.html +++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/Store.html @@ -105,19 +105,19 @@ <span class="sourceLineNo">097</span> /**<a name="line.97"></a> <span class="sourceLineNo">098</span> * @return The size of this store's memstore.<a name="line.98"></a> <span class="sourceLineNo">099</span> */<a name="line.99"></a> -<span class="sourceLineNo">100</span> MemstoreSize getMemStoreSize();<a name="line.100"></a> +<span class="sourceLineNo">100</span> MemStoreSize getMemStoreSize();<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> * @return The amount of memory we could flush from this memstore; usually this is equal to<a name="line.103"></a> <span class="sourceLineNo">104</span> * {@link #getMemStoreSize()} unless we are carrying snapshots and then it will be the size of<a name="line.104"></a> <span class="sourceLineNo">105</span> * outstanding snapshots.<a name="line.105"></a> <span class="sourceLineNo">106</span> */<a name="line.106"></a> -<span class="sourceLineNo">107</span> MemstoreSize getFlushableSize();<a name="line.107"></a> +<span class="sourceLineNo">107</span> MemStoreSize getFlushableSize();<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> * @return size of the memstore snapshot<a name="line.110"></a> <span class="sourceLineNo">111</span> */<a name="line.111"></a> -<span class="sourceLineNo">112</span> MemstoreSize getSnapshotSize();<a name="line.112"></a> +<span class="sourceLineNo">112</span> MemStoreSize getSnapshotSize();<a name="line.112"></a> <span class="sourceLineNo">113</span><a name="line.113"></a> <span class="sourceLineNo">114</span> ColumnFamilyDescriptor getColumnFamilyDescriptor();<a name="line.114"></a> <span class="sourceLineNo">115</span><a name="line.115"></a> @@ -129,7 +129,7 @@ <span class="sourceLineNo">121</span> /**<a name="line.121"></a> <span class="sourceLineNo">122</span> * @return The maximum memstoreTS in all store files.<a name="line.122"></a> <span class="sourceLineNo">123</span> */<a name="line.123"></a> -<span class="sourceLineNo">124</span> OptionalLong getMaxMemstoreTS();<a name="line.124"></a> +<span class="sourceLineNo">124</span> OptionalLong getMaxMemStoreTS();<a name="line.124"></a> <span class="sourceLineNo">125</span><a name="line.125"></a> <span class="sourceLineNo">126</span> /** @return aggregate size of all HStores used in the last compaction */<a name="line.126"></a> <span class="sourceLineNo">127</span> long getLastCompactSize();<a name="line.127"></a> @@ -297,7 +297,7 @@ <span class="sourceLineNo">289</span> /**<a name="line.289"></a> <span class="sourceLineNo">290</span> * @return true if the memstore may need some extra memory space<a name="line.290"></a> <span class="sourceLineNo">291</span> */<a name="line.291"></a> -<span class="sourceLineNo">292</span> boolean isSloppyMemstore();<a name="line.292"></a> +<span class="sourceLineNo">292</span> boolean isSloppyMemStore();<a name="line.292"></a> <span class="sourceLineNo">293</span>}<a name="line.293"></a> http://git-wip-us.apache.org/repos/asf/hbase-site/blob/3332caca/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StoreConfigInformation.html ---------------------------------------------------------------------- diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StoreConfigInformation.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StoreConfigInformation.html index a716490..60a4827 100644 --- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StoreConfigInformation.html +++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StoreConfigInformation.html @@ -43,7 +43,7 @@ <span class="sourceLineNo">035</span> */<a name="line.35"></a> <span class="sourceLineNo">036</span> // TODO: Why is this in here? It should be in Store and it should return the Store flush size,<a name="line.36"></a> <span class="sourceLineNo">037</span> // not the Regions. St.Ack<a name="line.37"></a> -<span class="sourceLineNo">038</span> long getMemstoreFlushSize();<a name="line.38"></a> +<span class="sourceLineNo">038</span> long getMemStoreFlushSize();<a name="line.38"></a> <span class="sourceLineNo">039</span><a name="line.39"></a> <span class="sourceLineNo">040</span> /**<a name="line.40"></a> <span class="sourceLineNo">041</span> * @return Gets the cf-specific time-to-live for store files.<a name="line.41"></a> http://git-wip-us.apache.org/repos/asf/hbase-site/blob/3332caca/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StoreFile.html ---------------------------------------------------------------------- diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StoreFile.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StoreFile.html index 9d5513b..c0aec8b 100644 --- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StoreFile.html +++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StoreFile.html @@ -67,7 +67,7 @@ <span class="sourceLineNo">059</span> /**<a name="line.59"></a> <span class="sourceLineNo">060</span> * Get max of the MemstoreTS in the KV's in this store file.<a name="line.60"></a> <span class="sourceLineNo">061</span> */<a name="line.61"></a> -<span class="sourceLineNo">062</span> long getMaxMemstoreTS();<a name="line.62"></a> +<span class="sourceLineNo">062</span> long getMaxMemStoreTS();<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> * @return Path or null if this StoreFile was made with a Stream.<a name="line.65"></a> http://git-wip-us.apache.org/repos/asf/hbase-site/blob/3332caca/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StoreUtils.html ---------------------------------------------------------------------- diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StoreUtils.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StoreUtils.html index 9c4f2f2..76bb271 100644 --- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StoreUtils.html +++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StoreUtils.html @@ -89,8 +89,8 @@ <span class="sourceLineNo">081</span> * were created by a mapreduce bulk load are ignored, as they do not correspond to any specific<a name="line.81"></a> <span class="sourceLineNo">082</span> * put operation, and thus do not have a memstoreTS associated with them.<a name="line.82"></a> <span class="sourceLineNo">083</span> */<a name="line.83"></a> -<span class="sourceLineNo">084</span> public static OptionalLong getMaxMemstoreTSInList(Collection<HStoreFile> sfs) {<a name="line.84"></a> -<span class="sourceLineNo">085</span> return sfs.stream().filter(sf -> !sf.isBulkLoadResult()).mapToLong(HStoreFile::getMaxMemstoreTS)<a name="line.85"></a> +<span class="sourceLineNo">084</span> public static OptionalLong getMaxMemStoreTSInList(Collection<HStoreFile> sfs) {<a name="line.84"></a> +<span class="sourceLineNo">085</span> return sfs.stream().filter(sf -> !sf.isBulkLoadResult()).mapToLong(HStoreFile::getMaxMemStoreTS)<a name="line.85"></a> <span class="sourceLineNo">086</span> .max();<a name="line.86"></a> <span class="sourceLineNo">087</span> }<a name="line.87"></a> <span class="sourceLineNo">088</span><a name="line.88"></a> http://git-wip-us.apache.org/repos/asf/hbase-site/blob/3332caca/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StripeStoreConfig.html ---------------------------------------------------------------------- diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StripeStoreConfig.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StripeStoreConfig.html index 09304d6..19c7ca2 100644 --- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StripeStoreConfig.html +++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StripeStoreConfig.html @@ -104,7 +104,7 @@ <span class="sourceLineNo">096</span> this.splitPartCount = splitPartCount;<a name="line.96"></a> <span class="sourceLineNo">097</span> // Arbitrary default split size - 4 times the size of one L0 compaction.<a name="line.97"></a> <span class="sourceLineNo">098</span> // If we flush into L0 there's no split compaction, but for default value it is ok.<a name="line.98"></a> -<span class="sourceLineNo">099</span> double flushSize = sci.getMemstoreFlushSize();<a name="line.99"></a> +<span class="sourceLineNo">099</span> double flushSize = sci.getMemStoreFlushSize();<a name="line.99"></a> <span class="sourceLineNo">100</span> if (flushSize == 0) {<a name="line.100"></a> <span class="sourceLineNo">101</span> flushSize = 128 * 1024 * 1024;<a name="line.101"></a> <span class="sourceLineNo">102</span> }<a name="line.102"></a> http://git-wip-us.apache.org/repos/asf/hbase-site/blob/3332caca/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/compactions/CompactionConfiguration.html ---------------------------------------------------------------------- diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/compactions/CompactionConfiguration.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/compactions/CompactionConfiguration.html index af2830a..b53ef40 100644 --- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/compactions/CompactionConfiguration.html +++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/compactions/CompactionConfiguration.html @@ -123,10 +123,10 @@ <span class="sourceLineNo">115</span> this.storeConfigInfo = storeConfigInfo;<a name="line.115"></a> <span class="sourceLineNo">116</span><a name="line.116"></a> <span class="sourceLineNo">117</span> maxCompactSize = conf.getLong(HBASE_HSTORE_COMPACTION_MAX_SIZE_KEY, Long.MAX_VALUE);<a name="line.117"></a> -<span class="sourceLineNo">118</span> offPeakMaxCompactSize = conf.getLong(HBASE_HSTORE_COMPACTION_MAX_SIZE_OFFPEAK_KEY, <a name="line.118"></a> -<span class="sourceLineNo">119</span> maxCompactSize); <a name="line.119"></a> +<span class="sourceLineNo">118</span> offPeakMaxCompactSize = conf.getLong(HBASE_HSTORE_COMPACTION_MAX_SIZE_OFFPEAK_KEY,<a name="line.118"></a> +<span class="sourceLineNo">119</span> maxCompactSize);<a name="line.119"></a> <span class="sourceLineNo">120</span> minCompactSize = conf.getLong(HBASE_HSTORE_COMPACTION_MIN_SIZE_KEY,<a name="line.120"></a> -<span class="sourceLineNo">121</span> storeConfigInfo.getMemstoreFlushSize());<a name="line.121"></a> +<span class="sourceLineNo">121</span> storeConfigInfo.getMemStoreFlushSize());<a name="line.121"></a> <span class="sourceLineNo">122</span> minFilesToCompact = Math.max(2, conf.getInt(HBASE_HSTORE_COMPACTION_MIN_KEY,<a name="line.122"></a> <span class="sourceLineNo">123</span> /*old name*/ conf.getInt("hbase.hstore.compactionThreshold", 3)));<a name="line.123"></a> <span class="sourceLineNo">124</span> maxFilesToCompact = conf.getInt(HBASE_HSTORE_COMPACTION_MAX_KEY, 10);<a name="line.124"></a> @@ -134,7 +134,7 @@ <span class="sourceLineNo">126</span> offPeakCompactionRatio = conf.getFloat(HBASE_HSTORE_COMPACTION_RATIO_OFFPEAK_KEY, 5.0F);<a name="line.126"></a> <span class="sourceLineNo">127</span><a name="line.127"></a> <span class="sourceLineNo">128</span> throttlePoint = conf.getLong("hbase.regionserver.thread.compaction.throttle",<a name="line.128"></a> -<span class="sourceLineNo">129</span> 2 * maxFilesToCompact * storeConfigInfo.getMemstoreFlushSize());<a name="line.129"></a> +<span class="sourceLineNo">129</span> 2 * maxFilesToCompact * storeConfigInfo.getMemStoreFlushSize());<a name="line.129"></a> <span class="sourceLineNo">130</span> majorCompactionPeriod = conf.getLong(HConstants.MAJOR_COMPACTION_PERIOD, 1000*60*60*24*7);<a name="line.130"></a> <span class="sourceLineNo">131</span> // Make it 0.5 so jitter has us fall evenly either side of when the compaction should run<a name="line.131"></a> <span class="sourceLineNo">132</span> majorCompactionJitter = conf.getFloat("hbase.hregion.majorcompaction.jitter", 0.50F);<a name="line.132"></a> http://git-wip-us.apache.org/repos/asf/hbase-site/blob/3332caca/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/compactions/Compactor.CellSinkFactory.html ---------------------------------------------------------------------- diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/compactions/Compactor.CellSinkFactory.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/compactions/Compactor.CellSinkFactory.html index f0c3ab9..9cfa5f7 100644 --- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/compactions/Compactor.CellSinkFactory.html +++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/compactions/Compactor.CellSinkFactory.html @@ -85,7 +85,7 @@ <span class="sourceLineNo">077</span> protected final int compactionKVMax;<a name="line.77"></a> <span class="sourceLineNo">078</span> protected final Compression.Algorithm compactionCompression;<a name="line.78"></a> <span class="sourceLineNo">079</span><a name="line.79"></a> -<span class="sourceLineNo">080</span> /** specify how many days to keep MVCC values during major compaction **/ <a name="line.80"></a> +<span class="sourceLineNo">080</span> /** specify how many days to keep MVCC values during major compaction **/<a name="line.80"></a> <span class="sourceLineNo">081</span> protected int keepSeqIdPeriod;<a name="line.81"></a> <span class="sourceLineNo">082</span><a name="line.82"></a> <span class="sourceLineNo">083</span> // Configs that drive whether we drop page cache behind compactions<a name="line.83"></a> @@ -149,15 +149,15 @@ <span class="sourceLineNo">141</span> protected FileDetails getFileDetails(<a name="line.141"></a> <span class="sourceLineNo">142</span> Collection<HStoreFile> filesToCompact, boolean allFiles) throws IOException {<a name="line.142"></a> <span class="sourceLineNo">143</span> FileDetails fd = new FileDetails();<a name="line.143"></a> -<span class="sourceLineNo">144</span> long oldestHFileTimeStampToKeepMVCC = System.currentTimeMillis() - <a name="line.144"></a> -<span class="sourceLineNo">145</span> (1000L * 60 * 60 * 24 * this.keepSeqIdPeriod); <a name="line.145"></a> +<span class="sourceLineNo">144</span> long oldestHFileTimeStampToKeepMVCC = System.currentTimeMillis() -<a name="line.144"></a> +<span class="sourceLineNo">145</span> (1000L * 60 * 60 * 24 * this.keepSeqIdPeriod);<a name="line.145"></a> <span class="sourceLineNo">146</span><a name="line.146"></a> <span class="sourceLineNo">147</span> for (HStoreFile file : filesToCompact) {<a name="line.147"></a> <span class="sourceLineNo">148</span> if(allFiles && (file.getModificationTimeStamp() < oldestHFileTimeStampToKeepMVCC)) {<a name="line.148"></a> -<span class="sourceLineNo">149</span> // when isAllFiles is true, all files are compacted so we can calculate the smallest <a name="line.149"></a> +<span class="sourceLineNo">149</span> // when isAllFiles is true, all files are compacted so we can calculate the smallest<a name="line.149"></a> <span class="sourceLineNo">150</span> // MVCC value to keep<a name="line.150"></a> -<span class="sourceLineNo">151</span> if(fd.minSeqIdToKeep < file.getMaxMemstoreTS()) {<a name="line.151"></a> -<span class="sourceLineNo">152</span> fd.minSeqIdToKeep = file.getMaxMemstoreTS();<a name="line.152"></a> +<span class="sourceLineNo">151</span> if(fd.minSeqIdToKeep < file.getMaxMemStoreTS()) {<a name="line.151"></a> +<span class="sourceLineNo">152</span> fd.minSeqIdToKeep = file.getMaxMemStoreTS();<a name="line.152"></a> <span class="sourceLineNo">153</span> }<a name="line.153"></a> <span class="sourceLineNo">154</span> }<a name="line.154"></a> <span class="sourceLineNo">155</span> long seqNum = file.getMaxSequenceId();<a name="line.155"></a> http://git-wip-us.apache.org/repos/asf/hbase-site/blob/3332caca/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/compactions/Compactor.FileDetails.html ---------------------------------------------------------------------- diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/compactions/Compactor.FileDetails.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/compactions/Compactor.FileDetails.html index f0c3ab9..9cfa5f7 100644 --- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/compactions/Compactor.FileDetails.html +++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/compactions/Compactor.FileDetails.html @@ -85,7 +85,7 @@ <span class="sourceLineNo">077</span> protected final int compactionKVMax;<a name="line.77"></a> <span class="sourceLineNo">078</span> protected final Compression.Algorithm compactionCompression;<a name="line.78"></a> <span class="sourceLineNo">079</span><a name="line.79"></a> -<span class="sourceLineNo">080</span> /** specify how many days to keep MVCC values during major compaction **/ <a name="line.80"></a> +<span class="sourceLineNo">080</span> /** specify how many days to keep MVCC values during major compaction **/<a name="line.80"></a> <span class="sourceLineNo">081</span> protected int keepSeqIdPeriod;<a name="line.81"></a> <span class="sourceLineNo">082</span><a name="line.82"></a> <span class="sourceLineNo">083</span> // Configs that drive whether we drop page cache behind compactions<a name="line.83"></a> @@ -149,15 +149,15 @@ <span class="sourceLineNo">141</span> protected FileDetails getFileDetails(<a name="line.141"></a> <span class="sourceLineNo">142</span> Collection<HStoreFile> filesToCompact, boolean allFiles) throws IOException {<a name="line.142"></a> <span class="sourceLineNo">143</span> FileDetails fd = new FileDetails();<a name="line.143"></a> -<span class="sourceLineNo">144</span> long oldestHFileTimeStampToKeepMVCC = System.currentTimeMillis() - <a name="line.144"></a> -<span class="sourceLineNo">145</span> (1000L * 60 * 60 * 24 * this.keepSeqIdPeriod); <a name="line.145"></a> +<span class="sourceLineNo">144</span> long oldestHFileTimeStampToKeepMVCC = System.currentTimeMillis() -<a name="line.144"></a> +<span class="sourceLineNo">145</span> (1000L * 60 * 60 * 24 * this.keepSeqIdPeriod);<a name="line.145"></a> <span class="sourceLineNo">146</span><a name="line.146"></a> <span class="sourceLineNo">147</span> for (HStoreFile file : filesToCompact) {<a name="line.147"></a> <span class="sourceLineNo">148</span> if(allFiles && (file.getModificationTimeStamp() < oldestHFileTimeStampToKeepMVCC)) {<a name="line.148"></a> -<span class="sourceLineNo">149</span> // when isAllFiles is true, all files are compacted so we can calculate the smallest <a name="line.149"></a> +<span class="sourceLineNo">149</span> // when isAllFiles is true, all files are compacted so we can calculate the smallest<a name="line.149"></a> <span class="sourceLineNo">150</span> // MVCC value to keep<a name="line.150"></a> -<span class="sourceLineNo">151</span> if(fd.minSeqIdToKeep < file.getMaxMemstoreTS()) {<a name="line.151"></a> -<span class="sourceLineNo">152</span> fd.minSeqIdToKeep = file.getMaxMemstoreTS();<a name="line.152"></a> +<span class="sourceLineNo">151</span> if(fd.minSeqIdToKeep < file.getMaxMemStoreTS()) {<a name="line.151"></a> +<span class="sourceLineNo">152</span> fd.minSeqIdToKeep = file.getMaxMemStoreTS();<a name="line.152"></a> <span class="sourceLineNo">153</span> }<a name="line.153"></a> <span class="sourceLineNo">154</span> }<a name="line.154"></a> <span class="sourceLineNo">155</span> long seqNum = file.getMaxSequenceId();<a name="line.155"></a> http://git-wip-us.apache.org/repos/asf/hbase-site/blob/3332caca/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/compactions/Compactor.InternalScannerFactory.html ---------------------------------------------------------------------- diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/compactions/Compactor.InternalScannerFactory.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/compactions/Compactor.InternalScannerFactory.html index f0c3ab9..9cfa5f7 100644 --- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/compactions/Compactor.InternalScannerFactory.html +++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/compactions/Compactor.InternalScannerFactory.html @@ -85,7 +85,7 @@ <span class="sourceLineNo">077</span> protected final int compactionKVMax;<a name="line.77"></a> <span class="sourceLineNo">078</span> protected final Compression.Algorithm compactionCompression;<a name="line.78"></a> <span class="sourceLineNo">079</span><a name="line.79"></a> -<span class="sourceLineNo">080</span> /** specify how many days to keep MVCC values during major compaction **/ <a name="line.80"></a> +<span class="sourceLineNo">080</span> /** specify how many days to keep MVCC values during major compaction **/<a name="line.80"></a> <span class="sourceLineNo">081</span> protected int keepSeqIdPeriod;<a name="line.81"></a> <span class="sourceLineNo">082</span><a name="line.82"></a> <span class="sourceLineNo">083</span> // Configs that drive whether we drop page cache behind compactions<a name="line.83"></a> @@ -149,15 +149,15 @@ <span class="sourceLineNo">141</span> protected FileDetails getFileDetails(<a name="line.141"></a> <span class="sourceLineNo">142</span> Collection<HStoreFile> filesToCompact, boolean allFiles) throws IOException {<a name="line.142"></a> <span class="sourceLineNo">143</span> FileDetails fd = new FileDetails();<a name="line.143"></a> -<span class="sourceLineNo">144</span> long oldestHFileTimeStampToKeepMVCC = System.currentTimeMillis() - <a name="line.144"></a> -<span class="sourceLineNo">145</span> (1000L * 60 * 60 * 24 * this.keepSeqIdPeriod); <a name="line.145"></a> +<span class="sourceLineNo">144</span> long oldestHFileTimeStampToKeepMVCC = System.currentTimeMillis() -<a name="line.144"></a> +<span class="sourceLineNo">145</span> (1000L * 60 * 60 * 24 * this.keepSeqIdPeriod);<a name="line.145"></a> <span class="sourceLineNo">146</span><a name="line.146"></a> <span class="sourceLineNo">147</span> for (HStoreFile file : filesToCompact) {<a name="line.147"></a> <span class="sourceLineNo">148</span> if(allFiles && (file.getModificationTimeStamp() < oldestHFileTimeStampToKeepMVCC)) {<a name="line.148"></a> -<span class="sourceLineNo">149</span> // when isAllFiles is true, all files are compacted so we can calculate the smallest <a name="line.149"></a> +<span class="sourceLineNo">149</span> // when isAllFiles is true, all files are compacted so we can calculate the smallest<a name="line.149"></a> <span class="sourceLineNo">150</span> // MVCC value to keep<a name="line.150"></a> -<span class="sourceLineNo">151</span> if(fd.minSeqIdToKeep < file.getMaxMemstoreTS()) {<a name="line.151"></a> -<span class="sourceLineNo">152</span> fd.minSeqIdToKeep = file.getMaxMemstoreTS();<a name="line.152"></a> +<span class="sourceLineNo">151</span> if(fd.minSeqIdToKeep < file.getMaxMemStoreTS()) {<a name="line.151"></a> +<span class="sourceLineNo">152</span> fd.minSeqIdToKeep = file.getMaxMemStoreTS();<a name="line.152"></a> <span class="sourceLineNo">153</span> }<a name="line.153"></a> <span class="sourceLineNo">154</span> }<a name="line.154"></a> <span class="sourceLineNo">155</span> long seqNum = file.getMaxSequenceId();<a name="line.155"></a>
