[
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)