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

RSVP: add option to not block caller

    Details

    • Type: Feature Request
    • Status: Resolved (View Workflow)
    • Priority: Minor
    • Resolution: Done
    • Affects Version/s: None
    • Fix Version/s: 3.6
    • Labels:
      None

      Description

      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.

        Gliffy Diagrams

          Attachments

            Activity

              People

              • Assignee:
                belaban Bela Ban
                Reporter:
                belaban Bela Ban
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: