[
https://jira.jboss.org/browse/JGRP-1223?page=com.atlassian.jira.plugin.sy...
]
Vladimir Blagojevic commented on JGRP-1223:
-------------------------------------------
Wow, interesting catch!!! I would have never guessed that FilterOutputStream does that.
Did you notice a significant change in performance with your patch?
STREAMING_STATE_TRANSFER abysmally slow
---------------------------------------
Key: JGRP-1223
URL:
https://jira.jboss.org/browse/JGRP-1223
Project: JGroups
Issue Type: Bug
Affects Versions: 2.8
Environment: Windows XP
Reporter: Kornelius Elstner
Assignee: Vladimir Blagojevic
Fix For: 2.6.16, 2.10
Attachments: JGRP-1223.zip
With a relatively large shared state (anything in excess of a few MBytes)
STREAMING_STATE_TRANSFER is very slow, it can take minutes for the state transfer to
complete. The underlying issue is that
STREAMING_STATE_TRANSFER.StreamingOutputStreamWrapper subclasses
java.io.FilterOutputStream which always calls write(int b), even if buffers are to be
written to the underlying socket.
As a consequence each byte to be transferred results in a call to write() to the
underlying socket.
The fix is simple, the byte array variants of StreamingOutputStreamWrapper.write() should
delegate to the wrapped socket directly.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira