[jboss-jira] [JBoss JIRA] (JGRP-2172) Non-blocking flow control
Bela Ban (JIRA)
issues at jboss.org
Mon Jun 19 01:59:00 EDT 2017
[ https://issues.jboss.org/browse/JGRP-2172?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13422715#comment-13422715 ]
Bela Ban commented on JGRP-2172:
--------------------------------
[~rvansa] If you look at my previous comment, are you suggesting the behavior I described is *not* suitable? IMO it is; the causality between P1 and P2 is only given if P1 is blocking and P2 is only sent once P1 returns. In this case, we'll never deliver P2 before P1. Otherwise, there is no causality and then it doesn't matter in which order P1 and P2 are delivered.
Do you have an example which shows unwanted behavior?
> Non-blocking flow control
> -------------------------
>
> Key: JGRP-2172
> URL: https://issues.jboss.org/browse/JGRP-2172
> Project: JGroups
> Issue Type: Feature Request
> Reporter: Bela Ban
> Assignee: Bela Ban
> Fix For: 4.0.4
>
>
> Sending a message through FlowControl (UFC, MFC) should not block if {{Message.Flag.NB_FC}} (non-blocking flow control) is set.
> Instead, the message should be added to a queue (bounded if {{max_size}} > 0, else unbounded). The max queue size is given in bytes, so we can estimate what the memory penalty for reaching that size would be (if bounded).
> The queued messages are sent when credits arrive. TBD: when credits arrive, should blocked threads or queued messages be released first?
> Non-blocking flow control can be used by both external and internal threads.
> If the queue is unbounded, then it is the responsibility of the application (e.g. Infinispan) to make sure the queue doesn't grow to an untenable size.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
More information about the jboss-jira
mailing list