Uploaded image for project: 'Solr'
  1. Solr
  2. SOLR-9569 Moving to a unified solrconfig experience
  3. SOLR-9577

SolrConfig edit operations should not need to reload core

    XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • None
    • None

    Description

      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

      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){}
      }
      

      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

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              noble.paul Noble Paul
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated: