[ 
https://issues.apache.org/jira/browse/SOLR-12723?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrzej Bialecki  updated SOLR-12723:
-------------------------------------
    Description: 
When the default {{CompositeIdRouter}} is used it calls 
{{HashBasedRouter.hashToSlice}} method for every update, which obtains a 
collection of active slices from the current {{DocCollection}} and then 
iterates over it checking what range contains the document's id hash.

Each time this creates a new iterator, which is wasteful - a much lightweight 
approach would be to construct a {{Slice[]}} when {{DocCollection}} is 
constructed and use indexed access to this array.

This change has especially visible impact on simulator performance for large 
scale tests, where other costs are not present.

  was:
When the default {{CompositeIdRouter}} is used it calls for every update 
{{HashBasedRouter.hashToSlice}} method, which obtains a collection of active 
slices from the current {{DocCollection}} and then iterates over it checking 
what range contains the document's id hash.

Each time this creates a new iterator, which is wasteful - a much lightweight 
approach would be to construct a {{Slice[]}} when {{DocCollection}} is 
constructed and use indexed access to this array.

This change has especially visible impact on simulator performance for large 
scale tests, where other costs are not present.


> Reduce object creation in HashBasedRouter
> -----------------------------------------
>
>                 Key: SOLR-12723
>                 URL: https://issues.apache.org/jira/browse/SOLR-12723
>             Project: Solr
>          Issue Type: Improvement
>      Security Level: Public(Default Security Level. Issues are Public) 
>            Reporter: Andrzej Bialecki 
>            Assignee: Andrzej Bialecki 
>            Priority: Major
>             Fix For: 7.5
>
>         Attachments: SOLR-12723.patch
>
>
> When the default {{CompositeIdRouter}} is used it calls 
> {{HashBasedRouter.hashToSlice}} method for every update, which obtains a 
> collection of active slices from the current {{DocCollection}} and then 
> iterates over it checking what range contains the document's id hash.
> Each time this creates a new iterator, which is wasteful - a much lightweight 
> approach would be to construct a {{Slice[]}} when {{DocCollection}} is 
> constructed and use indexed access to this array.
> This change has especially visible impact on simulator performance for large 
> scale tests, where other costs are not present.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to