[ https://issues.apache.org/jira/browse/HBASE-15525?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15215009#comment-15215009 ]
stack commented on HBASE-15525: ------------------------------- So, just to note, on read side, we are already reading in 'chunks'. If you look at RpcServer, when we read in the request, we are currently reading into an onheap BB -- until HBASE-14490 [RpcServer] reuse request read buffer goes in at least -- that is allocated just to hold the response. We fill this BB by reading off the socket channel in chunks of NIO_BUFFER_LIMIT (64kb). Seems like we could plug in an MBB here that referenced fixed-size BBs gotten from a pool as you are doing here -- so both read and write-side. > OutOfMemory could occur when using BoundedByteBufferPool during RPC bursts > -------------------------------------------------------------------------- > > Key: HBASE-15525 > URL: https://issues.apache.org/jira/browse/HBASE-15525 > Project: HBase > Issue Type: Bug > Components: IPC/RPC > Reporter: deepankar > Assignee: Anoop Sam John > Priority: Critical > Attachments: WIP.patch > > > After HBASE-13819 the system some times run out of direct memory whenever > there is some network congestion or some client side issues. > This was because of pending RPCs in the RPCServer$Connection.responseQueue > and since all the responses in this queue hold a buffer for cellblock from > BoundedByteBufferPool this could takeup a lot of memory if the > BoundedByteBufferPool's moving average settles down towards a higher value > See the discussion here > [HBASE-13819-comment|https://issues.apache.org/jira/browse/HBASE-13819?focusedCommentId=15207822&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-15207822] -- This message was sent by Atlassian JIRA (v6.3.4#6332)