[ 
https://issues.apache.org/jira/browse/SOLR-9577?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15535584#comment-15535584
 ] 

Shalin Shekhar Mangar commented on SOLR-9577:
---------------------------------------------

bq. for example, a searchhandler instance refers to SearchComponents.

Are there other such examples? Should SearchHandler be changed to deal with 
this better e.g. currently, it keeps a list of SearchComponents objects around 
but the actual SearchComponent instance is looked up from the SolrCore.

{code}
/** After a reload() is called on any component in that core , this is invoked
*/
default void postConfigChange(SolrCore core){}
{code}

This is too coarse? If we do this, maybe we can listen to changes on specific 
named components or by plugin class name?

> SolrConfig edit operations should not need to reload core
> ---------------------------------------------------------
>
>                 Key: SOLR-9577
>                 URL: https://issues.apache.org/jira/browse/SOLR-9577
>             Project: Solr
>          Issue Type: Sub-task
>      Security Level: Public(Default Security Level. Issues are Public) 
>            Reporter: Noble Paul
>
> Every single change done to solrconfig.xml/configoverlay.json leads to a core 
> reload. This is very bad for performance. 
> Ideally , If I update/add/delete a component only that one component needs to 
> get reloaded.
> How to do this?
> Every component in  Solr should be able to implement an interface 
> {code:java}
> interface Reloadable {
> /** When the configuration of this component is changed the core invokes this 
> method, with the new configuration
> */
> void reload(PluginInfo info);
> /** After a reload() is called on any component in that core , this is invoked
> */
> default void postConfigChange(SolrCore core){}
> }
> {code}
> if the component implements this interface, any change to its configuration 
> will result in a callback to this method.
> if the component does not implement this interface, we should unload and the 
> component and call any close hooks registered from the inform() method . To 
> make this work, we will have to disable registering close hooks from anywhere 
> else. After unloading the component, a new one created with  the new 
> configuration 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to