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

Avoid qdr_error_t allocation if not necessary

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 1.7.0
    • 1.8.0
    • Routing Engine
    • None

    Description

      qdr_error_from_pn on error.c is allocating qdr_error_t on the hot path ie AMQP_disposition_handler: saving those allocations would reduce CPU usage (and cache misses) on both core and worker threads, making the router able to scale better while under load.
      Initial tests has shown some improvements under load (ie with core CPU thread ~97% with the new version and ~99% with master):

      12 pairs master (no lock-free queues, no qdr_error_t fix): 285 K msg/sec
      12 pairs master (no lock-free queues, yes qdr_error_t fix): 402 K msg/sec
      12 pairs lock-free q (no qdr_error_t fix): 311 K msg/sec
      12 pairs lock-free q (yes qdr_error_t fix): 510 K msg/sec

      Attachments

        Issue Links

          Activity

            People

              gmurthy Ganesh Murthy
              nigro.fra@gmail.com Francesco Nigro
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: