CoreContainer/CoreDescriptor/SolrCore cleansing
-----------------------------------------------

                 Key: SOLR-725
                 URL: https://issues.apache.org/jira/browse/SOLR-725
             Project: Solr
          Issue Type: Improvement
    Affects Versions: 1.3
            Reporter: Henri Biestro



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. 

h3. CoreDescriptor: describes the parameters of a SolrCore

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

h4. Operations
The class is only a parameter passing facility

h3. SolrCore: manages a Lucene index

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

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


h3. CoreContainer: manages all relations between cores & descriptors

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

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



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