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

TCP: remove send queues

    XMLWordPrintable

Details

    • Task
    • Status: Resolved (View Workflow)
    • Major
    • Resolution: Done
    • None
    • 4.0
    • None

    Description

      When TCP.use_send_queues is enabled, sending a message puts it in a queue from which a sender thread dequeues it and sends it.
      This was a bad idea from the start, because

      • We create 1 additional (sender) thread per peer. That's 999 threads per member if we have a cluster of 1000. Besides, more threads leads to increased context switching
      • The queue only tapers over blocking on a TCP write, as it will fill up if the TCP write blocks. So the problem of a bloking write is only moved to a different part of the system, not eliminated.
      • We have to make a copy of every buffer to be sent as buffers are reused -> unneeded memory allocation

      Attachments

        Activity

          People

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

            Dates

              Created:
              Updated:
              Resolved: