[ https://issues.apache.org/jira/browse/HBASE-14490?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14950155#comment-14950155 ]
Anoop Sam John commented on HBASE-14490: ---------------------------------------- We keep on adding to the reqTotalSize. Possible overflow? Do we really need this? If we do to this extend and handle both smaller sized reqs and larger sized (write req) we better use a BufferPool? We already have it and using it while sending back response. So the older version for reusing smaller sized BB is better? Any test result numbers? I know u consider the read reqs > [RpcServer] reuse request read buffer > ------------------------------------- > > Key: HBASE-14490 > URL: https://issues.apache.org/jira/browse/HBASE-14490 > Project: HBase > Issue Type: Improvement > Components: IPC/RPC > Affects Versions: 2.0.0, 1.0.2 > Reporter: Zephyr Guo > Assignee: Zephyr Guo > Labels: performance > Fix For: 2.0.0, 1.0.2 > > Attachments: ByteBufferPool.java, HBASE-14490-v1.patch, > HBASE-14490-v10.patch, HBASE-14490-v11.patch, HBASE-14490-v2.patch, > HBASE-14490-v3.patch, HBASE-14490-v4.patch, HBASE-14490-v5.patch, > HBASE-14490-v6.patch, HBASE-14490-v7.patch, HBASE-14490-v8.patch, > HBASE-14490-v9.patch > > > Reuse buffer to read request.It's not necessary to every request free > buffer.The idea of optimization is to reduce the times that allocate > ByteBuffer. > *Modification* > 1. {{saslReadAndProcess}} ,{{processOneRpc}}, {{processUnwrappedData}}, > {{processConnectionHeader}} accept a ByteBuffer instead of byte[].They can > move {{ByteBuffer.position}} correctly when we have read the data. > 2. {{processUnwrappedData}} no longer use any extra memory. > 3. Maintaining a reused ByteBuffer in each {{Connection}}. > a) Size is dynamic to fit specific client. > b) If size deviate far from average size, we replace a new one. > c) Using a SoftReference to reference the buffer. -- This message was sent by Atlassian JIRA (v6.3.4#6332)