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.