Uploaded image for project: 'JGroups'
  1. JGroups
  2. JGRP-1851

RSVP: add option to not block caller



    • Feature Request
    • Resolution: Done
    • Minor
    • 3.6
    • None
    • None


      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.



          Public project attachment banner

            context keys: [headless, issue, helper, isAsynchronousRequest, project, action, user]
            current Project key: JGRP


              rhn-engineering-bban Bela Ban
              rhn-engineering-bban Bela Ban
              0 Vote for this issue
              1 Start watching this issue