[infinispan-issues] [JBoss JIRA] (ISPN-6494) Investigate bundler performance

Dan Berindei (Jira) issues at jboss.org
Mon Oct 22 09:05:06 EDT 2018


    [ https://issues.jboss.org/browse/ISPN-6494?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13651126#comment-13651126 ] 

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)


More information about the infinispan-issues mailing list