[
https://issues.jboss.org/browse/JGRP-1851?page=com.atlassian.jira.plugin....
]
Bela Ban commented on JGRP-1851:
--------------------------------
An unrelated improvement is to have a single resend task which sends beacon messages for
all pending messages, rather than _1 task per pending message_. Also, if we have 5 unacked
*multicast* messages (dest==null), then we could send *1 beacon message rather than 5* !
This would reduce the number of beacon messages to be sent and the number of tasks needed
for those.
RSVP: add option to not block caller
------------------------------------
Key: JGRP-1851
URL:
https://issues.jboss.org/browse/JGRP-1851
Project: JGroups
Issue Type: Feature Request
Reporter: Bela Ban
Assignee: Bela Ban
Priority: Minor
Fix For: 3.6
In RSVP we have a {{resend_interval}} at which empty messages are sent to trigger
retransmission and a {{timeout}} which is the max time a caller will block until all acks
have been received.
In the {{down()}} method, the caller blocks until all acks have been received or a
timeout occured. Then the resend task is stopped and the entry removed from the {{ids}}
map.
In some cases, we may want to not block the caller, so that the calling thread returns
immediately, but nevertheless perform resending until all acks have been received or the
timeout occurred. This is a new property {{block}}.
An example of where this is useful is {{RpcDispatcher.callRemoteMethodsWithFuture()}}:
here, we want the call to return immediately with a future, and then - later - potentially
block on it. However, if we have the RSVP flag set, then sending the message will block in
RSVP until all acks have been received. This breaks the semantics of
{{callRemoteMethodsWithFuture()}}.
Another example is async RPCs (mode={{GET_NONE}}); here we'd block if RSVP is set
even though we shouldn't.
--
This message was sent by Atlassian JIRA
(v6.3.1#6329)