hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Anoop Sam John (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-15177) Reduce garbage created under high load
Date Wed, 03 Feb 2016 08:12:39 GMT

    [ https://issues.apache.org/jira/browse/HBASE-15177?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15129996#comment-15129996
] 

Anoop Sam John commented on HBASE-15177:
----------------------------------------

Looks good.
Minor comments
{code}
buf.position(offset);
1852	          cellScanner = ipcUtil.createCellScanner(this.codec, this.compressionCodec,
1853	            buf, offset, buf.limit());
{code}
We are positioning the buf at begin of the CellBlock and also we dont use this offset and
length, passed to IPCUtil.. Can avoid passing those params? Can say in the IPCUtil method
javadoc that the BB passed to be set with proper pos and limit. Responsibility of the caller.

ByteBufferInputStream -> Use the ByteBufferUtils APIs for the reads here?  May get better
perf because of Unsafe based access.

> Reduce garbage created under high load
> --------------------------------------
>
>                 Key: HBASE-15177
>                 URL: https://issues.apache.org/jira/browse/HBASE-15177
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Enis Soztutar
>            Assignee: Enis Soztutar
>             Fix For: 2.0.0, 1.3.0
>
>         Attachments: Screen Shot 2016-01-26 at 10.03.48 PM.png, Screen Shot 2016-01-26
at 10.03.56 PM.png, Screen Shot 2016-01-26 at 10.06.16 PM.png, Screen Shot 2016-01-26 at 10.15.15
PM.png, hbase-15177_v0.patch, hbase-15177_v1.patch, hbase-15177_v2.patch, hbase-15177_v3.patch
>
>
> I have been doing some profiling of the garbage being created. The idea was to follow
up on HBASE-14490 and experiment with offheap IPC byte buffers and byte buffer re-use. However,
without changing the IPC byte buffers for now, there are a couple of (easy) improvements that
I've identified from profiling: 
> 1. RPCServer.Connection.processRequest() should work with ByteBuffer instead of byte[]
and not-recreate CodedInputStream a few times. 
> 2. RSRpcServices.getRegion() allocates two byte arrays for region, while only 1 is needed.
> 3. AnnotationReadingPriorityFunction is very expensive in allocations. Mainly it allocates
the regionName byte[] to get the table name. We already set the priority for most of the operations
(multi, get, increment, etc) but we are only reading the priority in case of multi. We should
use the priority from the client side. 
> Lets do the simple improvements in this patch, we can get to IPC buffer re-use in HBASE-14490.




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message