Uploaded image for project: 'Qpid Dispatch'
  1. Qpid Dispatch
  2. DISPATCH-522

Performance: Defer activation and driver-awakening

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 0.7.0
    • Router Node
    • None

    Description

      The router-core thread processes batches of actions (the size of the action list) when it begins its main loop. When there is a large volume of traffic, these batches can be quite large (over 1000 actions has been observed). It is likely that the large batches are settlement or disposition updates of ranges of deliveries which Proton serializes into individual events.

      Each settlement action results in a connection activation. This means that for large batches, the same connection may be activated hundreds of times during the processing of a single batch of actions.

      This improvement makes two significant changes:

      • It defers the activations until after the processing of a batch, such that each affected connection is only activated once.
      • It holds off the awakening of the driver's poll loop until it has activated all of the connections.

      This will result in far fewer calls into the driver by the core thread during times of high traffic volume.

      Attachments

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            tross Ted Ross
            tross Ted Ross
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment