http://git-wip-us.apache.org/repos/asf/hbase-site/blob/86fde03b/apidocs/src-html/org/apache/hadoop/hbase/util/ByteBufferUtils.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/util/ByteBufferUtils.html 
b/apidocs/src-html/org/apache/hadoop/hbase/util/ByteBufferUtils.html
index 3776d0f..77ccd85 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/util/ByteBufferUtils.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/util/ByteBufferUtils.html
@@ -37,7 +37,7 @@
 <span class="sourceLineNo">029</span><a name="line.29"></a>
 <span class="sourceLineNo">030</span>import 
org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.30"></a>
 <span class="sourceLineNo">031</span>import 
org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import 
org.apache.hadoop.hbase.io.ByteBufferSupportOutputStream;<a name="line.32"></a>
+<span class="sourceLineNo">032</span>import 
org.apache.hadoop.hbase.io.ByteBufferWriter;<a name="line.32"></a>
 <span class="sourceLineNo">033</span>import 
org.apache.hadoop.hbase.io.util.StreamUtils;<a name="line.33"></a>
 <span class="sourceLineNo">034</span>import org.apache.hadoop.io.IOUtils;<a 
name="line.34"></a>
 <span class="sourceLineNo">035</span>import 
org.apache.hadoop.io.WritableUtils;<a name="line.35"></a>
@@ -152,8 +152,8 @@
 <span class="sourceLineNo">144</span>     // We have writeInt in 
ByteBufferOutputStream so that it can directly write<a name="line.144"></a>
 <span class="sourceLineNo">145</span>     // int to underlying<a 
name="line.145"></a>
 <span class="sourceLineNo">146</span>     // ByteBuffer in one step.<a 
name="line.146"></a>
-<span class="sourceLineNo">147</span>     if (out instanceof 
ByteBufferSupportOutputStream) {<a name="line.147"></a>
-<span class="sourceLineNo">148</span>       ((ByteBufferSupportOutputStream) 
out).writeInt(value);<a name="line.148"></a>
+<span class="sourceLineNo">147</span>     if (out instanceof ByteBufferWriter) 
{<a name="line.147"></a>
+<span class="sourceLineNo">148</span>       ((ByteBufferWriter) 
out).writeInt(value);<a name="line.148"></a>
 <span class="sourceLineNo">149</span>     } else {<a name="line.149"></a>
 <span class="sourceLineNo">150</span>       StreamUtils.writeInt(out, 
value);<a name="line.150"></a>
 <span class="sourceLineNo">151</span>     }<a name="line.151"></a>
@@ -190,8 +190,8 @@
 <span class="sourceLineNo">182</span>   */<a name="line.182"></a>
 <span class="sourceLineNo">183</span>  public static void 
copyBufferToStream(OutputStream out, ByteBuffer in,<a name="line.183"></a>
 <span class="sourceLineNo">184</span>      int offset, int length) throws 
IOException {<a name="line.184"></a>
-<span class="sourceLineNo">185</span>    if (out instanceof 
ByteBufferSupportOutputStream) {<a name="line.185"></a>
-<span class="sourceLineNo">186</span>      ((ByteBufferSupportOutputStream) 
out).write(in, offset, length);<a name="line.186"></a>
+<span class="sourceLineNo">185</span>    if (out instanceof ByteBufferWriter) 
{<a name="line.185"></a>
+<span class="sourceLineNo">186</span>      ((ByteBufferWriter) out).write(in, 
offset, length);<a name="line.186"></a>
 <span class="sourceLineNo">187</span>    } else if (in.hasArray()) {<a 
name="line.187"></a>
 <span class="sourceLineNo">188</span>      out.write(in.array(), 
in.arrayOffset() + offset, length);<a name="line.188"></a>
 <span class="sourceLineNo">189</span>    } else {<a name="line.189"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/86fde03b/book.html
----------------------------------------------------------------------
diff --git a/book.html b/book.html
index 3062a3f..5854552 100644
--- a/book.html
+++ b/book.html
@@ -20864,26 +20864,32 @@ See <a href="#block.cache">Block Cache</a></p>
 <p>See <a href="#recommended_configurations">Recommended 
Configurations</a>.</p>
 </div>
 <div class="sect2">
-<h3 id="perf.compactions.and.splits"><a class="anchor" 
href="#perf.compactions.and.splits"></a>96.1. Managing Compactions</h3>
+<h3 id="perf.99th.percentile"><a class="anchor" 
href="#perf.99th.percentile"></a>96.1. Improving the 99th Percentile</h3>
+<div class="paragraph">
+<p>Try link:[hedged_reads].</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="perf.compactions.and.splits"><a class="anchor" 
href="#perf.compactions.and.splits"></a>96.2. Managing Compactions</h3>
 <div class="paragraph">
 <p>For larger systems, managing link:[compactions and splits] may be something 
you want to consider.</p>
 </div>
 </div>
 <div class="sect2">
-<h3 id="perf.handlers"><a class="anchor" href="#perf.handlers"></a>96.2. 
<code>hbase.regionserver.handler.count</code></h3>
+<h3 id="perf.handlers"><a class="anchor" href="#perf.handlers"></a>96.3. 
<code>hbase.regionserver.handler.count</code></h3>
 <div class="paragraph">
 <p>See <a 
href="#hbase.regionserver.handler.count">[hbase.regionserver.handler.count]</a>.</p>
 </div>
 </div>
 <div class="sect2">
-<h3 id="perf.hfile.block.cache.size"><a class="anchor" 
href="#perf.hfile.block.cache.size"></a>96.3. 
<code>hfile.block.cache.size</code></h3>
+<h3 id="perf.hfile.block.cache.size"><a class="anchor" 
href="#perf.hfile.block.cache.size"></a>96.4. 
<code>hfile.block.cache.size</code></h3>
 <div class="paragraph">
 <p>See <a href="#hfile.block.cache.size">[hfile.block.cache.size]</a>.
 A memory setting for the RegionServer process.</p>
 </div>
 </div>
 <div class="sect2">
-<h3 id="blockcache.prefetch"><a class="anchor" 
href="#blockcache.prefetch"></a>96.4. Prefetch Option for Blockcache</h3>
+<h3 id="blockcache.prefetch"><a class="anchor" 
href="#blockcache.prefetch"></a>96.5. Prefetch Option for Blockcache</h3>
 <div class="paragraph">
 <p><a href="https://issues.apache.org/jira/browse/HBASE-9857";>HBASE-9857</a> 
adds a new option to prefetch HFile contents when opening the BlockCache, if a 
Column family or RegionServer property is set.
 This option is available for HBase 0.98.3 and later.
@@ -20930,35 +20936,35 @@ or on 
<code>org.apache.hadoop.hbase.io.hfile.HFileReaderV2</code> in earlier ver
 </div>
 </div>
 <div class="sect2">
-<h3 id="perf.rs.memstore.size"><a class="anchor" 
href="#perf.rs.memstore.size"></a>96.5. 
<code>hbase.regionserver.global.memstore.size</code></h3>
+<h3 id="perf.rs.memstore.size"><a class="anchor" 
href="#perf.rs.memstore.size"></a>96.6. 
<code>hbase.regionserver.global.memstore.size</code></h3>
 <div class="paragraph">
 <p>See <a 
href="#hbase.regionserver.global.memstore.size">[hbase.regionserver.global.memstore.size]</a>.
 This memory setting is often adjusted for the RegionServer process depending 
on needs.</p>
 </div>
 </div>
 <div class="sect2">
-<h3 id="perf.rs.memstore.size.lower.limit"><a class="anchor" 
href="#perf.rs.memstore.size.lower.limit"></a>96.6. 
<code>hbase.regionserver.global.memstore.size.lower.limit</code></h3>
+<h3 id="perf.rs.memstore.size.lower.limit"><a class="anchor" 
href="#perf.rs.memstore.size.lower.limit"></a>96.7. 
<code>hbase.regionserver.global.memstore.size.lower.limit</code></h3>
 <div class="paragraph">
 <p>See <a 
href="#hbase.regionserver.global.memstore.size.lower.limit">[hbase.regionserver.global.memstore.size.lower.limit]</a>.
 This memory setting is often adjusted for the RegionServer process depending 
on needs.</p>
 </div>
 </div>
 <div class="sect2">
-<h3 id="perf.hstore.blockingstorefiles"><a class="anchor" 
href="#perf.hstore.blockingstorefiles"></a>96.7. 
<code>hbase.hstore.blockingStoreFiles</code></h3>
+<h3 id="perf.hstore.blockingstorefiles"><a class="anchor" 
href="#perf.hstore.blockingstorefiles"></a>96.8. 
<code>hbase.hstore.blockingStoreFiles</code></h3>
 <div class="paragraph">
 <p>See <a 
href="#hbase.hstore.blockingStoreFiles">[hbase.hstore.blockingStoreFiles]</a>.
 If there is blocking in the RegionServer logs, increasing this can help.</p>
 </div>
 </div>
 <div class="sect2">
-<h3 id="perf.hregion.memstore.block.multiplier"><a class="anchor" 
href="#perf.hregion.memstore.block.multiplier"></a>96.8. 
<code>hbase.hregion.memstore.block.multiplier</code></h3>
+<h3 id="perf.hregion.memstore.block.multiplier"><a class="anchor" 
href="#perf.hregion.memstore.block.multiplier"></a>96.9. 
<code>hbase.hregion.memstore.block.multiplier</code></h3>
 <div class="paragraph">
 <p>See <a 
href="#hbase.hregion.memstore.block.multiplier">[hbase.hregion.memstore.block.multiplier]</a>.
 If there is enough RAM, increasing this can help.</p>
 </div>
 </div>
 <div class="sect2">
-<h3 id="hbase.regionserver.checksum.verify.performance"><a class="anchor" 
href="#hbase.regionserver.checksum.verify.performance"></a>96.9. 
<code>hbase.regionserver.checksum.verify</code></h3>
+<h3 id="hbase.regionserver.checksum.verify.performance"><a class="anchor" 
href="#hbase.regionserver.checksum.verify.performance"></a>96.10. 
<code>hbase.regionserver.checksum.verify</code></h3>
 <div class="paragraph">
 <p>Have HBase write the checksum into the datablock and save having to do the 
checksum seek whenever you read.</p>
 </div>
@@ -20967,7 +20973,7 @@ If there is enough RAM, increasing this can help.</p>
 </div>
 </div>
 <div class="sect2">
-<h3 id="_tuning_code_callqueue_code_options"><a class="anchor" 
href="#_tuning_code_callqueue_code_options"></a>96.10. Tuning 
<code>callQueue</code> Options</h3>
+<h3 id="_tuning_code_callqueue_code_options"><a class="anchor" 
href="#_tuning_code_callqueue_code_options"></a>96.11. Tuning 
<code>callQueue</code> Options</h3>
 <div class="paragraph">
 <p><a href="https://issues.apache.org/jira/browse/HBASE-11355";>HBASE-11355</a> 
introduces several callQueue tuning mechanisms which can increase performance.
 See the JIRA for some benchmarking information.</p>
@@ -21627,16 +21633,45 @@ See the <em>Development Process</em> section of the 
document <a href="https://is
 </div>
 </div>
 <div class="sect2">
-<h3 id="_hedged_reads"><a class="anchor" href="#_hedged_reads"></a>101.10. 
Hedged Reads</h3>
+<h3 id="hedged.reads"><a class="anchor" href="#hedged.reads"></a>101.10. 
Hedged Reads</h3>
 <div class="paragraph">
-<p>Hedged reads are a feature of HDFS, introduced in <a 
href="https://issues.apache.org/jira/browse/HDFS-5776";>HDFS-5776</a>.
+<p>Hedged reads are a feature of HDFS, introduced in Hadoop 2.4.0 with <a 
href="https://issues.apache.org/jira/browse/HDFS-5776";>HDFS-5776</a>.
 Normally, a single thread is spawned for each read request.
-However, if hedged reads are enabled, the client waits some configurable 
amount of time, and if the read does not return, the client spawns a second 
read request, against a different block replica of the same data.
-Whichever read returns first is used, and the other read request is discarded.
-Hedged reads can be helpful for times where a rare slow read is caused by a 
transient error such as a failing disk or flaky network connection.</p>
+However, if hedged reads are enabled, the client waits some
+configurable amount of time, and if the read does not return,
+the client spawns a second read request, against a different
+block replica of the same data. Whichever read returns first is
+used, and the other read request is discarded.</p>
+</div>
+<div class="paragraph">
+<p>Hedged reads are "&#8230;&#8203;very good at eliminating outlier datanodes, 
which
+in turn makes them very good choice for latency sensitive setups.
+But, if you are looking for maximizing throughput, hedged reads tend to
+create load amplification as things get slower in general. In short,
+the thing to watch out for is the non-graceful performance degradation
+when you are running close a certain throughput threshold." (Quote from Ashu 
Pachauri in HBASE-17083).</p>
+</div>
+<div class="paragraph">
+<p>Other concerns to keep in mind while running with hedged reads enabled
+include:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>They may lead to network congestion. See <a 
href="https://issues.apache.org/jira/browse/HBASE-17083";>HBASE-17083</a></p>
+</li>
+<li>
+<p>Make sure you set the thread pool large enough so as blocking on the pool 
does not become a bottleneck (Again see <a 
href="https://issues.apache.org/jira/browse/HBASE-17083";>HBASE-17083</a>)</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>(From Yu Li up in HBASE-17083)</p>
 </div>
 <div class="paragraph">
-<p>Because an HBase RegionServer is a HDFS client, you can enable hedged reads 
in HBase, by adding the following properties to the RegionServer&#8217;s 
hbase-site.xml and tuning the values to suit your environment.</p>
+<p>Because an HBase RegionServer is a HDFS client, you can enable hedged
+reads in HBase, by adding the following properties to the RegionServer&#8217;s
+hbase-site.xml and tuning the values to suit your environment.</p>
 </div>
 <div class="ulist">
 <div class="title">Configuration for Hedged Reads</div>
@@ -30271,9 +30306,11 @@ Starting the mini-cluster takes about 20-30 seconds, 
but that should be appropri
 </div>
 </div>
 <h1 id="protobuf" class="sect0"><a class="anchor" 
href="#protobuf"></a>Protobuf in HBase</h1>
-<div class="openblock partintro">
-<div class="content">
-HBase uses Google&#8217;s <a href="http://protobuf.protobufs";>protobufs</a> 
wherever
+<div class="sect1">
+<h2 id="_protobuf"><a class="anchor" href="#_protobuf"></a>156. Protobuf</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>HBase uses Google&#8217;s <a href="http://protobuf.protobufs";>protobufs</a> 
wherever
 it persists metadata&#8201;&#8212;&#8201;in the tail of hfiles or Cells 
written by
 HBase into the system hbase;meta table or when HBase writes znodes
 to zookeeper, etc.&#8201;&#8212;&#8201;and when it passes objects over the 
wire making
@@ -30281,15 +30318,13 @@ to zookeeper, etc.&#8201;&#8212;&#8201;and when it 
passes objects over the wire
 Interfaces (Services) we expose to clients, for example the <code>Admin</code> 
and <code>Client</code>
 Interfaces that the RegionServer fields,
 or specifying the arbitrary extensions added by developers via our
-<a href="#cp">Coprocessor Endpoint</a> mechanism.
-In this chapter we go into detail for  developers who are looking to
-understand better how it all works. This chapter is of particular
-use to those who would amend or extend HBase functionality.
+<a href="#cp">Coprocessor Endpoint</a> mechanism.</p>
 </div>
+<div class="paragraph">
+<p>In this chapter we go into detail for  developers who are looking to
+understand better how it all works. This chapter is of particular
+use to those who would amend or extend HBase functionality.</p>
 </div>
-<div class="sect1">
-<h2 id="_protobuf"><a class="anchor" href="#_protobuf"></a>156. Protobuf</h2>
-<div class="sectionbody">
 <div class="paragraph">
 <p>With protobuf, you describe serializations and services in a 
<code>.protos</code> file.
 You then feed these descriptors to a protobuf tool, the <code>protoc</code> 
binary,

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/86fde03b/bulk-loads.html
----------------------------------------------------------------------
diff --git a/bulk-loads.html b/bulk-loads.html
index 11ac63a..5d0e7dc 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="20161114" />
+    <meta name="Date-Revision-yyyymmdd" content="20161115" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Bulk Loads in Apache HBase (TM)
@@ -191,6 +191,18 @@
 </li>
                   
                       <li class="dropdown-submenu">
+                                      <a href=""  title="1.2 
Documentation">1.2 Documentation</a>
+              <ul class="dropdown-menu">
+                                  <li>      <a href="1.2/apidocs/index.html"  
target="_blank" title="API">API</a>
+</li>
+                                  <li>      <a href="1.2/xref/index.html"  
target="_blank" title="X-Ref">X-Ref</a>
+</li>
+                                  <li>      <a href="1.2/book.html"  
target="_blank" title="Ref Guide (single-page)">Ref Guide (single-page)</a>
+</li>
+                              </ul>
+            </li>
+
+                      <li class="dropdown-submenu">
                                       <a href=""  title="1.1 
Documentation">1.1 Documentation</a>
               <ul class="dropdown-menu">
                                   <li>      <a href="1.1/apidocs/index.html"  
target="_blank" title="API">API</a>
@@ -317,7 +329,7 @@ under the License. -->
                         <a href="http://www.apache.org/";>The Apache Software 
Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 
2016-11-14</li>
+                  <li id="publishDate" class="pull-right">Last Published: 
2016-11-15</li>
             </p>
                 </div>
 

Reply via email to