[
https://issues.jboss.org/browse/ISPN-7802?page=com.atlassian.jira.plugin....
]
Radim Vansa updated ISPN-7802:
------------------------------
Description:
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.
was:
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
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
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.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)