You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Anoop Sam John (JIRA)" <ji...@apache.org> on 2016/02/04 04:00:44 UTC

[jira] [Comment Edited] (HBASE-15177) Reduce garbage created under high load

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

Anoop Sam John edited comment on HBASE-15177 at 2/4/16 2:59 AM:
----------------------------------------------------------------

{code}
 bbos = new ByteBufferOutputStream(cellBlock.remaining() *
211	          this.cellBlockDecompressionMultiplier);
212	        IOUtils.copy(cis, bbos);
213	        bbos.close();
{code}
After this line, we will be creating an IS from the BB we obtain from ByteBufferOutputStream.  I dont see you changed BAIS to BBIS there. We can be consistent here as well?
Sorry missed this in last review.
Can fix on commit.  +1


was (Author: anoop.hbase):
{code}
 bbos = new ByteBufferOutputStream(cellBlock.remaining() *
211	          this.cellBlockDecompressionMultiplier);
212	        IOUtils.copy(cis, bbos);
213	        bbos.close();
{code}
After this line, we will be creating an IS from the BB we obtain from ByteBufferOutputStream.  I dont see you changed BAIS to BBIS there. We can be consistent here as well?
Sorry missed this in last review.

> 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, hbase-15177_v4.patch, hbase-15177_v4.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)