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

Reply via email to