[
https://issues.apache.org/jira/browse/SOLR-921?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12658754#action_12658754
]
Noble Paul commented on SOLR-921:
---------------------------------
The patch currently caches the result only if the default set of packages are
used . If you pass an extra list of package names , then the result is not
cached. The ideal solution is to consider the package names also in the key .
I have ignored those usecases for simplicity. I have also ignored cases where
classes are loaded by parent classloader. Ideally the classloader also must be
considered for making the key for the cache .
This is useful when cores are loaded/unloaded very frequently and there are a
large number of cores (tens of thousands) . In other cases the perf benefits
are negligible. So this is not applicable for loading plugins as well.
> SolrResourceLoader must cache name vs class
> -------------------------------------------
>
> Key: SOLR-921
> URL: https://issues.apache.org/jira/browse/SOLR-921
> Project: Solr
> Issue Type: Improvement
> Reporter: Noble Paul
> Attachments: SOLR-921.patch
>
>
> every class that is loaded through SolrResourceLoader does a Class.forName()
> and when if it is not found a ClassNotFoundExcepton is thrown
> Then , it looks up with the various packages and finds the right class if the
> name starts with solr. Considering the fact that we usually use this
> solr.<classname> format we pay too much of a price for this. After every
> lookup the result can be cached in a Map<String,Class> and can be shared
> across all the cores and this Map can be stored at the CoreContainer level
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.