http://git-wip-us.apache.org/repos/asf/hbase-site/blob/991224b9/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/FlushLargeStoresPolicy.html ---------------------------------------------------------------------- diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/FlushLargeStoresPolicy.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/FlushLargeStoresPolicy.html index 8c02b6e..1a90c1d 100644 --- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/FlushLargeStoresPolicy.html +++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/FlushLargeStoresPolicy.html @@ -51,55 +51,65 @@ <span class="sourceLineNo">043</span><a name="line.43"></a> <span class="sourceLineNo">044</span> protected long flushSizeLowerBound = -1;<a name="line.44"></a> <span class="sourceLineNo">045</span><a name="line.45"></a> -<span class="sourceLineNo">046</span> protected long getFlushSizeLowerBound(HRegion region) { int familyNumber = region.getTableDescriptor().getColumnFamilyCount();<a name="line.46"></a> -<span class="sourceLineNo">047</span> // For multiple families, lower bound is the "average flush size" by default<a name="line.47"></a> -<span class="sourceLineNo">048</span> // unless setting in configuration is larger.<a name="line.48"></a> -<span class="sourceLineNo">049</span> long flushSizeLowerBound = region.getMemStoreFlushSize() / familyNumber;<a name="line.49"></a> -<span class="sourceLineNo">050</span> long minimumLowerBound =<a name="line.50"></a> -<span class="sourceLineNo">051</span> getConf().getLong(HREGION_COLUMNFAMILY_FLUSH_SIZE_LOWER_BOUND_MIN,<a name="line.51"></a> -<span class="sourceLineNo">052</span> DEFAULT_HREGION_COLUMNFAMILY_FLUSH_SIZE_LOWER_BOUND_MIN);<a name="line.52"></a> -<span class="sourceLineNo">053</span> if (minimumLowerBound > flushSizeLowerBound) {<a name="line.53"></a> -<span class="sourceLineNo">054</span> flushSizeLowerBound = minimumLowerBound;<a name="line.54"></a> -<span class="sourceLineNo">055</span> }<a name="line.55"></a> -<span class="sourceLineNo">056</span> // use the setting in table description if any<a name="line.56"></a> -<span class="sourceLineNo">057</span> String flushedSizeLowerBoundString =<a name="line.57"></a> -<span class="sourceLineNo">058</span> region.getTableDescriptor().getValue(HREGION_COLUMNFAMILY_FLUSH_SIZE_LOWER_BOUND);<a name="line.58"></a> -<span class="sourceLineNo">059</span> if (flushedSizeLowerBoundString == null) {<a name="line.59"></a> -<span class="sourceLineNo">060</span> LOG.debug("No {} set in table {} descriptor;" +<a name="line.60"></a> -<span class="sourceLineNo">061</span> "using region.getMemStoreFlushSize/# of families ({}) instead.",<a name="line.61"></a> -<span class="sourceLineNo">062</span> HREGION_COLUMNFAMILY_FLUSH_SIZE_LOWER_BOUND,<a name="line.62"></a> -<span class="sourceLineNo">063</span> region.getTableDescriptor().getTableName(),<a name="line.63"></a> -<span class="sourceLineNo">064</span> StringUtils.humanSize(flushSizeLowerBound) + ")");<a name="line.64"></a> -<span class="sourceLineNo">065</span> } else {<a name="line.65"></a> -<span class="sourceLineNo">066</span> try {<a name="line.66"></a> -<span class="sourceLineNo">067</span> flushSizeLowerBound = Long.parseLong(flushedSizeLowerBoundString);<a name="line.67"></a> -<span class="sourceLineNo">068</span> } catch (NumberFormatException nfe) {<a name="line.68"></a> -<span class="sourceLineNo">069</span> // fall back for fault setting<a name="line.69"></a> -<span class="sourceLineNo">070</span> LOG.warn("Number format exception parsing {} for table {}: {}, {}; " +<a name="line.70"></a> -<span class="sourceLineNo">071</span> "using region.getMemStoreFlushSize/# of families ({}) instead.",<a name="line.71"></a> -<span class="sourceLineNo">072</span> HREGION_COLUMNFAMILY_FLUSH_SIZE_LOWER_BOUND,<a name="line.72"></a> -<span class="sourceLineNo">073</span> region.getTableDescriptor().getTableName(),<a name="line.73"></a> -<span class="sourceLineNo">074</span> flushedSizeLowerBoundString,<a name="line.74"></a> -<span class="sourceLineNo">075</span> nfe,<a name="line.75"></a> -<span class="sourceLineNo">076</span> flushSizeLowerBound);<a name="line.76"></a> -<span class="sourceLineNo">077</span><a name="line.77"></a> -<span class="sourceLineNo">078</span> }<a name="line.78"></a> -<span class="sourceLineNo">079</span> }<a name="line.79"></a> -<span class="sourceLineNo">080</span> return flushSizeLowerBound;<a name="line.80"></a> -<span class="sourceLineNo">081</span> }<a name="line.81"></a> -<span class="sourceLineNo">082</span><a name="line.82"></a> -<span class="sourceLineNo">083</span> protected boolean shouldFlush(HStore store) {<a name="line.83"></a> -<span class="sourceLineNo">084</span> if (store.getMemStoreSize().getDataSize() > this.flushSizeLowerBound) {<a name="line.84"></a> -<span class="sourceLineNo">085</span> LOG.debug("Flush {} of {}; memstoreSize={} > lowerBound={}",<a name="line.85"></a> -<span class="sourceLineNo">086</span> store.getColumnFamilyName(),<a name="line.86"></a> -<span class="sourceLineNo">087</span> region.getRegionInfo().getEncodedName(),<a name="line.87"></a> -<span class="sourceLineNo">088</span> store.getMemStoreSize().getDataSize(),<a name="line.88"></a> -<span class="sourceLineNo">089</span> this.flushSizeLowerBound);<a name="line.89"></a> -<span class="sourceLineNo">090</span> return true;<a name="line.90"></a> -<span class="sourceLineNo">091</span> }<a name="line.91"></a> -<span class="sourceLineNo">092</span> return false;<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">046</span> protected void setFlushSizeLowerBounds(HRegion region) {<a name="line.46"></a> +<span class="sourceLineNo">047</span> int familyNumber = region.getTableDescriptor().getColumnFamilyCount();<a name="line.47"></a> +<span class="sourceLineNo">048</span> // For multiple families, lower bound is the "average flush size" by default<a name="line.48"></a> +<span class="sourceLineNo">049</span> // unless setting in configuration is larger.<a name="line.49"></a> +<span class="sourceLineNo">050</span> flushSizeLowerBound = region.getMemStoreFlushSize() / familyNumber;<a name="line.50"></a> +<span class="sourceLineNo">051</span> long minimumLowerBound =<a name="line.51"></a> +<span class="sourceLineNo">052</span> getConf().getLong(HREGION_COLUMNFAMILY_FLUSH_SIZE_LOWER_BOUND_MIN,<a name="line.52"></a> +<span class="sourceLineNo">053</span> DEFAULT_HREGION_COLUMNFAMILY_FLUSH_SIZE_LOWER_BOUND_MIN);<a name="line.53"></a> +<span class="sourceLineNo">054</span> if (minimumLowerBound > flushSizeLowerBound) {<a name="line.54"></a> +<span class="sourceLineNo">055</span> flushSizeLowerBound = minimumLowerBound;<a name="line.55"></a> +<span class="sourceLineNo">056</span> }<a name="line.56"></a> +<span class="sourceLineNo">057</span> // use the setting in table description if any<a name="line.57"></a> +<span class="sourceLineNo">058</span> String flushedSizeLowerBoundString =<a name="line.58"></a> +<span class="sourceLineNo">059</span> region.getTableDescriptor().getValue(HREGION_COLUMNFAMILY_FLUSH_SIZE_LOWER_BOUND);<a name="line.59"></a> +<span class="sourceLineNo">060</span> if (flushedSizeLowerBoundString == null) {<a name="line.60"></a> +<span class="sourceLineNo">061</span> LOG.debug("No {} set in table {} descriptor;"<a name="line.61"></a> +<span class="sourceLineNo">062</span> + "using region.getMemStoreFlushHeapSize/# of families ({}) "<a name="line.62"></a> +<span class="sourceLineNo">063</span> + "instead."<a name="line.63"></a> +<span class="sourceLineNo">064</span> , HREGION_COLUMNFAMILY_FLUSH_SIZE_LOWER_BOUND<a name="line.64"></a> +<span class="sourceLineNo">065</span> , region.getTableDescriptor().getTableName()<a name="line.65"></a> +<span class="sourceLineNo">066</span> , StringUtils.humanSize(flushSizeLowerBound)<a name="line.66"></a> +<span class="sourceLineNo">067</span> + ")");<a name="line.67"></a> +<span class="sourceLineNo">068</span> } else {<a name="line.68"></a> +<span class="sourceLineNo">069</span> try {<a name="line.69"></a> +<span class="sourceLineNo">070</span> flushSizeLowerBound = Long.parseLong(flushedSizeLowerBoundString);<a name="line.70"></a> +<span class="sourceLineNo">071</span> } catch (NumberFormatException nfe) {<a name="line.71"></a> +<span class="sourceLineNo">072</span> // fall back for fault setting<a name="line.72"></a> +<span class="sourceLineNo">073</span> LOG.warn("Number format exception parsing {} for table {}: {}, {}; "<a name="line.73"></a> +<span class="sourceLineNo">074</span> + "using region.getMemStoreFlushHeapSize/# of families ({}) "<a name="line.74"></a> +<span class="sourceLineNo">075</span> + "and region.getMemStoreFlushOffHeapSize/# of families ({}) "<a name="line.75"></a> +<span class="sourceLineNo">076</span> + "instead."<a name="line.76"></a> +<span class="sourceLineNo">077</span> , HREGION_COLUMNFAMILY_FLUSH_SIZE_LOWER_BOUND<a name="line.77"></a> +<span class="sourceLineNo">078</span> , region.getTableDescriptor().getTableName()<a name="line.78"></a> +<span class="sourceLineNo">079</span> , flushedSizeLowerBoundString<a name="line.79"></a> +<span class="sourceLineNo">080</span> , nfe<a name="line.80"></a> +<span class="sourceLineNo">081</span> , flushSizeLowerBound<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> }<a name="line.84"></a> +<span class="sourceLineNo">085</span> }<a name="line.85"></a> +<span class="sourceLineNo">086</span> }<a name="line.86"></a> +<span class="sourceLineNo">087</span><a name="line.87"></a> +<span class="sourceLineNo">088</span> protected boolean shouldFlush(HStore store) {<a name="line.88"></a> +<span class="sourceLineNo">089</span> if (store.getMemStoreSize().getHeapSize()<a name="line.89"></a> +<span class="sourceLineNo">090</span> + store.getMemStoreSize().getOffHeapSize() > this.flushSizeLowerBound) {<a name="line.90"></a> +<span class="sourceLineNo">091</span> LOG.debug("Flush {} of {}; "<a name="line.91"></a> +<span class="sourceLineNo">092</span> + "heap memstoreSize={} +"<a name="line.92"></a> +<span class="sourceLineNo">093</span> + "off heap memstoreSize={} > memstore lowerBound={}"<a name="line.93"></a> +<span class="sourceLineNo">094</span> , store.getColumnFamilyName()<a name="line.94"></a> +<span class="sourceLineNo">095</span> , region.getRegionInfo().getEncodedName()<a name="line.95"></a> +<span class="sourceLineNo">096</span> , store.getMemStoreSize().getHeapSize()<a name="line.96"></a> +<span class="sourceLineNo">097</span> , store.getMemStoreSize().getOffHeapSize()<a name="line.97"></a> +<span class="sourceLineNo">098</span> , this.flushSizeLowerBound<a name="line.98"></a> +<span class="sourceLineNo">099</span> );<a name="line.99"></a> +<span class="sourceLineNo">100</span> return true;<a name="line.100"></a> +<span class="sourceLineNo">101</span> }<a name="line.101"></a> +<span class="sourceLineNo">102</span> return false;<a name="line.102"></a> +<span class="sourceLineNo">103</span> }<a name="line.103"></a> +<span class="sourceLineNo">104</span>}<a name="line.104"></a>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/991224b9/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/FlushNonSloppyStoresFirstPolicy.html ---------------------------------------------------------------------- diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/FlushNonSloppyStoresFirstPolicy.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/FlushNonSloppyStoresFirstPolicy.html index 81ea8ea..3872547 100644 --- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/FlushNonSloppyStoresFirstPolicy.html +++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/FlushNonSloppyStoresFirstPolicy.html @@ -71,7 +71,7 @@ <span class="sourceLineNo">063</span> @Override<a name="line.63"></a> <span class="sourceLineNo">064</span> protected void configureForRegion(HRegion region) {<a name="line.64"></a> <span class="sourceLineNo">065</span> super.configureForRegion(region);<a name="line.65"></a> -<span class="sourceLineNo">066</span> this.flushSizeLowerBound = getFlushSizeLowerBound(region);<a name="line.66"></a> +<span class="sourceLineNo">066</span> setFlushSizeLowerBounds(region);<a name="line.66"></a> <span class="sourceLineNo">067</span> for (HStore store : region.stores.values()) {<a name="line.67"></a> <span class="sourceLineNo">068</span> if (store.isSloppyMemStore()) {<a name="line.68"></a> <span class="sourceLineNo">069</span> sloppyStores.add(store);<a name="line.69"></a>
