[ 
https://issues.apache.org/jira/browse/GEODE-8506?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated GEODE-8506:
----------------------------------
    Labels: pull-request-available  (was: )

> BufferPool returns byte buffers that may be much larger than requested
> ----------------------------------------------------------------------
>
>                 Key: GEODE-8506
>                 URL: https://issues.apache.org/jira/browse/GEODE-8506
>             Project: Geode
>          Issue Type: Improvement
>          Components: membership
>            Reporter: Bruce J Schuchardt
>            Assignee: Bruce J Schuchardt
>            Priority: Major
>              Labels: pull-request-available
>
> BufferPool manages several pools of direct-memory ByteBuffers.  When asked 
> for a ByteBuffer of size X you may receive a buffer that is any size greater 
> than or equal to X.  For users of this pool this is unexpected behavior and 
> is causing some trouble.
> MessageStreamer, for instance, performs message "chunking" based on the size 
> of a socket's buffer size.  It requests a byte buffer of that size and then 
> fills it over and over again with message chunks to be written to the socket. 
>  But it does this based on the buffer's capacity, which may be much larger 
> than the expected buffer size.  This results in incorrect chunking and 
> requires larger buffers in the receiver of these message chunks.
> BufferPool should always return a buffer that has exactly the requested 
> capacity.  It could be a _slice_ of a pooled buffer, for instance.  That 
> would let it hand out a larger buffer while not confusing the code that 
> requested the buffer.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to