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

TP: sending a message to a non-existent physical address takes too much time

    XMLWordPrintable

Details

    • Enhancement
    • Resolution: Done
    • Major
    • 3.5
    • None
    • None

    Description

      When sending a message in the transport, e.g. a message batch, and one or more destinations have no physical addresses in logical_addr_cache, then we loop physical_addr_max_fetch_attempts (default: 3) times and also sleep a random number of ms (in range [1..500]).
      This delays the sending of other messages in the same batch, or of other messages in general. Also, if TransferQueueBundler is used, the transfer queue might get filled, so other sender threads are blocked.
      SOLUTION:

      • Remove the loop when sending a message: if the physical address for a message is not found, simply send a discovery request and drop the message
      • The discovery request needs to be sent on a separate thread, as calling up(Event) directly could also delay the sending of the message or message batch.
      • JGRP-1814 will also help, as connections to left members are closed, and therefore not finding a physical address for a destination should be rare

      Attachments

        Issue Links

          Activity

            People

              rhn-engineering-bban Bela Ban
              rhn-engineering-bban Bela Ban
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: