http://git-wip-us.apache.org/repos/asf/hbase-site/blob/1ada5f22/apidocs/src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanController.html ---------------------------------------------------------------------- diff --git a/apidocs/src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanController.html b/apidocs/src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanController.html index 59c2836..c804d26 100644 --- a/apidocs/src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanController.html +++ b/apidocs/src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanController.html @@ -103,38 +103,45 @@ <span class="sourceLineNo">095</span> void onNext(Result[] results, ScanController controller);<a name="line.95"></a> <span class="sourceLineNo">096</span><a name="line.96"></a> <span class="sourceLineNo">097</span> /**<a name="line.97"></a> -<span class="sourceLineNo">098</span> * Indicate that there is an heartbeat message but we have not cumulated enough cells to call<a name="line.98"></a> -<span class="sourceLineNo">099</span> * onNext.<a name="line.99"></a> +<span class="sourceLineNo">098</span> * Indicate that there is a heartbeat message but we have not cumulated enough cells to call<a name="line.98"></a> +<span class="sourceLineNo">099</span> * {@link #onNext(Result[], ScanController)}.<a name="line.99"></a> <span class="sourceLineNo">100</span> * <p><a name="line.100"></a> -<span class="sourceLineNo">101</span> * This method give you a chance to terminate a slow scan operation.<a name="line.101"></a> -<span class="sourceLineNo">102</span> * @param controller used to suspend or terminate the scan. Notice that the {@code controller}<a name="line.102"></a> -<span class="sourceLineNo">103</span> * instance is only valid within the scope of onHeartbeat method. You can only call its<a name="line.103"></a> -<span class="sourceLineNo">104</span> * method in onHeartbeat, do NOT store it and call it later outside onHeartbeat.<a name="line.104"></a> -<span class="sourceLineNo">105</span> */<a name="line.105"></a> -<span class="sourceLineNo">106</span> default void onHeartbeat(ScanController controller) {<a name="line.106"></a> -<span class="sourceLineNo">107</span> }<a name="line.107"></a> -<span class="sourceLineNo">108</span><a name="line.108"></a> -<span class="sourceLineNo">109</span> /**<a name="line.109"></a> -<span class="sourceLineNo">110</span> * Indicate that we hit an unrecoverable error and the scan operation is terminated.<a name="line.110"></a> -<span class="sourceLineNo">111</span> * <p><a name="line.111"></a> -<span class="sourceLineNo">112</span> * We will not call {@link #onComplete()} after calling {@link #onError(Throwable)}.<a name="line.112"></a> -<span class="sourceLineNo">113</span> */<a name="line.113"></a> -<span class="sourceLineNo">114</span> void onError(Throwable error);<a name="line.114"></a> +<span class="sourceLineNo">101</span> * Note that this method will always be called when RS returns something to us but we do not have<a name="line.101"></a> +<span class="sourceLineNo">102</span> * enough cells to call {@link #onNext(Result[], ScanController)}. Sometimes it may not be a<a name="line.102"></a> +<span class="sourceLineNo">103</span> * 'heartbeat' message for RS, for example, we have a large row with many cells and size limit is<a name="line.103"></a> +<span class="sourceLineNo">104</span> * exceeded before sending all the cells for this row. For RS it does send some data to us and the<a name="line.104"></a> +<span class="sourceLineNo">105</span> * time limit has not been reached, but we can not return the data to client so here we call this<a name="line.105"></a> +<span class="sourceLineNo">106</span> * method to tell client we have already received something.<a name="line.106"></a> +<span class="sourceLineNo">107</span> * <p><a name="line.107"></a> +<span class="sourceLineNo">108</span> * This method give you a chance to terminate a slow scan operation.<a name="line.108"></a> +<span class="sourceLineNo">109</span> * @param controller used to suspend or terminate the scan. Notice that the {@code controller}<a name="line.109"></a> +<span class="sourceLineNo">110</span> * instance is only valid within the scope of onHeartbeat method. You can only call its<a name="line.110"></a> +<span class="sourceLineNo">111</span> * method in onHeartbeat, do NOT store it and call it later outside onHeartbeat.<a name="line.111"></a> +<span class="sourceLineNo">112</span> */<a name="line.112"></a> +<span class="sourceLineNo">113</span> default void onHeartbeat(ScanController controller) {<a name="line.113"></a> +<span class="sourceLineNo">114</span> }<a name="line.114"></a> <span class="sourceLineNo">115</span><a name="line.115"></a> <span class="sourceLineNo">116</span> /**<a name="line.116"></a> -<span class="sourceLineNo">117</span> * Indicate that the scan operation is completed normally.<a name="line.117"></a> -<span class="sourceLineNo">118</span> */<a name="line.118"></a> -<span class="sourceLineNo">119</span> void onComplete();<a name="line.119"></a> -<span class="sourceLineNo">120</span><a name="line.120"></a> -<span class="sourceLineNo">121</span> /**<a name="line.121"></a> -<span class="sourceLineNo">122</span> * If {@code scan.isScanMetricsEnabled()} returns true, then this method will be called prior to<a name="line.122"></a> -<span class="sourceLineNo">123</span> * all other methods in this interface to give you the {@link ScanMetrics} instance for this scan<a name="line.123"></a> -<span class="sourceLineNo">124</span> * operation. The {@link ScanMetrics} instance will be updated on-the-fly during the scan, you can<a name="line.124"></a> -<span class="sourceLineNo">125</span> * store it somewhere to get the metrics at any time if you want.<a name="line.125"></a> -<span class="sourceLineNo">126</span> */<a name="line.126"></a> -<span class="sourceLineNo">127</span> default void onScanMetricsCreated(ScanMetrics scanMetrics) {<a name="line.127"></a> -<span class="sourceLineNo">128</span> }<a name="line.128"></a> -<span class="sourceLineNo">129</span>}<a name="line.129"></a> +<span class="sourceLineNo">117</span> * Indicate that we hit an unrecoverable error and the scan operation is terminated.<a name="line.117"></a> +<span class="sourceLineNo">118</span> * <p><a name="line.118"></a> +<span class="sourceLineNo">119</span> * We will not call {@link #onComplete()} after calling {@link #onError(Throwable)}.<a name="line.119"></a> +<span class="sourceLineNo">120</span> */<a name="line.120"></a> +<span class="sourceLineNo">121</span> void onError(Throwable error);<a name="line.121"></a> +<span class="sourceLineNo">122</span><a name="line.122"></a> +<span class="sourceLineNo">123</span> /**<a name="line.123"></a> +<span class="sourceLineNo">124</span> * Indicate that the scan operation is completed normally.<a name="line.124"></a> +<span class="sourceLineNo">125</span> */<a name="line.125"></a> +<span class="sourceLineNo">126</span> void onComplete();<a name="line.126"></a> +<span class="sourceLineNo">127</span><a name="line.127"></a> +<span class="sourceLineNo">128</span> /**<a name="line.128"></a> +<span class="sourceLineNo">129</span> * If {@code scan.isScanMetricsEnabled()} returns true, then this method will be called prior to<a name="line.129"></a> +<span class="sourceLineNo">130</span> * all other methods in this interface to give you the {@link ScanMetrics} instance for this scan<a name="line.130"></a> +<span class="sourceLineNo">131</span> * operation. The {@link ScanMetrics} instance will be updated on-the-fly during the scan, you can<a name="line.131"></a> +<span class="sourceLineNo">132</span> * store it somewhere to get the metrics at any time if you want.<a name="line.132"></a> +<span class="sourceLineNo">133</span> */<a name="line.133"></a> +<span class="sourceLineNo">134</span> default void onScanMetricsCreated(ScanMetrics scanMetrics) {<a name="line.134"></a> +<span class="sourceLineNo">135</span> }<a name="line.135"></a> +<span class="sourceLineNo">136</span>}<a name="line.136"></a>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/1ada5f22/apidocs/src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanResumer.html ---------------------------------------------------------------------- diff --git a/apidocs/src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanResumer.html b/apidocs/src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanResumer.html index 59c2836..c804d26 100644 --- a/apidocs/src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanResumer.html +++ b/apidocs/src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.ScanResumer.html @@ -103,38 +103,45 @@ <span class="sourceLineNo">095</span> void onNext(Result[] results, ScanController controller);<a name="line.95"></a> <span class="sourceLineNo">096</span><a name="line.96"></a> <span class="sourceLineNo">097</span> /**<a name="line.97"></a> -<span class="sourceLineNo">098</span> * Indicate that there is an heartbeat message but we have not cumulated enough cells to call<a name="line.98"></a> -<span class="sourceLineNo">099</span> * onNext.<a name="line.99"></a> +<span class="sourceLineNo">098</span> * Indicate that there is a heartbeat message but we have not cumulated enough cells to call<a name="line.98"></a> +<span class="sourceLineNo">099</span> * {@link #onNext(Result[], ScanController)}.<a name="line.99"></a> <span class="sourceLineNo">100</span> * <p><a name="line.100"></a> -<span class="sourceLineNo">101</span> * This method give you a chance to terminate a slow scan operation.<a name="line.101"></a> -<span class="sourceLineNo">102</span> * @param controller used to suspend or terminate the scan. Notice that the {@code controller}<a name="line.102"></a> -<span class="sourceLineNo">103</span> * instance is only valid within the scope of onHeartbeat method. You can only call its<a name="line.103"></a> -<span class="sourceLineNo">104</span> * method in onHeartbeat, do NOT store it and call it later outside onHeartbeat.<a name="line.104"></a> -<span class="sourceLineNo">105</span> */<a name="line.105"></a> -<span class="sourceLineNo">106</span> default void onHeartbeat(ScanController controller) {<a name="line.106"></a> -<span class="sourceLineNo">107</span> }<a name="line.107"></a> -<span class="sourceLineNo">108</span><a name="line.108"></a> -<span class="sourceLineNo">109</span> /**<a name="line.109"></a> -<span class="sourceLineNo">110</span> * Indicate that we hit an unrecoverable error and the scan operation is terminated.<a name="line.110"></a> -<span class="sourceLineNo">111</span> * <p><a name="line.111"></a> -<span class="sourceLineNo">112</span> * We will not call {@link #onComplete()} after calling {@link #onError(Throwable)}.<a name="line.112"></a> -<span class="sourceLineNo">113</span> */<a name="line.113"></a> -<span class="sourceLineNo">114</span> void onError(Throwable error);<a name="line.114"></a> +<span class="sourceLineNo">101</span> * Note that this method will always be called when RS returns something to us but we do not have<a name="line.101"></a> +<span class="sourceLineNo">102</span> * enough cells to call {@link #onNext(Result[], ScanController)}. Sometimes it may not be a<a name="line.102"></a> +<span class="sourceLineNo">103</span> * 'heartbeat' message for RS, for example, we have a large row with many cells and size limit is<a name="line.103"></a> +<span class="sourceLineNo">104</span> * exceeded before sending all the cells for this row. For RS it does send some data to us and the<a name="line.104"></a> +<span class="sourceLineNo">105</span> * time limit has not been reached, but we can not return the data to client so here we call this<a name="line.105"></a> +<span class="sourceLineNo">106</span> * method to tell client we have already received something.<a name="line.106"></a> +<span class="sourceLineNo">107</span> * <p><a name="line.107"></a> +<span class="sourceLineNo">108</span> * This method give you a chance to terminate a slow scan operation.<a name="line.108"></a> +<span class="sourceLineNo">109</span> * @param controller used to suspend or terminate the scan. Notice that the {@code controller}<a name="line.109"></a> +<span class="sourceLineNo">110</span> * instance is only valid within the scope of onHeartbeat method. You can only call its<a name="line.110"></a> +<span class="sourceLineNo">111</span> * method in onHeartbeat, do NOT store it and call it later outside onHeartbeat.<a name="line.111"></a> +<span class="sourceLineNo">112</span> */<a name="line.112"></a> +<span class="sourceLineNo">113</span> default void onHeartbeat(ScanController controller) {<a name="line.113"></a> +<span class="sourceLineNo">114</span> }<a name="line.114"></a> <span class="sourceLineNo">115</span><a name="line.115"></a> <span class="sourceLineNo">116</span> /**<a name="line.116"></a> -<span class="sourceLineNo">117</span> * Indicate that the scan operation is completed normally.<a name="line.117"></a> -<span class="sourceLineNo">118</span> */<a name="line.118"></a> -<span class="sourceLineNo">119</span> void onComplete();<a name="line.119"></a> -<span class="sourceLineNo">120</span><a name="line.120"></a> -<span class="sourceLineNo">121</span> /**<a name="line.121"></a> -<span class="sourceLineNo">122</span> * If {@code scan.isScanMetricsEnabled()} returns true, then this method will be called prior to<a name="line.122"></a> -<span class="sourceLineNo">123</span> * all other methods in this interface to give you the {@link ScanMetrics} instance for this scan<a name="line.123"></a> -<span class="sourceLineNo">124</span> * operation. The {@link ScanMetrics} instance will be updated on-the-fly during the scan, you can<a name="line.124"></a> -<span class="sourceLineNo">125</span> * store it somewhere to get the metrics at any time if you want.<a name="line.125"></a> -<span class="sourceLineNo">126</span> */<a name="line.126"></a> -<span class="sourceLineNo">127</span> default void onScanMetricsCreated(ScanMetrics scanMetrics) {<a name="line.127"></a> -<span class="sourceLineNo">128</span> }<a name="line.128"></a> -<span class="sourceLineNo">129</span>}<a name="line.129"></a> +<span class="sourceLineNo">117</span> * Indicate that we hit an unrecoverable error and the scan operation is terminated.<a name="line.117"></a> +<span class="sourceLineNo">118</span> * <p><a name="line.118"></a> +<span class="sourceLineNo">119</span> * We will not call {@link #onComplete()} after calling {@link #onError(Throwable)}.<a name="line.119"></a> +<span class="sourceLineNo">120</span> */<a name="line.120"></a> +<span class="sourceLineNo">121</span> void onError(Throwable error);<a name="line.121"></a> +<span class="sourceLineNo">122</span><a name="line.122"></a> +<span class="sourceLineNo">123</span> /**<a name="line.123"></a> +<span class="sourceLineNo">124</span> * Indicate that the scan operation is completed normally.<a name="line.124"></a> +<span class="sourceLineNo">125</span> */<a name="line.125"></a> +<span class="sourceLineNo">126</span> void onComplete();<a name="line.126"></a> +<span class="sourceLineNo">127</span><a name="line.127"></a> +<span class="sourceLineNo">128</span> /**<a name="line.128"></a> +<span class="sourceLineNo">129</span> * If {@code scan.isScanMetricsEnabled()} returns true, then this method will be called prior to<a name="line.129"></a> +<span class="sourceLineNo">130</span> * all other methods in this interface to give you the {@link ScanMetrics} instance for this scan<a name="line.130"></a> +<span class="sourceLineNo">131</span> * operation. The {@link ScanMetrics} instance will be updated on-the-fly during the scan, you can<a name="line.131"></a> +<span class="sourceLineNo">132</span> * store it somewhere to get the metrics at any time if you want.<a name="line.132"></a> +<span class="sourceLineNo">133</span> */<a name="line.133"></a> +<span class="sourceLineNo">134</span> default void onScanMetricsCreated(ScanMetrics scanMetrics) {<a name="line.134"></a> +<span class="sourceLineNo">135</span> }<a name="line.135"></a> +<span class="sourceLineNo">136</span>}<a name="line.136"></a> http://git-wip-us.apache.org/repos/asf/hbase-site/blob/1ada5f22/apidocs/src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.html ---------------------------------------------------------------------- diff --git a/apidocs/src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.html b/apidocs/src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.html index 59c2836..c804d26 100644 --- a/apidocs/src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.html +++ b/apidocs/src-html/org/apache/hadoop/hbase/client/RawScanResultConsumer.html @@ -103,38 +103,45 @@ <span class="sourceLineNo">095</span> void onNext(Result[] results, ScanController controller);<a name="line.95"></a> <span class="sourceLineNo">096</span><a name="line.96"></a> <span class="sourceLineNo">097</span> /**<a name="line.97"></a> -<span class="sourceLineNo">098</span> * Indicate that there is an heartbeat message but we have not cumulated enough cells to call<a name="line.98"></a> -<span class="sourceLineNo">099</span> * onNext.<a name="line.99"></a> +<span class="sourceLineNo">098</span> * Indicate that there is a heartbeat message but we have not cumulated enough cells to call<a name="line.98"></a> +<span class="sourceLineNo">099</span> * {@link #onNext(Result[], ScanController)}.<a name="line.99"></a> <span class="sourceLineNo">100</span> * <p><a name="line.100"></a> -<span class="sourceLineNo">101</span> * This method give you a chance to terminate a slow scan operation.<a name="line.101"></a> -<span class="sourceLineNo">102</span> * @param controller used to suspend or terminate the scan. Notice that the {@code controller}<a name="line.102"></a> -<span class="sourceLineNo">103</span> * instance is only valid within the scope of onHeartbeat method. You can only call its<a name="line.103"></a> -<span class="sourceLineNo">104</span> * method in onHeartbeat, do NOT store it and call it later outside onHeartbeat.<a name="line.104"></a> -<span class="sourceLineNo">105</span> */<a name="line.105"></a> -<span class="sourceLineNo">106</span> default void onHeartbeat(ScanController controller) {<a name="line.106"></a> -<span class="sourceLineNo">107</span> }<a name="line.107"></a> -<span class="sourceLineNo">108</span><a name="line.108"></a> -<span class="sourceLineNo">109</span> /**<a name="line.109"></a> -<span class="sourceLineNo">110</span> * Indicate that we hit an unrecoverable error and the scan operation is terminated.<a name="line.110"></a> -<span class="sourceLineNo">111</span> * <p><a name="line.111"></a> -<span class="sourceLineNo">112</span> * We will not call {@link #onComplete()} after calling {@link #onError(Throwable)}.<a name="line.112"></a> -<span class="sourceLineNo">113</span> */<a name="line.113"></a> -<span class="sourceLineNo">114</span> void onError(Throwable error);<a name="line.114"></a> +<span class="sourceLineNo">101</span> * Note that this method will always be called when RS returns something to us but we do not have<a name="line.101"></a> +<span class="sourceLineNo">102</span> * enough cells to call {@link #onNext(Result[], ScanController)}. Sometimes it may not be a<a name="line.102"></a> +<span class="sourceLineNo">103</span> * 'heartbeat' message for RS, for example, we have a large row with many cells and size limit is<a name="line.103"></a> +<span class="sourceLineNo">104</span> * exceeded before sending all the cells for this row. For RS it does send some data to us and the<a name="line.104"></a> +<span class="sourceLineNo">105</span> * time limit has not been reached, but we can not return the data to client so here we call this<a name="line.105"></a> +<span class="sourceLineNo">106</span> * method to tell client we have already received something.<a name="line.106"></a> +<span class="sourceLineNo">107</span> * <p><a name="line.107"></a> +<span class="sourceLineNo">108</span> * This method give you a chance to terminate a slow scan operation.<a name="line.108"></a> +<span class="sourceLineNo">109</span> * @param controller used to suspend or terminate the scan. Notice that the {@code controller}<a name="line.109"></a> +<span class="sourceLineNo">110</span> * instance is only valid within the scope of onHeartbeat method. You can only call its<a name="line.110"></a> +<span class="sourceLineNo">111</span> * method in onHeartbeat, do NOT store it and call it later outside onHeartbeat.<a name="line.111"></a> +<span class="sourceLineNo">112</span> */<a name="line.112"></a> +<span class="sourceLineNo">113</span> default void onHeartbeat(ScanController controller) {<a name="line.113"></a> +<span class="sourceLineNo">114</span> }<a name="line.114"></a> <span class="sourceLineNo">115</span><a name="line.115"></a> <span class="sourceLineNo">116</span> /**<a name="line.116"></a> -<span class="sourceLineNo">117</span> * Indicate that the scan operation is completed normally.<a name="line.117"></a> -<span class="sourceLineNo">118</span> */<a name="line.118"></a> -<span class="sourceLineNo">119</span> void onComplete();<a name="line.119"></a> -<span class="sourceLineNo">120</span><a name="line.120"></a> -<span class="sourceLineNo">121</span> /**<a name="line.121"></a> -<span class="sourceLineNo">122</span> * If {@code scan.isScanMetricsEnabled()} returns true, then this method will be called prior to<a name="line.122"></a> -<span class="sourceLineNo">123</span> * all other methods in this interface to give you the {@link ScanMetrics} instance for this scan<a name="line.123"></a> -<span class="sourceLineNo">124</span> * operation. The {@link ScanMetrics} instance will be updated on-the-fly during the scan, you can<a name="line.124"></a> -<span class="sourceLineNo">125</span> * store it somewhere to get the metrics at any time if you want.<a name="line.125"></a> -<span class="sourceLineNo">126</span> */<a name="line.126"></a> -<span class="sourceLineNo">127</span> default void onScanMetricsCreated(ScanMetrics scanMetrics) {<a name="line.127"></a> -<span class="sourceLineNo">128</span> }<a name="line.128"></a> -<span class="sourceLineNo">129</span>}<a name="line.129"></a> +<span class="sourceLineNo">117</span> * Indicate that we hit an unrecoverable error and the scan operation is terminated.<a name="line.117"></a> +<span class="sourceLineNo">118</span> * <p><a name="line.118"></a> +<span class="sourceLineNo">119</span> * We will not call {@link #onComplete()} after calling {@link #onError(Throwable)}.<a name="line.119"></a> +<span class="sourceLineNo">120</span> */<a name="line.120"></a> +<span class="sourceLineNo">121</span> void onError(Throwable error);<a name="line.121"></a> +<span class="sourceLineNo">122</span><a name="line.122"></a> +<span class="sourceLineNo">123</span> /**<a name="line.123"></a> +<span class="sourceLineNo">124</span> * Indicate that the scan operation is completed normally.<a name="line.124"></a> +<span class="sourceLineNo">125</span> */<a name="line.125"></a> +<span class="sourceLineNo">126</span> void onComplete();<a name="line.126"></a> +<span class="sourceLineNo">127</span><a name="line.127"></a> +<span class="sourceLineNo">128</span> /**<a name="line.128"></a> +<span class="sourceLineNo">129</span> * If {@code scan.isScanMetricsEnabled()} returns true, then this method will be called prior to<a name="line.129"></a> +<span class="sourceLineNo">130</span> * all other methods in this interface to give you the {@link ScanMetrics} instance for this scan<a name="line.130"></a> +<span class="sourceLineNo">131</span> * operation. The {@link ScanMetrics} instance will be updated on-the-fly during the scan, you can<a name="line.131"></a> +<span class="sourceLineNo">132</span> * store it somewhere to get the metrics at any time if you want.<a name="line.132"></a> +<span class="sourceLineNo">133</span> */<a name="line.133"></a> +<span class="sourceLineNo">134</span> default void onScanMetricsCreated(ScanMetrics scanMetrics) {<a name="line.134"></a> +<span class="sourceLineNo">135</span> }<a name="line.135"></a> +<span class="sourceLineNo">136</span>}<a name="line.136"></a> http://git-wip-us.apache.org/repos/asf/hbase-site/blob/1ada5f22/book.html ---------------------------------------------------------------------- diff --git a/book.html b/book.html index a7c4041..f9840dd 100644 --- a/book.html +++ b/book.html @@ -14565,7 +14565,26 @@ See <a href="https://issues.apache.org/jira/browse/HBASE-10855">HBASE-10855</a>) </div> </div> <div class="sect3"> -<h4 id="wal.disable"><a class="anchor" href="#wal.disable"></a>69.6.5. Disabling the WAL</h4> +<h4 id="wal.compression"><a class="anchor" href="#wal.compression"></a>69.6.5. WAL Compression</h4> +<div class="paragraph"> +<p>The content of the WAL can be compressed using LRU Dictionary compression. +This can be used to speed up WAL replication to different datanodes. +The dictionary can store up to 2<sup>15</sup> elements; eviction starts after this number is exceeded.</p> +</div> +<div class="paragraph"> +<p>To enable WAL compression, set the <code>hbase.regionserver.wal.enablecompression</code> property to <code>true</code>. +The default value for this property is <code>false</code>. +By default, WAL tag compression is turned on when WAL compression is enabled. +You can turn off WAL tag compression by setting the <code>hbase.regionserver.wal.tags.enablecompression</code> property to 'false'.</p> +</div> +<div class="paragraph"> +<p>A possible downside to WAL compression is that we lose more data from the last block in the WAL if it ill-terminated +mid-write. If entries in this last block were added with new dictionary entries but we failed persist the amended +dictionary because of an abrupt termination, a read of this last block may not be able to resolve last-written entries.</p> +</div> +</div> +<div class="sect3"> +<h4 id="wal.disable"><a class="anchor" href="#wal.disable"></a>69.6.6. Disabling the WAL</h4> <div class="paragraph"> <p>It is possible to disable the WAL, to improve performance in certain specific situations. However, disabling the WAL puts your data at risk. @@ -34988,7 +35007,7 @@ The server will return cellblocks compressed using this same compressor as long <div id="footer"> <div id="footer-text"> Version 3.0.0-SNAPSHOT<br> -Last updated 2017-08-15 14:29:39 UTC +Last updated 2017-08-16 14:29:39 UTC </div> </div> </body> http://git-wip-us.apache.org/repos/asf/hbase-site/blob/1ada5f22/bulk-loads.html ---------------------------------------------------------------------- diff --git a/bulk-loads.html b/bulk-loads.html index 5984eab..494ddc4 100644 --- a/bulk-loads.html +++ b/bulk-loads.html @@ -7,7 +7,7 @@ <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <meta name="Date-Revision-yyyymmdd" content="20170815" /> + <meta name="Date-Revision-yyyymmdd" content="20170816" /> <meta http-equiv="Content-Language" content="en" /> <title>Apache HBase – Bulk Loads in Apache HBase (TM) @@ -311,7 +311,7 @@ under the License. --> <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved. - <li id="publishDate" class="pull-right">Last Published: 2017-08-15</li> + <li id="publishDate" class="pull-right">Last Published: 2017-08-16</li> </p> </div>