Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-17274

Startup of large numbers of servers slowed by linear lookup in IgniteServiceProcessor

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 2.13
    • 2.14
    • managed services
    • None
    • Improved service name lookup performance and reduced service startup time
    • Release Notes Required

    Description

      Using a small POC, spinning up many servers is slow.  In addition, the startup time appears to be exponential.

      Using timing measurements, found a linear lookup inside the IgniteServiceProcessor that is taking most of the time.

      Replacing that linear lookup with a Map lookup, and maintaining the map, significantly speeds up the process, and startup time is now linear with the number of services started.

      Note this was tested with 20K and 50K services on a 1-node ignite cluster.  Timings against the stock 2.13.0 code come in at 30s for 20K and 250s for 50K services.  Modifying the linear lookup to use a Map, the timing come in at 8s for 20K and 14s for 50K services.

       

      Attachments

        Issue Links

          Activity

            People

              artnaseef Arthur Naseef
              artnaseef Arthur Naseef
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 2h
                  2h