[
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)