]
Dan Berindei updated ISPN-7802:
-------------------------------
Status: Resolved (was: Pull Request Sent)
Fix Version/s: 9.1.0.Final
9.1.0.Alpha1
Resolution: Done
Use chunked reads/writes in TcpTransport
----------------------------------------
Key: ISPN-7802
URL:
https://issues.jboss.org/browse/ISPN-7802
Project: Infinispan
Issue Type: Bug
Components: Remote Protocols
Affects Versions: 9.0.0.Final
Reporter: Radim Vansa
Assignee: Tristan Tarrant
Fix For: 9.1.0.Final, 9.1.0.Alpha1
The buffering implementation of {{TcpTransport.socketInputStream}} needs to use fixed
size input buffer, rather than growing as {{BufferedInputStream}} does. Growing buffer can
lead to excessive memory consumption on heap, and more importantly, by direct memory
allocated in JDK classes and pooled in thread-local caches.
EDIT: As Tristan pointed out, the {{BufferedInputStream}} does not grow in our use case,
but if {{TcpTransport}} passes a big {{byte[]}} buffer, the implementation works as read
through/write through. Therefore we need to chunk all calls.