Uploaded image for project: 'Solr'
  1. Solr
  2. SOLR-725

CoreContainer/CoreDescriptor/SolrCore cleansing

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Reopened
    • Major
    • Resolution: Unresolved
    • 1.3
    • None
    • None
    • None

    Description

      These 3 classes and the name vs alias handling are somewhat confusing.
      The recent SOLR-647 & SOLR-716 have created a bit of a flux.
      This issue attemps to clarify the model and the list of operations.

      CoreDescriptor: describes the parameters of a SolrCore

      Definitions

      • has one name
        • The CoreDescriptor name may represent multiple aliases; in that case, first alias is the SolrCore name
      • has one instance directory location
      • has one config & schema name

      Operations

      The class is only a parameter passing facility

      SolrCore: manages a Lucene index

      Definitions

      • has one unique name (in the CoreContainer)
        • the name is used in JMX to identify the core
      • has one current set of aliases
        • the name is the first alias

      Name & alias operations

      • get name/aliases: obvious
      • alias: adds an alias to this SolrCore
      • unalias: removes an alias from this SolrCore
      • name: sets the SolrCore name
        • potentially impacts JMX registration
      • rename: picks a new name from the SolrCore aliases
        • triggered when alias name is already in use

      CoreContainer: manages all relations between cores & descriptors

      Definitions

      • has a set of aliases (each of them pointing to one core)
        • ensure alias uniqueness.

      SolrCore instance operations

      • load: makes a SolrCore available for requests
        • creates a SolrCore
        • registers all SolrCore aliases in the aliases set
        • (load = create + register)
      • unload: removes a core idenitified by one of its aliases
        • stops handling the Lucene index
        • all SolrCore aliases are removed
      • reload: recreate the core identified by one of its aliases
      • create: create a core from a CoreDescriptor
        • readies up the Lucene index
      • register: registers all aliases of a SolrCore

      SolrCore alias operations

      • swap: swaps 2 aliases
        • method: swap
      • alias: creates 1 alias for a core, potentially unaliasing a previously used alias
        • The SolrCore name being an alias, this operation might trigger a SolrCore rename
      • unalias: removes 1 alias for a core
        • The SolrCore name being an alias, this operation might trigger a SolrCore rename
      • rename: renames a core

      CoreAdminHandler: handles CoreContainer operations

      • load/create: CoreContainer load
      • unload: CoreContainer unload
      • reload: CoreContainer reload
      • swap: CoreContainer swap
      • alias: CoreContainer alias
      • unalias: CoreContainer unalias
      • rename: CoreContainer rename
      • persist: CoreContainer persist, writes the solr.xml
      • stauts: returns the status of all/one SolrCore

      Attachments

        1. solr-725.patch
          22 kB
          Henri Biestro
        2. solr-725.patch
          27 kB
          Henri Biestro
        3. solr-725.patch
          43 kB
          Henri Biestro
        4. solr-725.patch
          47 kB
          Henri Biestro

        Issue Links

          Activity

            People

              Unassigned Unassigned
              henrib Henri Biestro
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated: