[
https://issues.apache.org/jira/browse/HBASE-13142?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14351127#comment-14351127
]
Hudson commented on HBASE-13142:
--------------------------------
FAILURE: Integrated in HBase-1.1 #255 (See
[https://builds.apache.org/job/HBase-1.1/255/])
HBASE-13142 [PERF] Reuse the IPCUtil#buildCellBlock buffer (stack: rev
3e3276d7fa2d20815c35b72b386efb5796db7939)
*
hbase-server/src/test/java/org/apache/hadoop/hbase/io/TestByteBufferOutputStream.java
*
hbase-common/src/main/java/org/apache/hadoop/hbase/io/ByteBufferOutputStream.java
*
hbase-common/src/test/java/org/apache/hadoop/hbase/io/TestBoundedByteBufferPool.java
* hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/IPCUtil.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java
*
hbase-common/src/main/java/org/apache/hadoop/hbase/io/BoundedByteBufferPool.java
> [PERF] Reuse the IPCUtil#buildCellBlock buffer
> ----------------------------------------------
>
> Key: HBASE-13142
> URL: https://issues.apache.org/jira/browse/HBASE-13142
> Project: HBase
> Issue Type: Improvement
> Components: Performance
> Reporter: stack
> Assignee: stack
> Labels: beginner
> Fix For: 2.0.0, 1.1.0
>
> Attachments: 13142.txt, 13142v2.txt, 13142v3.txt, 13142v5.txt,
> 13142v5.txt, buffers.svg, clean.svg, gc.png, gc_time_spent.png, hits.png,
> net.png, traces.2.svg, traces.svg
>
>
> Running some scan profiling, flight recorder was mildly fingering resize of
> the buffer allocated in IPCUtil#buildCellBlock as a point of contention. It
> was half-hearted blaming it for a few hundreds of ms over a five minute
> sampling with a few tens of instances showing.
> I tried then w/ flamegraph/lightweight profiler and this reported the buffer
> allocations taking 22% of our total CPU. See attachment trace.svg.
> I enabled TRACE-level logging on org.apache.hadoop.hbase.ipc.IPCUtil and
> indeed every allocation was doing a resize from initial allocation of 16k --
> the default up to 220k (this test returns ten randomly sized rows zipfian
> sized between 0 and 8k).
> Upping the allocation to 220k meant we now avoided the resize but the initial
> allocation was now blamed for 10% of allocations (see trace.2.svg attached).
> Lets do buffer reuse. Will save a bunch of allocation and CPU.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)