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

Reply via email to