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

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

+1.
Some minor comments. Can fix on commit
bq.ByteBuffer possiblePBBuf = (cellBlockSize > 0) ? 
cellBlock.get(cellBlock.size() - 1) : null;
Ya some comments above this line what we are trying to do/optimize here. This 
is irrsepective of the BBPool. We made the cellblock any way and of there is 
space left in the buffer of that, make use of that rather than creating a temp 
one.

bq.possiblePBBuf.remaining() + totalPBSize <= possiblePBBuf.capacity()
Better to do possiblePBBuf.limit() + totalPBSize <= possiblePBBuf.capacity(). 
No issue for above also as the pos will be always zero. But this will be better 
in generic way. Even down we do the similar only
 bq. pbBuf.limit(totalPBSize + limit);

{quote}
if (possiblePBBuf != null) {
542             // Only if the last buffer has enough space for header use it. 
Else allocate
543             // a new buffer. Assume they are all flipped
544             if (possiblePBBuf.remaining() + totalPBSize <= 
possiblePBBuf.capacity()) {
{quote}
Can we have both checks in single if? Wont be looking so complex also. Then u 
can avoid this duplicated else blocks
{quote}
} else {
560               return createHeaderAndMessageBytes(result, header, totalSize, 
totalPBSize);
561             }
562           } else {
563             return createHeaderAndMessageBytes(result, header, totalSize, 
totalPBSize);
564           }
{quote}

> Use ByteBufferPool for the header and message during Rpc response
> -----------------------------------------------------------------
>
>                 Key: HBASE-16783
>                 URL: https://issues.apache.org/jira/browse/HBASE-16783
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: ramkrishna.s.vasudevan
>            Assignee: ramkrishna.s.vasudevan
>            Priority: Minor
>         Attachments: HBASE-16783.patch, HBASE-16783_1.patch, 
> HBASE-16783_2.patch, HBASE-16783_3.patch, HBASE-16783_4.patch, 
> HBASE-16783_5.patch, HBASE-16783_6.patch
>
>
> With ByteBufferPool in place we could avoid the byte[] creation in 
> RpcServer#createHeaderAndMessageBytes and try using the Buffer from the pool 
> rather than creating byte[] every time.



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

Reply via email to