[
https://issues.jboss.org/browse/ISPN-6494?page=com.atlassian.jira.plugin....
]
Dan Berindei commented on ISPN-6494:
------------------------------------
I have started working on a new bundler implementation tentatively named
{{BlockingBundler}}, with the goal of blocking the application threads whenever the
bundler thread can't keep up as a form of back-pressure.
In the initial implementation, the message serialization can be performed either by the
bundler thread, if the throughput is low, or by an application thread, if the bundler
thread is falling behind. This means serialization is still performed in one go, while
other application threads are blocked, so I would like to serialize messages when an
application thread adds them instead. But because the format of a message by itself and in
a bundle differs, this change would require us to send single messages as 1-message
bundles, which is a bit expensive without some optimizations on the receive side.
In a future iteration I would also like to set a limit on how much an application thread
can be blocked in the bundler, and discard the message when that happens. I need to
investigate how that would interact with {{TCP_NIO2}}, which also seems to drop messages
when the channel is not writable. [~belaban] do you have any plans to implement some sort
of back-pressure/blocking in {{TCP_NIO2}} for 5.0, so that the bundler doesn't
serialize bundles if they're going to be discarded by {{TCP_NIO2}}?
Investigate bundler performance
-------------------------------
Key: ISPN-6494
URL:
https://issues.jboss.org/browse/ISPN-6494
Project: Infinispan
Issue Type: Task
Components: Core
Affects Versions: 9.0.0.Alpha1
Reporter: Dan Berindei
Assignee: Dan Berindei
Priority: Major
For ISPN-6027 we changed the default JGroups bundler to {{sender-sends-with-timer}},
because it was faster in some of the performance tests. However, IspnPerfTest shows
{{transfer-queue-bundler}} to be consistently better, so we need to investigate the
bundler choice again.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)