[ https://issues.apache.org/jira/browse/IGNITE-17274?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17560616#comment-17560616 ]
Arthur Naseef commented on IGNITE-17274: ---------------------------------------- The patch adds a new Map to track services by name, in addition to the original map that tracks the services by service-id. Changes to the original map (get/put/...) updated to also update the new map. Lookup by name now uses the map instead of a linear search of the original map's value set. > Startup of large numbers of servers slowed by linear lookup in > IgniteServiceProcessor > ------------------------------------------------------------------------------------- > > Key: IGNITE-17274 > URL: https://issues.apache.org/jira/browse/IGNITE-17274 > Project: Ignite > Issue Type: Improvement > Affects Versions: 2.13 > Reporter: Arthur Naseef > Priority: Major > Time Spent: 10m > Remaining Estimate: 0h > > 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. > -- This message was sent by Atlassian Jira (v8.20.10#820010)