http://git-wip-us.apache.org/repos/asf/hbase-site/blob/3332caca/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.FlushHandler.html ---------------------------------------------------------------------- diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.FlushHandler.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.FlushHandler.html index ce2e1a7..8596033 100644 --- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.FlushHandler.html +++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.FlushHandler.html @@ -115,10 +115,10 @@ <span class="sourceLineNo">107</span> this.flushHandlers = new FlushHandler[handlerCount];<a name="line.107"></a> <span class="sourceLineNo">108</span> LOG.info("globalMemStoreLimit="<a name="line.108"></a> <span class="sourceLineNo">109</span> + TraditionalBinaryPrefix<a name="line.109"></a> -<span class="sourceLineNo">110</span> .long2String(this.server.getRegionServerAccounting().getGlobalMemstoreLimit(), "", 1)<a name="line.110"></a> +<span class="sourceLineNo">110</span> .long2String(this.server.getRegionServerAccounting().getGlobalMemStoreLimit(), "", 1)<a name="line.110"></a> <span class="sourceLineNo">111</span> + ", globalMemStoreLimitLowMark="<a name="line.111"></a> <span class="sourceLineNo">112</span> + TraditionalBinaryPrefix.long2String(<a name="line.112"></a> -<span class="sourceLineNo">113</span> this.server.getRegionServerAccounting().getGlobalMemstoreLimitLowMark(), "", 1)<a name="line.113"></a> +<span class="sourceLineNo">113</span> this.server.getRegionServerAccounting().getGlobalMemStoreLimitLowMark(), "", 1)<a name="line.113"></a> <span class="sourceLineNo">114</span> + ", Offheap="<a name="line.114"></a> <span class="sourceLineNo">115</span> + (this.server.getRegionServerAccounting().isOffheap()));<a name="line.115"></a> <span class="sourceLineNo">116</span> }<a name="line.116"></a> @@ -144,12 +144,12 @@ <span class="sourceLineNo">136</span> while (!flushedOne) {<a name="line.136"></a> <span class="sourceLineNo">137</span> // Find the biggest region that doesn't have too many storefiles<a name="line.137"></a> <span class="sourceLineNo">138</span> // (might be null!)<a name="line.138"></a> -<span class="sourceLineNo">139</span> Region bestFlushableRegion = getBiggestMemstoreRegion(regionsBySize, excludedRegions, true);<a name="line.139"></a> +<span class="sourceLineNo">139</span> Region bestFlushableRegion = getBiggestMemStoreRegion(regionsBySize, excludedRegions, true);<a name="line.139"></a> <span class="sourceLineNo">140</span> // Find the biggest region, total, even if it might have too many flushes.<a name="line.140"></a> -<span class="sourceLineNo">141</span> Region bestAnyRegion = getBiggestMemstoreRegion(<a name="line.141"></a> +<span class="sourceLineNo">141</span> Region bestAnyRegion = getBiggestMemStoreRegion(<a name="line.141"></a> <span class="sourceLineNo">142</span> regionsBySize, excludedRegions, false);<a name="line.142"></a> <span class="sourceLineNo">143</span> // Find the biggest region that is a secondary region<a name="line.143"></a> -<span class="sourceLineNo">144</span> Region bestRegionReplica = getBiggestMemstoreOfRegionReplica(regionsBySize,<a name="line.144"></a> +<span class="sourceLineNo">144</span> Region bestRegionReplica = getBiggestMemStoreOfRegionReplica(regionsBySize,<a name="line.144"></a> <span class="sourceLineNo">145</span> excludedRegions);<a name="line.145"></a> <span class="sourceLineNo">146</span><a name="line.146"></a> <span class="sourceLineNo">147</span> if (bestAnyRegion == null && bestRegionReplica == null) {<a name="line.147"></a> @@ -159,7 +159,7 @@ <span class="sourceLineNo">151</span><a name="line.151"></a> <span class="sourceLineNo">152</span> Region regionToFlush;<a name="line.152"></a> <span class="sourceLineNo">153</span> if (bestFlushableRegion != null &&<a name="line.153"></a> -<span class="sourceLineNo">154</span> bestAnyRegion.getMemstoreSize() > 2 * bestFlushableRegion.getMemstoreSize()) {<a name="line.154"></a> +<span class="sourceLineNo">154</span> bestAnyRegion.getMemStoreSize() > 2 * bestFlushableRegion.getMemStoreSize()) {<a name="line.154"></a> <span class="sourceLineNo">155</span> // Even if it's not supposed to be flushed, pick a region if it's more than twice<a name="line.155"></a> <span class="sourceLineNo">156</span> // as big as the best flushable one - otherwise when we're under pressure we make<a name="line.156"></a> <span class="sourceLineNo">157</span> // lots of little flushes and cause lots of compactions, etc, which just makes<a name="line.157"></a> @@ -168,9 +168,9 @@ <span class="sourceLineNo">160</span> LOG.debug("Under global heap pressure: " + "Region "<a name="line.160"></a> <span class="sourceLineNo">161</span> + bestAnyRegion.getRegionInfo().getRegionNameAsString()<a name="line.161"></a> <span class="sourceLineNo">162</span> + " has too many " + "store files, but is "<a name="line.162"></a> -<span class="sourceLineNo">163</span> + TraditionalBinaryPrefix.long2String(bestAnyRegion.getMemstoreSize(), "", 1)<a name="line.163"></a> +<span class="sourceLineNo">163</span> + TraditionalBinaryPrefix.long2String(bestAnyRegion.getMemStoreSize(), "", 1)<a name="line.163"></a> <span class="sourceLineNo">164</span> + " vs best flushable region's "<a name="line.164"></a> -<span class="sourceLineNo">165</span> + TraditionalBinaryPrefix.long2String(bestFlushableRegion.getMemstoreSize(), "", 1)<a name="line.165"></a> +<span class="sourceLineNo">165</span> + TraditionalBinaryPrefix.long2String(bestFlushableRegion.getMemStoreSize(), "", 1)<a name="line.165"></a> <span class="sourceLineNo">166</span> + ". Choosing the bigger.");<a name="line.166"></a> <span class="sourceLineNo">167</span> }<a name="line.167"></a> <span class="sourceLineNo">168</span> regionToFlush = bestAnyRegion;<a name="line.168"></a> @@ -183,20 +183,20 @@ <span class="sourceLineNo">175</span> }<a name="line.175"></a> <span class="sourceLineNo">176</span><a name="line.176"></a> <span class="sourceLineNo">177</span> Preconditions.checkState(<a name="line.177"></a> -<span class="sourceLineNo">178</span> (regionToFlush != null && regionToFlush.getMemstoreSize() > 0) ||<a name="line.178"></a> -<span class="sourceLineNo">179</span> (bestRegionReplica != null && bestRegionReplica.getMemstoreSize() > 0));<a name="line.179"></a> +<span class="sourceLineNo">178</span> (regionToFlush != null && regionToFlush.getMemStoreSize() > 0) ||<a name="line.178"></a> +<span class="sourceLineNo">179</span> (bestRegionReplica != null && bestRegionReplica.getMemStoreSize() > 0));<a name="line.179"></a> <span class="sourceLineNo">180</span><a name="line.180"></a> <span class="sourceLineNo">181</span> if (regionToFlush == null ||<a name="line.181"></a> <span class="sourceLineNo">182</span> (bestRegionReplica != null &&<a name="line.182"></a> <span class="sourceLineNo">183</span> ServerRegionReplicaUtil.isRegionReplicaStoreFileRefreshEnabled(conf) &&<a name="line.183"></a> -<span class="sourceLineNo">184</span> (bestRegionReplica.getMemstoreSize()<a name="line.184"></a> -<span class="sourceLineNo">185</span> > secondaryMultiplier * regionToFlush.getMemstoreSize()))) {<a name="line.185"></a> +<span class="sourceLineNo">184</span> (bestRegionReplica.getMemStoreSize()<a name="line.184"></a> +<span class="sourceLineNo">185</span> > secondaryMultiplier * regionToFlush.getMemStoreSize()))) {<a name="line.185"></a> <span class="sourceLineNo">186</span> LOG.info("Refreshing storefiles of region " + bestRegionReplica<a name="line.186"></a> <span class="sourceLineNo">187</span> + " due to global heap pressure. Total memstore datasize="<a name="line.187"></a> <span class="sourceLineNo">188</span> + StringUtils<a name="line.188"></a> -<span class="sourceLineNo">189</span> .humanReadableInt(server.getRegionServerAccounting().getGlobalMemstoreDataSize())<a name="line.189"></a> +<span class="sourceLineNo">189</span> .humanReadableInt(server.getRegionServerAccounting().getGlobalMemStoreDataSize())<a name="line.189"></a> <span class="sourceLineNo">190</span> + " memstore heap size=" + StringUtils.humanReadableInt(<a name="line.190"></a> -<span class="sourceLineNo">191</span> server.getRegionServerAccounting().getGlobalMemstoreHeapSize()));<a name="line.191"></a> +<span class="sourceLineNo">191</span> server.getRegionServerAccounting().getGlobalMemStoreHeapSize()));<a name="line.191"></a> <span class="sourceLineNo">192</span> flushedOne = refreshStoreFilesAndReclaimMemory(bestRegionReplica);<a name="line.192"></a> <span class="sourceLineNo">193</span> if (!flushedOne) {<a name="line.193"></a> <span class="sourceLineNo">194</span> LOG.info("Excluding secondary region " + bestRegionReplica +<a name="line.194"></a> @@ -206,9 +206,9 @@ <span class="sourceLineNo">198</span> } else {<a name="line.198"></a> <span class="sourceLineNo">199</span> LOG.info("Flush of region " + regionToFlush + " due to global heap pressure. "<a name="line.199"></a> <span class="sourceLineNo">200</span> + "Total Memstore size="<a name="line.200"></a> -<span class="sourceLineNo">201</span> + humanReadableInt(server.getRegionServerAccounting().getGlobalMemstoreDataSize())<a name="line.201"></a> +<span class="sourceLineNo">201</span> + humanReadableInt(server.getRegionServerAccounting().getGlobalMemStoreDataSize())<a name="line.201"></a> <span class="sourceLineNo">202</span> + ", Region memstore size="<a name="line.202"></a> -<span class="sourceLineNo">203</span> + humanReadableInt(regionToFlush.getMemstoreSize()));<a name="line.203"></a> +<span class="sourceLineNo">203</span> + humanReadableInt(regionToFlush.getMemStoreSize()));<a name="line.203"></a> <span class="sourceLineNo">204</span> flushedOne = flushRegion(regionToFlush, true, false);<a name="line.204"></a> <span class="sourceLineNo">205</span><a name="line.205"></a> <span class="sourceLineNo">206</span> if (!flushedOne) {<a name="line.206"></a> @@ -239,7 +239,7 @@ <span class="sourceLineNo">231</span> if (type != FlushType.NORMAL) {<a name="line.231"></a> <span class="sourceLineNo">232</span> LOG.debug("Flush thread woke up because memory above low water="<a name="line.232"></a> <span class="sourceLineNo">233</span> + TraditionalBinaryPrefix.long2String(<a name="line.233"></a> -<span class="sourceLineNo">234</span> server.getRegionServerAccounting().getGlobalMemstoreLimitLowMark(), "", 1));<a name="line.234"></a> +<span class="sourceLineNo">234</span> server.getRegionServerAccounting().getGlobalMemStoreLimitLowMark(), "", 1));<a name="line.234"></a> <span class="sourceLineNo">235</span> // For offheap memstore, even if the lower water mark was breached due to heap overhead<a name="line.235"></a> <span class="sourceLineNo">236</span> // we still select the regions based on the region's memstore data size.<a name="line.236"></a> <span class="sourceLineNo">237</span> // TODO : If we want to decide based on heap over head it can be done without tracking<a name="line.237"></a> @@ -291,7 +291,7 @@ <span class="sourceLineNo">283</span> }<a name="line.283"></a> <span class="sourceLineNo">284</span> }<a name="line.284"></a> <span class="sourceLineNo">285</span><a name="line.285"></a> -<span class="sourceLineNo">286</span> private Region getBiggestMemstoreRegion(<a name="line.286"></a> +<span class="sourceLineNo">286</span> private Region getBiggestMemStoreRegion(<a name="line.286"></a> <span class="sourceLineNo">287</span> SortedMap<Long, Region> regionsBySize,<a name="line.287"></a> <span class="sourceLineNo">288</span> Set<Region> excludedRegions,<a name="line.288"></a> <span class="sourceLineNo">289</span> boolean checkStoreFileCount) {<a name="line.289"></a> @@ -315,7 +315,7 @@ <span class="sourceLineNo">307</span> return null;<a name="line.307"></a> <span class="sourceLineNo">308</span> }<a name="line.308"></a> <span class="sourceLineNo">309</span><a name="line.309"></a> -<span class="sourceLineNo">310</span> private Region getBiggestMemstoreOfRegionReplica(SortedMap<Long, Region> regionsBySize,<a name="line.310"></a> +<span class="sourceLineNo">310</span> private Region getBiggestMemStoreOfRegionReplica(SortedMap<Long, Region> regionsBySize,<a name="line.310"></a> <span class="sourceLineNo">311</span> Set<Region> excludedRegions) {<a name="line.311"></a> <span class="sourceLineNo">312</span> synchronized (regionsInQueue) {<a name="line.312"></a> <span class="sourceLineNo">313</span> for (Region region : regionsBySize.values()) {<a name="line.313"></a> @@ -596,19 +596,19 @@ <span class="sourceLineNo">588</span> startTime = EnvironmentEdgeManager.currentTime();<a name="line.588"></a> <span class="sourceLineNo">589</span> if (!server.getRegionServerAccounting().isOffheap()) {<a name="line.589"></a> <span class="sourceLineNo">590</span> logMsg("global memstore heapsize",<a name="line.590"></a> -<span class="sourceLineNo">591</span> server.getRegionServerAccounting().getGlobalMemstoreHeapSize(),<a name="line.591"></a> -<span class="sourceLineNo">592</span> server.getRegionServerAccounting().getGlobalMemstoreLimit());<a name="line.592"></a> +<span class="sourceLineNo">591</span> server.getRegionServerAccounting().getGlobalMemStoreHeapSize(),<a name="line.591"></a> +<span class="sourceLineNo">592</span> server.getRegionServerAccounting().getGlobalMemStoreLimit());<a name="line.592"></a> <span class="sourceLineNo">593</span> } else {<a name="line.593"></a> <span class="sourceLineNo">594</span> switch (flushType) {<a name="line.594"></a> <span class="sourceLineNo">595</span> case ABOVE_OFFHEAP_HIGHER_MARK:<a name="line.595"></a> <span class="sourceLineNo">596</span> logMsg("the global offheap memstore datasize",<a name="line.596"></a> -<span class="sourceLineNo">597</span> server.getRegionServerAccounting().getGlobalMemstoreDataSize(),<a name="line.597"></a> -<span class="sourceLineNo">598</span> server.getRegionServerAccounting().getGlobalMemstoreLimit());<a name="line.598"></a> +<span class="sourceLineNo">597</span> server.getRegionServerAccounting().getGlobalMemStoreDataSize(),<a name="line.597"></a> +<span class="sourceLineNo">598</span> server.getRegionServerAccounting().getGlobalMemStoreLimit());<a name="line.598"></a> <span class="sourceLineNo">599</span> break;<a name="line.599"></a> <span class="sourceLineNo">600</span> case ABOVE_ONHEAP_HIGHER_MARK:<a name="line.600"></a> <span class="sourceLineNo">601</span> logMsg("global memstore heapsize",<a name="line.601"></a> -<span class="sourceLineNo">602</span> server.getRegionServerAccounting().getGlobalMemstoreHeapSize(),<a name="line.602"></a> -<span class="sourceLineNo">603</span> server.getRegionServerAccounting().getGlobalOnHeapMemstoreLimit());<a name="line.603"></a> +<span class="sourceLineNo">602</span> server.getRegionServerAccounting().getGlobalMemStoreHeapSize(),<a name="line.602"></a> +<span class="sourceLineNo">603</span> server.getRegionServerAccounting().getGlobalOnHeapMemStoreLimit());<a name="line.603"></a> <span class="sourceLineNo">604</span> break;<a name="line.604"></a> <span class="sourceLineNo">605</span> default:<a name="line.605"></a> <span class="sourceLineNo">606</span> break;<a name="line.606"></a> @@ -699,8 +699,8 @@ <span class="sourceLineNo">691</span> * @param globalMemStoreSize<a name="line.691"></a> <span class="sourceLineNo">692</span> */<a name="line.692"></a> <span class="sourceLineNo">693</span> @Override<a name="line.693"></a> -<span class="sourceLineNo">694</span> public void setGlobalMemstoreLimit(long globalMemStoreSize) {<a name="line.694"></a> -<span class="sourceLineNo">695</span> this.server.getRegionServerAccounting().setGlobalMemstoreLimits(globalMemStoreSize);<a name="line.695"></a> +<span class="sourceLineNo">694</span> public void setGlobalMemStoreLimit(long globalMemStoreSize) {<a name="line.694"></a> +<span class="sourceLineNo">695</span> this.server.getRegionServerAccounting().setGlobalMemStoreLimits(globalMemStoreSize);<a name="line.695"></a> <span class="sourceLineNo">696</span> reclaimMemStoreMemory();<a name="line.696"></a> <span class="sourceLineNo">697</span> }<a name="line.697"></a> <span class="sourceLineNo">698</span><a name="line.698"></a>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/3332caca/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.FlushQueueEntry.html ---------------------------------------------------------------------- diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.FlushQueueEntry.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.FlushQueueEntry.html index ce2e1a7..8596033 100644 --- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.FlushQueueEntry.html +++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.FlushQueueEntry.html @@ -115,10 +115,10 @@ <span class="sourceLineNo">107</span> this.flushHandlers = new FlushHandler[handlerCount];<a name="line.107"></a> <span class="sourceLineNo">108</span> LOG.info("globalMemStoreLimit="<a name="line.108"></a> <span class="sourceLineNo">109</span> + TraditionalBinaryPrefix<a name="line.109"></a> -<span class="sourceLineNo">110</span> .long2String(this.server.getRegionServerAccounting().getGlobalMemstoreLimit(), "", 1)<a name="line.110"></a> +<span class="sourceLineNo">110</span> .long2String(this.server.getRegionServerAccounting().getGlobalMemStoreLimit(), "", 1)<a name="line.110"></a> <span class="sourceLineNo">111</span> + ", globalMemStoreLimitLowMark="<a name="line.111"></a> <span class="sourceLineNo">112</span> + TraditionalBinaryPrefix.long2String(<a name="line.112"></a> -<span class="sourceLineNo">113</span> this.server.getRegionServerAccounting().getGlobalMemstoreLimitLowMark(), "", 1)<a name="line.113"></a> +<span class="sourceLineNo">113</span> this.server.getRegionServerAccounting().getGlobalMemStoreLimitLowMark(), "", 1)<a name="line.113"></a> <span class="sourceLineNo">114</span> + ", Offheap="<a name="line.114"></a> <span class="sourceLineNo">115</span> + (this.server.getRegionServerAccounting().isOffheap()));<a name="line.115"></a> <span class="sourceLineNo">116</span> }<a name="line.116"></a> @@ -144,12 +144,12 @@ <span class="sourceLineNo">136</span> while (!flushedOne) {<a name="line.136"></a> <span class="sourceLineNo">137</span> // Find the biggest region that doesn't have too many storefiles<a name="line.137"></a> <span class="sourceLineNo">138</span> // (might be null!)<a name="line.138"></a> -<span class="sourceLineNo">139</span> Region bestFlushableRegion = getBiggestMemstoreRegion(regionsBySize, excludedRegions, true);<a name="line.139"></a> +<span class="sourceLineNo">139</span> Region bestFlushableRegion = getBiggestMemStoreRegion(regionsBySize, excludedRegions, true);<a name="line.139"></a> <span class="sourceLineNo">140</span> // Find the biggest region, total, even if it might have too many flushes.<a name="line.140"></a> -<span class="sourceLineNo">141</span> Region bestAnyRegion = getBiggestMemstoreRegion(<a name="line.141"></a> +<span class="sourceLineNo">141</span> Region bestAnyRegion = getBiggestMemStoreRegion(<a name="line.141"></a> <span class="sourceLineNo">142</span> regionsBySize, excludedRegions, false);<a name="line.142"></a> <span class="sourceLineNo">143</span> // Find the biggest region that is a secondary region<a name="line.143"></a> -<span class="sourceLineNo">144</span> Region bestRegionReplica = getBiggestMemstoreOfRegionReplica(regionsBySize,<a name="line.144"></a> +<span class="sourceLineNo">144</span> Region bestRegionReplica = getBiggestMemStoreOfRegionReplica(regionsBySize,<a name="line.144"></a> <span class="sourceLineNo">145</span> excludedRegions);<a name="line.145"></a> <span class="sourceLineNo">146</span><a name="line.146"></a> <span class="sourceLineNo">147</span> if (bestAnyRegion == null && bestRegionReplica == null) {<a name="line.147"></a> @@ -159,7 +159,7 @@ <span class="sourceLineNo">151</span><a name="line.151"></a> <span class="sourceLineNo">152</span> Region regionToFlush;<a name="line.152"></a> <span class="sourceLineNo">153</span> if (bestFlushableRegion != null &&<a name="line.153"></a> -<span class="sourceLineNo">154</span> bestAnyRegion.getMemstoreSize() > 2 * bestFlushableRegion.getMemstoreSize()) {<a name="line.154"></a> +<span class="sourceLineNo">154</span> bestAnyRegion.getMemStoreSize() > 2 * bestFlushableRegion.getMemStoreSize()) {<a name="line.154"></a> <span class="sourceLineNo">155</span> // Even if it's not supposed to be flushed, pick a region if it's more than twice<a name="line.155"></a> <span class="sourceLineNo">156</span> // as big as the best flushable one - otherwise when we're under pressure we make<a name="line.156"></a> <span class="sourceLineNo">157</span> // lots of little flushes and cause lots of compactions, etc, which just makes<a name="line.157"></a> @@ -168,9 +168,9 @@ <span class="sourceLineNo">160</span> LOG.debug("Under global heap pressure: " + "Region "<a name="line.160"></a> <span class="sourceLineNo">161</span> + bestAnyRegion.getRegionInfo().getRegionNameAsString()<a name="line.161"></a> <span class="sourceLineNo">162</span> + " has too many " + "store files, but is "<a name="line.162"></a> -<span class="sourceLineNo">163</span> + TraditionalBinaryPrefix.long2String(bestAnyRegion.getMemstoreSize(), "", 1)<a name="line.163"></a> +<span class="sourceLineNo">163</span> + TraditionalBinaryPrefix.long2String(bestAnyRegion.getMemStoreSize(), "", 1)<a name="line.163"></a> <span class="sourceLineNo">164</span> + " vs best flushable region's "<a name="line.164"></a> -<span class="sourceLineNo">165</span> + TraditionalBinaryPrefix.long2String(bestFlushableRegion.getMemstoreSize(), "", 1)<a name="line.165"></a> +<span class="sourceLineNo">165</span> + TraditionalBinaryPrefix.long2String(bestFlushableRegion.getMemStoreSize(), "", 1)<a name="line.165"></a> <span class="sourceLineNo">166</span> + ". Choosing the bigger.");<a name="line.166"></a> <span class="sourceLineNo">167</span> }<a name="line.167"></a> <span class="sourceLineNo">168</span> regionToFlush = bestAnyRegion;<a name="line.168"></a> @@ -183,20 +183,20 @@ <span class="sourceLineNo">175</span> }<a name="line.175"></a> <span class="sourceLineNo">176</span><a name="line.176"></a> <span class="sourceLineNo">177</span> Preconditions.checkState(<a name="line.177"></a> -<span class="sourceLineNo">178</span> (regionToFlush != null && regionToFlush.getMemstoreSize() > 0) ||<a name="line.178"></a> -<span class="sourceLineNo">179</span> (bestRegionReplica != null && bestRegionReplica.getMemstoreSize() > 0));<a name="line.179"></a> +<span class="sourceLineNo">178</span> (regionToFlush != null && regionToFlush.getMemStoreSize() > 0) ||<a name="line.178"></a> +<span class="sourceLineNo">179</span> (bestRegionReplica != null && bestRegionReplica.getMemStoreSize() > 0));<a name="line.179"></a> <span class="sourceLineNo">180</span><a name="line.180"></a> <span class="sourceLineNo">181</span> if (regionToFlush == null ||<a name="line.181"></a> <span class="sourceLineNo">182</span> (bestRegionReplica != null &&<a name="line.182"></a> <span class="sourceLineNo">183</span> ServerRegionReplicaUtil.isRegionReplicaStoreFileRefreshEnabled(conf) &&<a name="line.183"></a> -<span class="sourceLineNo">184</span> (bestRegionReplica.getMemstoreSize()<a name="line.184"></a> -<span class="sourceLineNo">185</span> > secondaryMultiplier * regionToFlush.getMemstoreSize()))) {<a name="line.185"></a> +<span class="sourceLineNo">184</span> (bestRegionReplica.getMemStoreSize()<a name="line.184"></a> +<span class="sourceLineNo">185</span> > secondaryMultiplier * regionToFlush.getMemStoreSize()))) {<a name="line.185"></a> <span class="sourceLineNo">186</span> LOG.info("Refreshing storefiles of region " + bestRegionReplica<a name="line.186"></a> <span class="sourceLineNo">187</span> + " due to global heap pressure. Total memstore datasize="<a name="line.187"></a> <span class="sourceLineNo">188</span> + StringUtils<a name="line.188"></a> -<span class="sourceLineNo">189</span> .humanReadableInt(server.getRegionServerAccounting().getGlobalMemstoreDataSize())<a name="line.189"></a> +<span class="sourceLineNo">189</span> .humanReadableInt(server.getRegionServerAccounting().getGlobalMemStoreDataSize())<a name="line.189"></a> <span class="sourceLineNo">190</span> + " memstore heap size=" + StringUtils.humanReadableInt(<a name="line.190"></a> -<span class="sourceLineNo">191</span> server.getRegionServerAccounting().getGlobalMemstoreHeapSize()));<a name="line.191"></a> +<span class="sourceLineNo">191</span> server.getRegionServerAccounting().getGlobalMemStoreHeapSize()));<a name="line.191"></a> <span class="sourceLineNo">192</span> flushedOne = refreshStoreFilesAndReclaimMemory(bestRegionReplica);<a name="line.192"></a> <span class="sourceLineNo">193</span> if (!flushedOne) {<a name="line.193"></a> <span class="sourceLineNo">194</span> LOG.info("Excluding secondary region " + bestRegionReplica +<a name="line.194"></a> @@ -206,9 +206,9 @@ <span class="sourceLineNo">198</span> } else {<a name="line.198"></a> <span class="sourceLineNo">199</span> LOG.info("Flush of region " + regionToFlush + " due to global heap pressure. "<a name="line.199"></a> <span class="sourceLineNo">200</span> + "Total Memstore size="<a name="line.200"></a> -<span class="sourceLineNo">201</span> + humanReadableInt(server.getRegionServerAccounting().getGlobalMemstoreDataSize())<a name="line.201"></a> +<span class="sourceLineNo">201</span> + humanReadableInt(server.getRegionServerAccounting().getGlobalMemStoreDataSize())<a name="line.201"></a> <span class="sourceLineNo">202</span> + ", Region memstore size="<a name="line.202"></a> -<span class="sourceLineNo">203</span> + humanReadableInt(regionToFlush.getMemstoreSize()));<a name="line.203"></a> +<span class="sourceLineNo">203</span> + humanReadableInt(regionToFlush.getMemStoreSize()));<a name="line.203"></a> <span class="sourceLineNo">204</span> flushedOne = flushRegion(regionToFlush, true, false);<a name="line.204"></a> <span class="sourceLineNo">205</span><a name="line.205"></a> <span class="sourceLineNo">206</span> if (!flushedOne) {<a name="line.206"></a> @@ -239,7 +239,7 @@ <span class="sourceLineNo">231</span> if (type != FlushType.NORMAL) {<a name="line.231"></a> <span class="sourceLineNo">232</span> LOG.debug("Flush thread woke up because memory above low water="<a name="line.232"></a> <span class="sourceLineNo">233</span> + TraditionalBinaryPrefix.long2String(<a name="line.233"></a> -<span class="sourceLineNo">234</span> server.getRegionServerAccounting().getGlobalMemstoreLimitLowMark(), "", 1));<a name="line.234"></a> +<span class="sourceLineNo">234</span> server.getRegionServerAccounting().getGlobalMemStoreLimitLowMark(), "", 1));<a name="line.234"></a> <span class="sourceLineNo">235</span> // For offheap memstore, even if the lower water mark was breached due to heap overhead<a name="line.235"></a> <span class="sourceLineNo">236</span> // we still select the regions based on the region's memstore data size.<a name="line.236"></a> <span class="sourceLineNo">237</span> // TODO : If we want to decide based on heap over head it can be done without tracking<a name="line.237"></a> @@ -291,7 +291,7 @@ <span class="sourceLineNo">283</span> }<a name="line.283"></a> <span class="sourceLineNo">284</span> }<a name="line.284"></a> <span class="sourceLineNo">285</span><a name="line.285"></a> -<span class="sourceLineNo">286</span> private Region getBiggestMemstoreRegion(<a name="line.286"></a> +<span class="sourceLineNo">286</span> private Region getBiggestMemStoreRegion(<a name="line.286"></a> <span class="sourceLineNo">287</span> SortedMap<Long, Region> regionsBySize,<a name="line.287"></a> <span class="sourceLineNo">288</span> Set<Region> excludedRegions,<a name="line.288"></a> <span class="sourceLineNo">289</span> boolean checkStoreFileCount) {<a name="line.289"></a> @@ -315,7 +315,7 @@ <span class="sourceLineNo">307</span> return null;<a name="line.307"></a> <span class="sourceLineNo">308</span> }<a name="line.308"></a> <span class="sourceLineNo">309</span><a name="line.309"></a> -<span class="sourceLineNo">310</span> private Region getBiggestMemstoreOfRegionReplica(SortedMap<Long, Region> regionsBySize,<a name="line.310"></a> +<span class="sourceLineNo">310</span> private Region getBiggestMemStoreOfRegionReplica(SortedMap<Long, Region> regionsBySize,<a name="line.310"></a> <span class="sourceLineNo">311</span> Set<Region> excludedRegions) {<a name="line.311"></a> <span class="sourceLineNo">312</span> synchronized (regionsInQueue) {<a name="line.312"></a> <span class="sourceLineNo">313</span> for (Region region : regionsBySize.values()) {<a name="line.313"></a> @@ -596,19 +596,19 @@ <span class="sourceLineNo">588</span> startTime = EnvironmentEdgeManager.currentTime();<a name="line.588"></a> <span class="sourceLineNo">589</span> if (!server.getRegionServerAccounting().isOffheap()) {<a name="line.589"></a> <span class="sourceLineNo">590</span> logMsg("global memstore heapsize",<a name="line.590"></a> -<span class="sourceLineNo">591</span> server.getRegionServerAccounting().getGlobalMemstoreHeapSize(),<a name="line.591"></a> -<span class="sourceLineNo">592</span> server.getRegionServerAccounting().getGlobalMemstoreLimit());<a name="line.592"></a> +<span class="sourceLineNo">591</span> server.getRegionServerAccounting().getGlobalMemStoreHeapSize(),<a name="line.591"></a> +<span class="sourceLineNo">592</span> server.getRegionServerAccounting().getGlobalMemStoreLimit());<a name="line.592"></a> <span class="sourceLineNo">593</span> } else {<a name="line.593"></a> <span class="sourceLineNo">594</span> switch (flushType) {<a name="line.594"></a> <span class="sourceLineNo">595</span> case ABOVE_OFFHEAP_HIGHER_MARK:<a name="line.595"></a> <span class="sourceLineNo">596</span> logMsg("the global offheap memstore datasize",<a name="line.596"></a> -<span class="sourceLineNo">597</span> server.getRegionServerAccounting().getGlobalMemstoreDataSize(),<a name="line.597"></a> -<span class="sourceLineNo">598</span> server.getRegionServerAccounting().getGlobalMemstoreLimit());<a name="line.598"></a> +<span class="sourceLineNo">597</span> server.getRegionServerAccounting().getGlobalMemStoreDataSize(),<a name="line.597"></a> +<span class="sourceLineNo">598</span> server.getRegionServerAccounting().getGlobalMemStoreLimit());<a name="line.598"></a> <span class="sourceLineNo">599</span> break;<a name="line.599"></a> <span class="sourceLineNo">600</span> case ABOVE_ONHEAP_HIGHER_MARK:<a name="line.600"></a> <span class="sourceLineNo">601</span> logMsg("global memstore heapsize",<a name="line.601"></a> -<span class="sourceLineNo">602</span> server.getRegionServerAccounting().getGlobalMemstoreHeapSize(),<a name="line.602"></a> -<span class="sourceLineNo">603</span> server.getRegionServerAccounting().getGlobalOnHeapMemstoreLimit());<a name="line.603"></a> +<span class="sourceLineNo">602</span> server.getRegionServerAccounting().getGlobalMemStoreHeapSize(),<a name="line.602"></a> +<span class="sourceLineNo">603</span> server.getRegionServerAccounting().getGlobalOnHeapMemStoreLimit());<a name="line.603"></a> <span class="sourceLineNo">604</span> break;<a name="line.604"></a> <span class="sourceLineNo">605</span> default:<a name="line.605"></a> <span class="sourceLineNo">606</span> break;<a name="line.606"></a> @@ -699,8 +699,8 @@ <span class="sourceLineNo">691</span> * @param globalMemStoreSize<a name="line.691"></a> <span class="sourceLineNo">692</span> */<a name="line.692"></a> <span class="sourceLineNo">693</span> @Override<a name="line.693"></a> -<span class="sourceLineNo">694</span> public void setGlobalMemstoreLimit(long globalMemStoreSize) {<a name="line.694"></a> -<span class="sourceLineNo">695</span> this.server.getRegionServerAccounting().setGlobalMemstoreLimits(globalMemStoreSize);<a name="line.695"></a> +<span class="sourceLineNo">694</span> public void setGlobalMemStoreLimit(long globalMemStoreSize) {<a name="line.694"></a> +<span class="sourceLineNo">695</span> this.server.getRegionServerAccounting().setGlobalMemStoreLimits(globalMemStoreSize);<a name="line.695"></a> <span class="sourceLineNo">696</span> reclaimMemStoreMemory();<a name="line.696"></a> <span class="sourceLineNo">697</span> }<a name="line.697"></a> <span class="sourceLineNo">698</span><a name="line.698"></a> http://git-wip-us.apache.org/repos/asf/hbase-site/blob/3332caca/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.FlushRegionEntry.html ---------------------------------------------------------------------- diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.FlushRegionEntry.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.FlushRegionEntry.html index ce2e1a7..8596033 100644 --- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.FlushRegionEntry.html +++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.FlushRegionEntry.html @@ -115,10 +115,10 @@ <span class="sourceLineNo">107</span> this.flushHandlers = new FlushHandler[handlerCount];<a name="line.107"></a> <span class="sourceLineNo">108</span> LOG.info("globalMemStoreLimit="<a name="line.108"></a> <span class="sourceLineNo">109</span> + TraditionalBinaryPrefix<a name="line.109"></a> -<span class="sourceLineNo">110</span> .long2String(this.server.getRegionServerAccounting().getGlobalMemstoreLimit(), "", 1)<a name="line.110"></a> +<span class="sourceLineNo">110</span> .long2String(this.server.getRegionServerAccounting().getGlobalMemStoreLimit(), "", 1)<a name="line.110"></a> <span class="sourceLineNo">111</span> + ", globalMemStoreLimitLowMark="<a name="line.111"></a> <span class="sourceLineNo">112</span> + TraditionalBinaryPrefix.long2String(<a name="line.112"></a> -<span class="sourceLineNo">113</span> this.server.getRegionServerAccounting().getGlobalMemstoreLimitLowMark(), "", 1)<a name="line.113"></a> +<span class="sourceLineNo">113</span> this.server.getRegionServerAccounting().getGlobalMemStoreLimitLowMark(), "", 1)<a name="line.113"></a> <span class="sourceLineNo">114</span> + ", Offheap="<a name="line.114"></a> <span class="sourceLineNo">115</span> + (this.server.getRegionServerAccounting().isOffheap()));<a name="line.115"></a> <span class="sourceLineNo">116</span> }<a name="line.116"></a> @@ -144,12 +144,12 @@ <span class="sourceLineNo">136</span> while (!flushedOne) {<a name="line.136"></a> <span class="sourceLineNo">137</span> // Find the biggest region that doesn't have too many storefiles<a name="line.137"></a> <span class="sourceLineNo">138</span> // (might be null!)<a name="line.138"></a> -<span class="sourceLineNo">139</span> Region bestFlushableRegion = getBiggestMemstoreRegion(regionsBySize, excludedRegions, true);<a name="line.139"></a> +<span class="sourceLineNo">139</span> Region bestFlushableRegion = getBiggestMemStoreRegion(regionsBySize, excludedRegions, true);<a name="line.139"></a> <span class="sourceLineNo">140</span> // Find the biggest region, total, even if it might have too many flushes.<a name="line.140"></a> -<span class="sourceLineNo">141</span> Region bestAnyRegion = getBiggestMemstoreRegion(<a name="line.141"></a> +<span class="sourceLineNo">141</span> Region bestAnyRegion = getBiggestMemStoreRegion(<a name="line.141"></a> <span class="sourceLineNo">142</span> regionsBySize, excludedRegions, false);<a name="line.142"></a> <span class="sourceLineNo">143</span> // Find the biggest region that is a secondary region<a name="line.143"></a> -<span class="sourceLineNo">144</span> Region bestRegionReplica = getBiggestMemstoreOfRegionReplica(regionsBySize,<a name="line.144"></a> +<span class="sourceLineNo">144</span> Region bestRegionReplica = getBiggestMemStoreOfRegionReplica(regionsBySize,<a name="line.144"></a> <span class="sourceLineNo">145</span> excludedRegions);<a name="line.145"></a> <span class="sourceLineNo">146</span><a name="line.146"></a> <span class="sourceLineNo">147</span> if (bestAnyRegion == null && bestRegionReplica == null) {<a name="line.147"></a> @@ -159,7 +159,7 @@ <span class="sourceLineNo">151</span><a name="line.151"></a> <span class="sourceLineNo">152</span> Region regionToFlush;<a name="line.152"></a> <span class="sourceLineNo">153</span> if (bestFlushableRegion != null &&<a name="line.153"></a> -<span class="sourceLineNo">154</span> bestAnyRegion.getMemstoreSize() > 2 * bestFlushableRegion.getMemstoreSize()) {<a name="line.154"></a> +<span class="sourceLineNo">154</span> bestAnyRegion.getMemStoreSize() > 2 * bestFlushableRegion.getMemStoreSize()) {<a name="line.154"></a> <span class="sourceLineNo">155</span> // Even if it's not supposed to be flushed, pick a region if it's more than twice<a name="line.155"></a> <span class="sourceLineNo">156</span> // as big as the best flushable one - otherwise when we're under pressure we make<a name="line.156"></a> <span class="sourceLineNo">157</span> // lots of little flushes and cause lots of compactions, etc, which just makes<a name="line.157"></a> @@ -168,9 +168,9 @@ <span class="sourceLineNo">160</span> LOG.debug("Under global heap pressure: " + "Region "<a name="line.160"></a> <span class="sourceLineNo">161</span> + bestAnyRegion.getRegionInfo().getRegionNameAsString()<a name="line.161"></a> <span class="sourceLineNo">162</span> + " has too many " + "store files, but is "<a name="line.162"></a> -<span class="sourceLineNo">163</span> + TraditionalBinaryPrefix.long2String(bestAnyRegion.getMemstoreSize(), "", 1)<a name="line.163"></a> +<span class="sourceLineNo">163</span> + TraditionalBinaryPrefix.long2String(bestAnyRegion.getMemStoreSize(), "", 1)<a name="line.163"></a> <span class="sourceLineNo">164</span> + " vs best flushable region's "<a name="line.164"></a> -<span class="sourceLineNo">165</span> + TraditionalBinaryPrefix.long2String(bestFlushableRegion.getMemstoreSize(), "", 1)<a name="line.165"></a> +<span class="sourceLineNo">165</span> + TraditionalBinaryPrefix.long2String(bestFlushableRegion.getMemStoreSize(), "", 1)<a name="line.165"></a> <span class="sourceLineNo">166</span> + ". Choosing the bigger.");<a name="line.166"></a> <span class="sourceLineNo">167</span> }<a name="line.167"></a> <span class="sourceLineNo">168</span> regionToFlush = bestAnyRegion;<a name="line.168"></a> @@ -183,20 +183,20 @@ <span class="sourceLineNo">175</span> }<a name="line.175"></a> <span class="sourceLineNo">176</span><a name="line.176"></a> <span class="sourceLineNo">177</span> Preconditions.checkState(<a name="line.177"></a> -<span class="sourceLineNo">178</span> (regionToFlush != null && regionToFlush.getMemstoreSize() > 0) ||<a name="line.178"></a> -<span class="sourceLineNo">179</span> (bestRegionReplica != null && bestRegionReplica.getMemstoreSize() > 0));<a name="line.179"></a> +<span class="sourceLineNo">178</span> (regionToFlush != null && regionToFlush.getMemStoreSize() > 0) ||<a name="line.178"></a> +<span class="sourceLineNo">179</span> (bestRegionReplica != null && bestRegionReplica.getMemStoreSize() > 0));<a name="line.179"></a> <span class="sourceLineNo">180</span><a name="line.180"></a> <span class="sourceLineNo">181</span> if (regionToFlush == null ||<a name="line.181"></a> <span class="sourceLineNo">182</span> (bestRegionReplica != null &&<a name="line.182"></a> <span class="sourceLineNo">183</span> ServerRegionReplicaUtil.isRegionReplicaStoreFileRefreshEnabled(conf) &&<a name="line.183"></a> -<span class="sourceLineNo">184</span> (bestRegionReplica.getMemstoreSize()<a name="line.184"></a> -<span class="sourceLineNo">185</span> > secondaryMultiplier * regionToFlush.getMemstoreSize()))) {<a name="line.185"></a> +<span class="sourceLineNo">184</span> (bestRegionReplica.getMemStoreSize()<a name="line.184"></a> +<span class="sourceLineNo">185</span> > secondaryMultiplier * regionToFlush.getMemStoreSize()))) {<a name="line.185"></a> <span class="sourceLineNo">186</span> LOG.info("Refreshing storefiles of region " + bestRegionReplica<a name="line.186"></a> <span class="sourceLineNo">187</span> + " due to global heap pressure. Total memstore datasize="<a name="line.187"></a> <span class="sourceLineNo">188</span> + StringUtils<a name="line.188"></a> -<span class="sourceLineNo">189</span> .humanReadableInt(server.getRegionServerAccounting().getGlobalMemstoreDataSize())<a name="line.189"></a> +<span class="sourceLineNo">189</span> .humanReadableInt(server.getRegionServerAccounting().getGlobalMemStoreDataSize())<a name="line.189"></a> <span class="sourceLineNo">190</span> + " memstore heap size=" + StringUtils.humanReadableInt(<a name="line.190"></a> -<span class="sourceLineNo">191</span> server.getRegionServerAccounting().getGlobalMemstoreHeapSize()));<a name="line.191"></a> +<span class="sourceLineNo">191</span> server.getRegionServerAccounting().getGlobalMemStoreHeapSize()));<a name="line.191"></a> <span class="sourceLineNo">192</span> flushedOne = refreshStoreFilesAndReclaimMemory(bestRegionReplica);<a name="line.192"></a> <span class="sourceLineNo">193</span> if (!flushedOne) {<a name="line.193"></a> <span class="sourceLineNo">194</span> LOG.info("Excluding secondary region " + bestRegionReplica +<a name="line.194"></a> @@ -206,9 +206,9 @@ <span class="sourceLineNo">198</span> } else {<a name="line.198"></a> <span class="sourceLineNo">199</span> LOG.info("Flush of region " + regionToFlush + " due to global heap pressure. "<a name="line.199"></a> <span class="sourceLineNo">200</span> + "Total Memstore size="<a name="line.200"></a> -<span class="sourceLineNo">201</span> + humanReadableInt(server.getRegionServerAccounting().getGlobalMemstoreDataSize())<a name="line.201"></a> +<span class="sourceLineNo">201</span> + humanReadableInt(server.getRegionServerAccounting().getGlobalMemStoreDataSize())<a name="line.201"></a> <span class="sourceLineNo">202</span> + ", Region memstore size="<a name="line.202"></a> -<span class="sourceLineNo">203</span> + humanReadableInt(regionToFlush.getMemstoreSize()));<a name="line.203"></a> +<span class="sourceLineNo">203</span> + humanReadableInt(regionToFlush.getMemStoreSize()));<a name="line.203"></a> <span class="sourceLineNo">204</span> flushedOne = flushRegion(regionToFlush, true, false);<a name="line.204"></a> <span class="sourceLineNo">205</span><a name="line.205"></a> <span class="sourceLineNo">206</span> if (!flushedOne) {<a name="line.206"></a> @@ -239,7 +239,7 @@ <span class="sourceLineNo">231</span> if (type != FlushType.NORMAL) {<a name="line.231"></a> <span class="sourceLineNo">232</span> LOG.debug("Flush thread woke up because memory above low water="<a name="line.232"></a> <span class="sourceLineNo">233</span> + TraditionalBinaryPrefix.long2String(<a name="line.233"></a> -<span class="sourceLineNo">234</span> server.getRegionServerAccounting().getGlobalMemstoreLimitLowMark(), "", 1));<a name="line.234"></a> +<span class="sourceLineNo">234</span> server.getRegionServerAccounting().getGlobalMemStoreLimitLowMark(), "", 1));<a name="line.234"></a> <span class="sourceLineNo">235</span> // For offheap memstore, even if the lower water mark was breached due to heap overhead<a name="line.235"></a> <span class="sourceLineNo">236</span> // we still select the regions based on the region's memstore data size.<a name="line.236"></a> <span class="sourceLineNo">237</span> // TODO : If we want to decide based on heap over head it can be done without tracking<a name="line.237"></a> @@ -291,7 +291,7 @@ <span class="sourceLineNo">283</span> }<a name="line.283"></a> <span class="sourceLineNo">284</span> }<a name="line.284"></a> <span class="sourceLineNo">285</span><a name="line.285"></a> -<span class="sourceLineNo">286</span> private Region getBiggestMemstoreRegion(<a name="line.286"></a> +<span class="sourceLineNo">286</span> private Region getBiggestMemStoreRegion(<a name="line.286"></a> <span class="sourceLineNo">287</span> SortedMap<Long, Region> regionsBySize,<a name="line.287"></a> <span class="sourceLineNo">288</span> Set<Region> excludedRegions,<a name="line.288"></a> <span class="sourceLineNo">289</span> boolean checkStoreFileCount) {<a name="line.289"></a> @@ -315,7 +315,7 @@ <span class="sourceLineNo">307</span> return null;<a name="line.307"></a> <span class="sourceLineNo">308</span> }<a name="line.308"></a> <span class="sourceLineNo">309</span><a name="line.309"></a> -<span class="sourceLineNo">310</span> private Region getBiggestMemstoreOfRegionReplica(SortedMap<Long, Region> regionsBySize,<a name="line.310"></a> +<span class="sourceLineNo">310</span> private Region getBiggestMemStoreOfRegionReplica(SortedMap<Long, Region> regionsBySize,<a name="line.310"></a> <span class="sourceLineNo">311</span> Set<Region> excludedRegions) {<a name="line.311"></a> <span class="sourceLineNo">312</span> synchronized (regionsInQueue) {<a name="line.312"></a> <span class="sourceLineNo">313</span> for (Region region : regionsBySize.values()) {<a name="line.313"></a> @@ -596,19 +596,19 @@ <span class="sourceLineNo">588</span> startTime = EnvironmentEdgeManager.currentTime();<a name="line.588"></a> <span class="sourceLineNo">589</span> if (!server.getRegionServerAccounting().isOffheap()) {<a name="line.589"></a> <span class="sourceLineNo">590</span> logMsg("global memstore heapsize",<a name="line.590"></a> -<span class="sourceLineNo">591</span> server.getRegionServerAccounting().getGlobalMemstoreHeapSize(),<a name="line.591"></a> -<span class="sourceLineNo">592</span> server.getRegionServerAccounting().getGlobalMemstoreLimit());<a name="line.592"></a> +<span class="sourceLineNo">591</span> server.getRegionServerAccounting().getGlobalMemStoreHeapSize(),<a name="line.591"></a> +<span class="sourceLineNo">592</span> server.getRegionServerAccounting().getGlobalMemStoreLimit());<a name="line.592"></a> <span class="sourceLineNo">593</span> } else {<a name="line.593"></a> <span class="sourceLineNo">594</span> switch (flushType) {<a name="line.594"></a> <span class="sourceLineNo">595</span> case ABOVE_OFFHEAP_HIGHER_MARK:<a name="line.595"></a> <span class="sourceLineNo">596</span> logMsg("the global offheap memstore datasize",<a name="line.596"></a> -<span class="sourceLineNo">597</span> server.getRegionServerAccounting().getGlobalMemstoreDataSize(),<a name="line.597"></a> -<span class="sourceLineNo">598</span> server.getRegionServerAccounting().getGlobalMemstoreLimit());<a name="line.598"></a> +<span class="sourceLineNo">597</span> server.getRegionServerAccounting().getGlobalMemStoreDataSize(),<a name="line.597"></a> +<span class="sourceLineNo">598</span> server.getRegionServerAccounting().getGlobalMemStoreLimit());<a name="line.598"></a> <span class="sourceLineNo">599</span> break;<a name="line.599"></a> <span class="sourceLineNo">600</span> case ABOVE_ONHEAP_HIGHER_MARK:<a name="line.600"></a> <span class="sourceLineNo">601</span> logMsg("global memstore heapsize",<a name="line.601"></a> -<span class="sourceLineNo">602</span> server.getRegionServerAccounting().getGlobalMemstoreHeapSize(),<a name="line.602"></a> -<span class="sourceLineNo">603</span> server.getRegionServerAccounting().getGlobalOnHeapMemstoreLimit());<a name="line.603"></a> +<span class="sourceLineNo">602</span> server.getRegionServerAccounting().getGlobalMemStoreHeapSize(),<a name="line.602"></a> +<span class="sourceLineNo">603</span> server.getRegionServerAccounting().getGlobalOnHeapMemStoreLimit());<a name="line.603"></a> <span class="sourceLineNo">604</span> break;<a name="line.604"></a> <span class="sourceLineNo">605</span> default:<a name="line.605"></a> <span class="sourceLineNo">606</span> break;<a name="line.606"></a> @@ -699,8 +699,8 @@ <span class="sourceLineNo">691</span> * @param globalMemStoreSize<a name="line.691"></a> <span class="sourceLineNo">692</span> */<a name="line.692"></a> <span class="sourceLineNo">693</span> @Override<a name="line.693"></a> -<span class="sourceLineNo">694</span> public void setGlobalMemstoreLimit(long globalMemStoreSize) {<a name="line.694"></a> -<span class="sourceLineNo">695</span> this.server.getRegionServerAccounting().setGlobalMemstoreLimits(globalMemStoreSize);<a name="line.695"></a> +<span class="sourceLineNo">694</span> public void setGlobalMemStoreLimit(long globalMemStoreSize) {<a name="line.694"></a> +<span class="sourceLineNo">695</span> this.server.getRegionServerAccounting().setGlobalMemStoreLimits(globalMemStoreSize);<a name="line.695"></a> <span class="sourceLineNo">696</span> reclaimMemStoreMemory();<a name="line.696"></a> <span class="sourceLineNo">697</span> }<a name="line.697"></a> <span class="sourceLineNo">698</span><a name="line.698"></a> http://git-wip-us.apache.org/repos/asf/hbase-site/blob/3332caca/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.WakeupFlushThread.html ---------------------------------------------------------------------- diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.WakeupFlushThread.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.WakeupFlushThread.html index ce2e1a7..8596033 100644 --- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.WakeupFlushThread.html +++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.WakeupFlushThread.html @@ -115,10 +115,10 @@ <span class="sourceLineNo">107</span> this.flushHandlers = new FlushHandler[handlerCount];<a name="line.107"></a> <span class="sourceLineNo">108</span> LOG.info("globalMemStoreLimit="<a name="line.108"></a> <span class="sourceLineNo">109</span> + TraditionalBinaryPrefix<a name="line.109"></a> -<span class="sourceLineNo">110</span> .long2String(this.server.getRegionServerAccounting().getGlobalMemstoreLimit(), "", 1)<a name="line.110"></a> +<span class="sourceLineNo">110</span> .long2String(this.server.getRegionServerAccounting().getGlobalMemStoreLimit(), "", 1)<a name="line.110"></a> <span class="sourceLineNo">111</span> + ", globalMemStoreLimitLowMark="<a name="line.111"></a> <span class="sourceLineNo">112</span> + TraditionalBinaryPrefix.long2String(<a name="line.112"></a> -<span class="sourceLineNo">113</span> this.server.getRegionServerAccounting().getGlobalMemstoreLimitLowMark(), "", 1)<a name="line.113"></a> +<span class="sourceLineNo">113</span> this.server.getRegionServerAccounting().getGlobalMemStoreLimitLowMark(), "", 1)<a name="line.113"></a> <span class="sourceLineNo">114</span> + ", Offheap="<a name="line.114"></a> <span class="sourceLineNo">115</span> + (this.server.getRegionServerAccounting().isOffheap()));<a name="line.115"></a> <span class="sourceLineNo">116</span> }<a name="line.116"></a> @@ -144,12 +144,12 @@ <span class="sourceLineNo">136</span> while (!flushedOne) {<a name="line.136"></a> <span class="sourceLineNo">137</span> // Find the biggest region that doesn't have too many storefiles<a name="line.137"></a> <span class="sourceLineNo">138</span> // (might be null!)<a name="line.138"></a> -<span class="sourceLineNo">139</span> Region bestFlushableRegion = getBiggestMemstoreRegion(regionsBySize, excludedRegions, true);<a name="line.139"></a> +<span class="sourceLineNo">139</span> Region bestFlushableRegion = getBiggestMemStoreRegion(regionsBySize, excludedRegions, true);<a name="line.139"></a> <span class="sourceLineNo">140</span> // Find the biggest region, total, even if it might have too many flushes.<a name="line.140"></a> -<span class="sourceLineNo">141</span> Region bestAnyRegion = getBiggestMemstoreRegion(<a name="line.141"></a> +<span class="sourceLineNo">141</span> Region bestAnyRegion = getBiggestMemStoreRegion(<a name="line.141"></a> <span class="sourceLineNo">142</span> regionsBySize, excludedRegions, false);<a name="line.142"></a> <span class="sourceLineNo">143</span> // Find the biggest region that is a secondary region<a name="line.143"></a> -<span class="sourceLineNo">144</span> Region bestRegionReplica = getBiggestMemstoreOfRegionReplica(regionsBySize,<a name="line.144"></a> +<span class="sourceLineNo">144</span> Region bestRegionReplica = getBiggestMemStoreOfRegionReplica(regionsBySize,<a name="line.144"></a> <span class="sourceLineNo">145</span> excludedRegions);<a name="line.145"></a> <span class="sourceLineNo">146</span><a name="line.146"></a> <span class="sourceLineNo">147</span> if (bestAnyRegion == null && bestRegionReplica == null) {<a name="line.147"></a> @@ -159,7 +159,7 @@ <span class="sourceLineNo">151</span><a name="line.151"></a> <span class="sourceLineNo">152</span> Region regionToFlush;<a name="line.152"></a> <span class="sourceLineNo">153</span> if (bestFlushableRegion != null &&<a name="line.153"></a> -<span class="sourceLineNo">154</span> bestAnyRegion.getMemstoreSize() > 2 * bestFlushableRegion.getMemstoreSize()) {<a name="line.154"></a> +<span class="sourceLineNo">154</span> bestAnyRegion.getMemStoreSize() > 2 * bestFlushableRegion.getMemStoreSize()) {<a name="line.154"></a> <span class="sourceLineNo">155</span> // Even if it's not supposed to be flushed, pick a region if it's more than twice<a name="line.155"></a> <span class="sourceLineNo">156</span> // as big as the best flushable one - otherwise when we're under pressure we make<a name="line.156"></a> <span class="sourceLineNo">157</span> // lots of little flushes and cause lots of compactions, etc, which just makes<a name="line.157"></a> @@ -168,9 +168,9 @@ <span class="sourceLineNo">160</span> LOG.debug("Under global heap pressure: " + "Region "<a name="line.160"></a> <span class="sourceLineNo">161</span> + bestAnyRegion.getRegionInfo().getRegionNameAsString()<a name="line.161"></a> <span class="sourceLineNo">162</span> + " has too many " + "store files, but is "<a name="line.162"></a> -<span class="sourceLineNo">163</span> + TraditionalBinaryPrefix.long2String(bestAnyRegion.getMemstoreSize(), "", 1)<a name="line.163"></a> +<span class="sourceLineNo">163</span> + TraditionalBinaryPrefix.long2String(bestAnyRegion.getMemStoreSize(), "", 1)<a name="line.163"></a> <span class="sourceLineNo">164</span> + " vs best flushable region's "<a name="line.164"></a> -<span class="sourceLineNo">165</span> + TraditionalBinaryPrefix.long2String(bestFlushableRegion.getMemstoreSize(), "", 1)<a name="line.165"></a> +<span class="sourceLineNo">165</span> + TraditionalBinaryPrefix.long2String(bestFlushableRegion.getMemStoreSize(), "", 1)<a name="line.165"></a> <span class="sourceLineNo">166</span> + ". Choosing the bigger.");<a name="line.166"></a> <span class="sourceLineNo">167</span> }<a name="line.167"></a> <span class="sourceLineNo">168</span> regionToFlush = bestAnyRegion;<a name="line.168"></a> @@ -183,20 +183,20 @@ <span class="sourceLineNo">175</span> }<a name="line.175"></a> <span class="sourceLineNo">176</span><a name="line.176"></a> <span class="sourceLineNo">177</span> Preconditions.checkState(<a name="line.177"></a> -<span class="sourceLineNo">178</span> (regionToFlush != null && regionToFlush.getMemstoreSize() > 0) ||<a name="line.178"></a> -<span class="sourceLineNo">179</span> (bestRegionReplica != null && bestRegionReplica.getMemstoreSize() > 0));<a name="line.179"></a> +<span class="sourceLineNo">178</span> (regionToFlush != null && regionToFlush.getMemStoreSize() > 0) ||<a name="line.178"></a> +<span class="sourceLineNo">179</span> (bestRegionReplica != null && bestRegionReplica.getMemStoreSize() > 0));<a name="line.179"></a> <span class="sourceLineNo">180</span><a name="line.180"></a> <span class="sourceLineNo">181</span> if (regionToFlush == null ||<a name="line.181"></a> <span class="sourceLineNo">182</span> (bestRegionReplica != null &&<a name="line.182"></a> <span class="sourceLineNo">183</span> ServerRegionReplicaUtil.isRegionReplicaStoreFileRefreshEnabled(conf) &&<a name="line.183"></a> -<span class="sourceLineNo">184</span> (bestRegionReplica.getMemstoreSize()<a name="line.184"></a> -<span class="sourceLineNo">185</span> > secondaryMultiplier * regionToFlush.getMemstoreSize()))) {<a name="line.185"></a> +<span class="sourceLineNo">184</span> (bestRegionReplica.getMemStoreSize()<a name="line.184"></a> +<span class="sourceLineNo">185</span> > secondaryMultiplier * regionToFlush.getMemStoreSize()))) {<a name="line.185"></a> <span class="sourceLineNo">186</span> LOG.info("Refreshing storefiles of region " + bestRegionReplica<a name="line.186"></a> <span class="sourceLineNo">187</span> + " due to global heap pressure. Total memstore datasize="<a name="line.187"></a> <span class="sourceLineNo">188</span> + StringUtils<a name="line.188"></a> -<span class="sourceLineNo">189</span> .humanReadableInt(server.getRegionServerAccounting().getGlobalMemstoreDataSize())<a name="line.189"></a> +<span class="sourceLineNo">189</span> .humanReadableInt(server.getRegionServerAccounting().getGlobalMemStoreDataSize())<a name="line.189"></a> <span class="sourceLineNo">190</span> + " memstore heap size=" + StringUtils.humanReadableInt(<a name="line.190"></a> -<span class="sourceLineNo">191</span> server.getRegionServerAccounting().getGlobalMemstoreHeapSize()));<a name="line.191"></a> +<span class="sourceLineNo">191</span> server.getRegionServerAccounting().getGlobalMemStoreHeapSize()));<a name="line.191"></a> <span class="sourceLineNo">192</span> flushedOne = refreshStoreFilesAndReclaimMemory(bestRegionReplica);<a name="line.192"></a> <span class="sourceLineNo">193</span> if (!flushedOne) {<a name="line.193"></a> <span class="sourceLineNo">194</span> LOG.info("Excluding secondary region " + bestRegionReplica +<a name="line.194"></a> @@ -206,9 +206,9 @@ <span class="sourceLineNo">198</span> } else {<a name="line.198"></a> <span class="sourceLineNo">199</span> LOG.info("Flush of region " + regionToFlush + " due to global heap pressure. "<a name="line.199"></a> <span class="sourceLineNo">200</span> + "Total Memstore size="<a name="line.200"></a> -<span class="sourceLineNo">201</span> + humanReadableInt(server.getRegionServerAccounting().getGlobalMemstoreDataSize())<a name="line.201"></a> +<span class="sourceLineNo">201</span> + humanReadableInt(server.getRegionServerAccounting().getGlobalMemStoreDataSize())<a name="line.201"></a> <span class="sourceLineNo">202</span> + ", Region memstore size="<a name="line.202"></a> -<span class="sourceLineNo">203</span> + humanReadableInt(regionToFlush.getMemstoreSize()));<a name="line.203"></a> +<span class="sourceLineNo">203</span> + humanReadableInt(regionToFlush.getMemStoreSize()));<a name="line.203"></a> <span class="sourceLineNo">204</span> flushedOne = flushRegion(regionToFlush, true, false);<a name="line.204"></a> <span class="sourceLineNo">205</span><a name="line.205"></a> <span class="sourceLineNo">206</span> if (!flushedOne) {<a name="line.206"></a> @@ -239,7 +239,7 @@ <span class="sourceLineNo">231</span> if (type != FlushType.NORMAL) {<a name="line.231"></a> <span class="sourceLineNo">232</span> LOG.debug("Flush thread woke up because memory above low water="<a name="line.232"></a> <span class="sourceLineNo">233</span> + TraditionalBinaryPrefix.long2String(<a name="line.233"></a> -<span class="sourceLineNo">234</span> server.getRegionServerAccounting().getGlobalMemstoreLimitLowMark(), "", 1));<a name="line.234"></a> +<span class="sourceLineNo">234</span> server.getRegionServerAccounting().getGlobalMemStoreLimitLowMark(), "", 1));<a name="line.234"></a> <span class="sourceLineNo">235</span> // For offheap memstore, even if the lower water mark was breached due to heap overhead<a name="line.235"></a> <span class="sourceLineNo">236</span> // we still select the regions based on the region's memstore data size.<a name="line.236"></a> <span class="sourceLineNo">237</span> // TODO : If we want to decide based on heap over head it can be done without tracking<a name="line.237"></a> @@ -291,7 +291,7 @@ <span class="sourceLineNo">283</span> }<a name="line.283"></a> <span class="sourceLineNo">284</span> }<a name="line.284"></a> <span class="sourceLineNo">285</span><a name="line.285"></a> -<span class="sourceLineNo">286</span> private Region getBiggestMemstoreRegion(<a name="line.286"></a> +<span class="sourceLineNo">286</span> private Region getBiggestMemStoreRegion(<a name="line.286"></a> <span class="sourceLineNo">287</span> SortedMap<Long, Region> regionsBySize,<a name="line.287"></a> <span class="sourceLineNo">288</span> Set<Region> excludedRegions,<a name="line.288"></a> <span class="sourceLineNo">289</span> boolean checkStoreFileCount) {<a name="line.289"></a> @@ -315,7 +315,7 @@ <span class="sourceLineNo">307</span> return null;<a name="line.307"></a> <span class="sourceLineNo">308</span> }<a name="line.308"></a> <span class="sourceLineNo">309</span><a name="line.309"></a> -<span class="sourceLineNo">310</span> private Region getBiggestMemstoreOfRegionReplica(SortedMap<Long, Region> regionsBySize,<a name="line.310"></a> +<span class="sourceLineNo">310</span> private Region getBiggestMemStoreOfRegionReplica(SortedMap<Long, Region> regionsBySize,<a name="line.310"></a> <span class="sourceLineNo">311</span> Set<Region> excludedRegions) {<a name="line.311"></a> <span class="sourceLineNo">312</span> synchronized (regionsInQueue) {<a name="line.312"></a> <span class="sourceLineNo">313</span> for (Region region : regionsBySize.values()) {<a name="line.313"></a> @@ -596,19 +596,19 @@ <span class="sourceLineNo">588</span> startTime = EnvironmentEdgeManager.currentTime();<a name="line.588"></a> <span class="sourceLineNo">589</span> if (!server.getRegionServerAccounting().isOffheap()) {<a name="line.589"></a> <span class="sourceLineNo">590</span> logMsg("global memstore heapsize",<a name="line.590"></a> -<span class="sourceLineNo">591</span> server.getRegionServerAccounting().getGlobalMemstoreHeapSize(),<a name="line.591"></a> -<span class="sourceLineNo">592</span> server.getRegionServerAccounting().getGlobalMemstoreLimit());<a name="line.592"></a> +<span class="sourceLineNo">591</span> server.getRegionServerAccounting().getGlobalMemStoreHeapSize(),<a name="line.591"></a> +<span class="sourceLineNo">592</span> server.getRegionServerAccounting().getGlobalMemStoreLimit());<a name="line.592"></a> <span class="sourceLineNo">593</span> } else {<a name="line.593"></a> <span class="sourceLineNo">594</span> switch (flushType) {<a name="line.594"></a> <span class="sourceLineNo">595</span> case ABOVE_OFFHEAP_HIGHER_MARK:<a name="line.595"></a> <span class="sourceLineNo">596</span> logMsg("the global offheap memstore datasize",<a name="line.596"></a> -<span class="sourceLineNo">597</span> server.getRegionServerAccounting().getGlobalMemstoreDataSize(),<a name="line.597"></a> -<span class="sourceLineNo">598</span> server.getRegionServerAccounting().getGlobalMemstoreLimit());<a name="line.598"></a> +<span class="sourceLineNo">597</span> server.getRegionServerAccounting().getGlobalMemStoreDataSize(),<a name="line.597"></a> +<span class="sourceLineNo">598</span> server.getRegionServerAccounting().getGlobalMemStoreLimit());<a name="line.598"></a> <span class="sourceLineNo">599</span> break;<a name="line.599"></a> <span class="sourceLineNo">600</span> case ABOVE_ONHEAP_HIGHER_MARK:<a name="line.600"></a> <span class="sourceLineNo">601</span> logMsg("global memstore heapsize",<a name="line.601"></a> -<span class="sourceLineNo">602</span> server.getRegionServerAccounting().getGlobalMemstoreHeapSize(),<a name="line.602"></a> -<span class="sourceLineNo">603</span> server.getRegionServerAccounting().getGlobalOnHeapMemstoreLimit());<a name="line.603"></a> +<span class="sourceLineNo">602</span> server.getRegionServerAccounting().getGlobalMemStoreHeapSize(),<a name="line.602"></a> +<span class="sourceLineNo">603</span> server.getRegionServerAccounting().getGlobalOnHeapMemStoreLimit());<a name="line.603"></a> <span class="sourceLineNo">604</span> break;<a name="line.604"></a> <span class="sourceLineNo">605</span> default:<a name="line.605"></a> <span class="sourceLineNo">606</span> break;<a name="line.606"></a> @@ -699,8 +699,8 @@ <span class="sourceLineNo">691</span> * @param globalMemStoreSize<a name="line.691"></a> <span class="sourceLineNo">692</span> */<a name="line.692"></a> <span class="sourceLineNo">693</span> @Override<a name="line.693"></a> -<span class="sourceLineNo">694</span> public void setGlobalMemstoreLimit(long globalMemStoreSize) {<a name="line.694"></a> -<span class="sourceLineNo">695</span> this.server.getRegionServerAccounting().setGlobalMemstoreLimits(globalMemStoreSize);<a name="line.695"></a> +<span class="sourceLineNo">694</span> public void setGlobalMemStoreLimit(long globalMemStoreSize) {<a name="line.694"></a> +<span class="sourceLineNo">695</span> this.server.getRegionServerAccounting().setGlobalMemStoreLimits(globalMemStoreSize);<a name="line.695"></a> <span class="sourceLineNo">696</span> reclaimMemStoreMemory();<a name="line.696"></a> <span class="sourceLineNo">697</span> }<a name="line.697"></a> <span class="sourceLineNo">698</span><a name="line.698"></a> http://git-wip-us.apache.org/repos/asf/hbase-site/blob/3332caca/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.html ---------------------------------------------------------------------- diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.html index ce2e1a7..8596033 100644 --- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.html +++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.html @@ -115,10 +115,10 @@ <span class="sourceLineNo">107</span> this.flushHandlers = new FlushHandler[handlerCount];<a name="line.107"></a> <span class="sourceLineNo">108</span> LOG.info("globalMemStoreLimit="<a name="line.108"></a> <span class="sourceLineNo">109</span> + TraditionalBinaryPrefix<a name="line.109"></a> -<span class="sourceLineNo">110</span> .long2String(this.server.getRegionServerAccounting().getGlobalMemstoreLimit(), "", 1)<a name="line.110"></a> +<span class="sourceLineNo">110</span> .long2String(this.server.getRegionServerAccounting().getGlobalMemStoreLimit(), "", 1)<a name="line.110"></a> <span class="sourceLineNo">111</span> + ", globalMemStoreLimitLowMark="<a name="line.111"></a> <span class="sourceLineNo">112</span> + TraditionalBinaryPrefix.long2String(<a name="line.112"></a> -<span class="sourceLineNo">113</span> this.server.getRegionServerAccounting().getGlobalMemstoreLimitLowMark(), "", 1)<a name="line.113"></a> +<span class="sourceLineNo">113</span> this.server.getRegionServerAccounting().getGlobalMemStoreLimitLowMark(), "", 1)<a name="line.113"></a> <span class="sourceLineNo">114</span> + ", Offheap="<a name="line.114"></a> <span class="sourceLineNo">115</span> + (this.server.getRegionServerAccounting().isOffheap()));<a name="line.115"></a> <span class="sourceLineNo">116</span> }<a name="line.116"></a> @@ -144,12 +144,12 @@ <span class="sourceLineNo">136</span> while (!flushedOne) {<a name="line.136"></a> <span class="sourceLineNo">137</span> // Find the biggest region that doesn't have too many storefiles<a name="line.137"></a> <span class="sourceLineNo">138</span> // (might be null!)<a name="line.138"></a> -<span class="sourceLineNo">139</span> Region bestFlushableRegion = getBiggestMemstoreRegion(regionsBySize, excludedRegions, true);<a name="line.139"></a> +<span class="sourceLineNo">139</span> Region bestFlushableRegion = getBiggestMemStoreRegion(regionsBySize, excludedRegions, true);<a name="line.139"></a> <span class="sourceLineNo">140</span> // Find the biggest region, total, even if it might have too many flushes.<a name="line.140"></a> -<span class="sourceLineNo">141</span> Region bestAnyRegion = getBiggestMemstoreRegion(<a name="line.141"></a> +<span class="sourceLineNo">141</span> Region bestAnyRegion = getBiggestMemStoreRegion(<a name="line.141"></a> <span class="sourceLineNo">142</span> regionsBySize, excludedRegions, false);<a name="line.142"></a> <span class="sourceLineNo">143</span> // Find the biggest region that is a secondary region<a name="line.143"></a> -<span class="sourceLineNo">144</span> Region bestRegionReplica = getBiggestMemstoreOfRegionReplica(regionsBySize,<a name="line.144"></a> +<span class="sourceLineNo">144</span> Region bestRegionReplica = getBiggestMemStoreOfRegionReplica(regionsBySize,<a name="line.144"></a> <span class="sourceLineNo">145</span> excludedRegions);<a name="line.145"></a> <span class="sourceLineNo">146</span><a name="line.146"></a> <span class="sourceLineNo">147</span> if (bestAnyRegion == null && bestRegionReplica == null) {<a name="line.147"></a> @@ -159,7 +159,7 @@ <span class="sourceLineNo">151</span><a name="line.151"></a> <span class="sourceLineNo">152</span> Region regionToFlush;<a name="line.152"></a> <span class="sourceLineNo">153</span> if (bestFlushableRegion != null &&<a name="line.153"></a> -<span class="sourceLineNo">154</span> bestAnyRegion.getMemstoreSize() > 2 * bestFlushableRegion.getMemstoreSize()) {<a name="line.154"></a> +<span class="sourceLineNo">154</span> bestAnyRegion.getMemStoreSize() > 2 * bestFlushableRegion.getMemStoreSize()) {<a name="line.154"></a> <span class="sourceLineNo">155</span> // Even if it's not supposed to be flushed, pick a region if it's more than twice<a name="line.155"></a> <span class="sourceLineNo">156</span> // as big as the best flushable one - otherwise when we're under pressure we make<a name="line.156"></a> <span class="sourceLineNo">157</span> // lots of little flushes and cause lots of compactions, etc, which just makes<a name="line.157"></a> @@ -168,9 +168,9 @@ <span class="sourceLineNo">160</span> LOG.debug("Under global heap pressure: " + "Region "<a name="line.160"></a> <span class="sourceLineNo">161</span> + bestAnyRegion.getRegionInfo().getRegionNameAsString()<a name="line.161"></a> <span class="sourceLineNo">162</span> + " has too many " + "store files, but is "<a name="line.162"></a> -<span class="sourceLineNo">163</span> + TraditionalBinaryPrefix.long2String(bestAnyRegion.getMemstoreSize(), "", 1)<a name="line.163"></a> +<span class="sourceLineNo">163</span> + TraditionalBinaryPrefix.long2String(bestAnyRegion.getMemStoreSize(), "", 1)<a name="line.163"></a> <span class="sourceLineNo">164</span> + " vs best flushable region's "<a name="line.164"></a> -<span class="sourceLineNo">165</span> + TraditionalBinaryPrefix.long2String(bestFlushableRegion.getMemstoreSize(), "", 1)<a name="line.165"></a> +<span class="sourceLineNo">165</span> + TraditionalBinaryPrefix.long2String(bestFlushableRegion.getMemStoreSize(), "", 1)<a name="line.165"></a> <span class="sourceLineNo">166</span> + ". Choosing the bigger.");<a name="line.166"></a> <span class="sourceLineNo">167</span> }<a name="line.167"></a> <span class="sourceLineNo">168</span> regionToFlush = bestAnyRegion;<a name="line.168"></a> @@ -183,20 +183,20 @@ <span class="sourceLineNo">175</span> }<a name="line.175"></a> <span class="sourceLineNo">176</span><a name="line.176"></a> <span class="sourceLineNo">177</span> Preconditions.checkState(<a name="line.177"></a> -<span class="sourceLineNo">178</span> (regionToFlush != null && regionToFlush.getMemstoreSize() > 0) ||<a name="line.178"></a> -<span class="sourceLineNo">179</span> (bestRegionReplica != null && bestRegionReplica.getMemstoreSize() > 0));<a name="line.179"></a> +<span class="sourceLineNo">178</span> (regionToFlush != null && regionToFlush.getMemStoreSize() > 0) ||<a name="line.178"></a> +<span class="sourceLineNo">179</span> (bestRegionReplica != null && bestRegionReplica.getMemStoreSize() > 0));<a name="line.179"></a> <span class="sourceLineNo">180</span><a name="line.180"></a> <span class="sourceLineNo">181</span> if (regionToFlush == null ||<a name="line.181"></a> <span class="sourceLineNo">182</span> (bestRegionReplica != null &&<a name="line.182"></a> <span class="sourceLineNo">183</span> ServerRegionReplicaUtil.isRegionReplicaStoreFileRefreshEnabled(conf) &&<a name="line.183"></a> -<span class="sourceLineNo">184</span> (bestRegionReplica.getMemstoreSize()<a name="line.184"></a> -<span class="sourceLineNo">185</span> > secondaryMultiplier * regionToFlush.getMemstoreSize()))) {<a name="line.185"></a> +<span class="sourceLineNo">184</span> (bestRegionReplica.getMemStoreSize()<a name="line.184"></a> +<span class="sourceLineNo">185</span> > secondaryMultiplier * regionToFlush.getMemStoreSize()))) {<a name="line.185"></a> <span class="sourceLineNo">186</span> LOG.info("Refreshing storefiles of region " + bestRegionReplica<a name="line.186"></a> <span class="sourceLineNo">187</span> + " due to global heap pressure. Total memstore datasize="<a name="line.187"></a> <span class="sourceLineNo">188</span> + StringUtils<a name="line.188"></a> -<span class="sourceLineNo">189</span> .humanReadableInt(server.getRegionServerAccounting().getGlobalMemstoreDataSize())<a name="line.189"></a> +<span class="sourceLineNo">189</span> .humanReadableInt(server.getRegionServerAccounting().getGlobalMemStoreDataSize())<a name="line.189"></a> <span class="sourceLineNo">190</span> + " memstore heap size=" + StringUtils.humanReadableInt(<a name="line.190"></a> -<span class="sourceLineNo">191</span> server.getRegionServerAccounting().getGlobalMemstoreHeapSize()));<a name="line.191"></a> +<span class="sourceLineNo">191</span> server.getRegionServerAccounting().getGlobalMemStoreHeapSize()));<a name="line.191"></a> <span class="sourceLineNo">192</span> flushedOne = refreshStoreFilesAndReclaimMemory(bestRegionReplica);<a name="line.192"></a> <span class="sourceLineNo">193</span> if (!flushedOne) {<a name="line.193"></a> <span class="sourceLineNo">194</span> LOG.info("Excluding secondary region " + bestRegionReplica +<a name="line.194"></a> @@ -206,9 +206,9 @@ <span class="sourceLineNo">198</span> } else {<a name="line.198"></a> <span class="sourceLineNo">199</span> LOG.info("Flush of region " + regionToFlush + " due to global heap pressure. "<a name="line.199"></a> <span class="sourceLineNo">200</span> + "Total Memstore size="<a name="line.200"></a> -<span class="sourceLineNo">201</span> + humanReadableInt(server.getRegionServerAccounting().getGlobalMemstoreDataSize())<a name="line.201"></a> +<span class="sourceLineNo">201</span> + humanReadableInt(server.getRegionServerAccounting().getGlobalMemStoreDataSize())<a name="line.201"></a> <span class="sourceLineNo">202</span> + ", Region memstore size="<a name="line.202"></a> -<span class="sourceLineNo">203</span> + humanReadableInt(regionToFlush.getMemstoreSize()));<a name="line.203"></a> +<span class="sourceLineNo">203</span> + humanReadableInt(regionToFlush.getMemStoreSize()));<a name="line.203"></a> <span class="sourceLineNo">204</span> flushedOne = flushRegion(regionToFlush, true, false);<a name="line.204"></a> <span class="sourceLineNo">205</span><a name="line.205"></a> <span class="sourceLineNo">206</span> if (!flushedOne) {<a name="line.206"></a> @@ -239,7 +239,7 @@ <span class="sourceLineNo">231</span> if (type != FlushType.NORMAL) {<a name="line.231"></a> <span class="sourceLineNo">232</span> LOG.debug("Flush thread woke up because memory above low water="<a name="line.232"></a> <span class="sourceLineNo">233</span> + TraditionalBinaryPrefix.long2String(<a name="line.233"></a> -<span class="sourceLineNo">234</span> server.getRegionServerAccounting().getGlobalMemstoreLimitLowMark(), "", 1));<a name="line.234"></a> +<span class="sourceLineNo">234</span> server.getRegionServerAccounting().getGlobalMemStoreLimitLowMark(), "", 1));<a name="line.234"></a> <span class="sourceLineNo">235</span> // For offheap memstore, even if the lower water mark was breached due to heap overhead<a name="line.235"></a> <span class="sourceLineNo">236</span> // we still select the regions based on the region's memstore data size.<a name="line.236"></a> <span class="sourceLineNo">237</span> // TODO : If we want to decide based on heap over head it can be done without tracking<a name="line.237"></a> @@ -291,7 +291,7 @@ <span class="sourceLineNo">283</span> }<a name="line.283"></a> <span class="sourceLineNo">284</span> }<a name="line.284"></a> <span class="sourceLineNo">285</span><a name="line.285"></a> -<span class="sourceLineNo">286</span> private Region getBiggestMemstoreRegion(<a name="line.286"></a> +<span class="sourceLineNo">286</span> private Region getBiggestMemStoreRegion(<a name="line.286"></a> <span class="sourceLineNo">287</span> SortedMap<Long, Region> regionsBySize,<a name="line.287"></a> <span class="sourceLineNo">288</span> Set<Region> excludedRegions,<a name="line.288"></a> <span class="sourceLineNo">289</span> boolean checkStoreFileCount) {<a name="line.289"></a> @@ -315,7 +315,7 @@ <span class="sourceLineNo">307</span> return null;<a name="line.307"></a> <span class="sourceLineNo">308</span> }<a name="line.308"></a> <span class="sourceLineNo">309</span><a name="line.309"></a> -<span class="sourceLineNo">310</span> private Region getBiggestMemstoreOfRegionReplica(SortedMap<Long, Region> regionsBySize,<a name="line.310"></a> +<span class="sourceLineNo">310</span> private Region getBiggestMemStoreOfRegionReplica(SortedMap<Long, Region> regionsBySize,<a name="line.310"></a> <span class="sourceLineNo">311</span> Set<Region> excludedRegions) {<a name="line.311"></a> <span class="sourceLineNo">312</span> synchronized (regionsInQueue) {<a name="line.312"></a> <span class="sourceLineNo">313</span> for (Region region : regionsBySize.values()) {<a name="line.313"></a> @@ -596,19 +596,19 @@ <span class="sourceLineNo">588</span> startTime = EnvironmentEdgeManager.currentTime();<a name="line.588"></a> <span class="sourceLineNo">589</span> if (!server.getRegionServerAccounting().isOffheap()) {<a name="line.589"></a> <span class="sourceLineNo">590</span> logMsg("global memstore heapsize",<a name="line.590"></a> -<span class="sourceLineNo">591</span> server.getRegionServerAccounting().getGlobalMemstoreHeapSize(),<a name="line.591"></a> -<span class="sourceLineNo">592</span> server.getRegionServerAccounting().getGlobalMemstoreLimit());<a name="line.592"></a> +<span class="sourceLineNo">591</span> server.getRegionServerAccounting().getGlobalMemStoreHeapSize(),<a name="line.591"></a> +<span class="sourceLineNo">592</span> server.getRegionServerAccounting().getGlobalMemStoreLimit());<a name="line.592"></a> <span class="sourceLineNo">593</span> } else {<a name="line.593"></a> <span class="sourceLineNo">594</span> switch (flushType) {<a name="line.594"></a> <span class="sourceLineNo">595</span> case ABOVE_OFFHEAP_HIGHER_MARK:<a name="line.595"></a> <span class="sourceLineNo">596</span> logMsg("the global offheap memstore datasize",<a name="line.596"></a> -<span class="sourceLineNo">597</span> server.getRegionServerAccounting().getGlobalMemstoreDataSize(),<a name="line.597"></a> -<span class="sourceLineNo">598</span> server.getRegionServerAccounting().getGlobalMemstoreLimit());<a name="line.598"></a> +<span class="sourceLineNo">597</span> server.getRegionServerAccounting().getGlobalMemStoreDataSize(),<a name="line.597"></a> +<span class="sourceLineNo">598</span> server.getRegionServerAccounting().getGlobalMemStoreLimit());<a name="line.598"></a> <span class="sourceLineNo">599</span> break;<a name="line.599"></a> <span class="sourceLineNo">600</span> case ABOVE_ONHEAP_HIGHER_MARK:<a name="line.600"></a> <span class="sourceLineNo">601</span> logMsg("global memstore heapsize",<a name="line.601"></a> -<span class="sourceLineNo">602</span> server.getRegionServerAccounting().getGlobalMemstoreHeapSize(),<a name="line.602"></a> -<span class="sourceLineNo">603</span> server.getRegionServerAccounting().getGlobalOnHeapMemstoreLimit());<a name="line.603"></a> +<span class="sourceLineNo">602</span> server.getRegionServerAccounting().getGlobalMemStoreHeapSize(),<a name="line.602"></a> +<span class="sourceLineNo">603</span> server.getRegionServerAccounting().getGlobalOnHeapMemStoreLimit());<a name="line.603"></a> <span class="sourceLineNo">604</span> break;<a name="line.604"></a> <span class="sourceLineNo">605</span> default:<a name="line.605"></a> <span class="sourceLineNo">606</span> break;<a name="line.606"></a> @@ -699,8 +699,8 @@ <span class="sourceLineNo">691</span> * @param globalMemStoreSize<a name="line.691"></a> <span class="sourceLineNo">692</span> */<a name="line.692"></a> <span class="sourceLineNo">693</span> @Override<a name="line.693"></a> -<span class="sourceLineNo">694</span> public void setGlobalMemstoreLimit(long globalMemStoreSize) {<a name="line.694"></a> -<span class="sourceLineNo">695</span> this.server.getRegionServerAccounting().setGlobalMemstoreLimits(globalMemStoreSize);<a name="line.695"></a> +<span class="sourceLineNo">694</span> public void setGlobalMemStoreLimit(long globalMemStoreSize) {<a name="line.694"></a> +<span class="sourceLineNo">695</span> this.server.getRegionServerAccounting().setGlobalMemStoreLimits(globalMemStoreSize);<a name="line.695"></a> <span class="sourceLineNo">696</span> reclaimMemStoreMemory();<a name="line.696"></a> <span class="sourceLineNo">697</span> }<a name="line.697"></a> <span class="sourceLineNo">698</span><a name="line.698"></a>
