On 10/4/2013 7:21 PM, Trey Grainger wrote:
> There are two use-cases that appear broken with the new core
> auto-discovery mechanism:
> 
> *1) The Core Admin Handler's CREATE command no longer works to create
> brand new cores* 
> (unless you have logged on the box and created the core's directory
> structure manually, which largely defeats the purpose of the "CREATE"
> command).  With the old Solr.xml format, we could spin up as many cores
> as we wanted to dynamically with the following command:
> http://localhost:8983/solr/admin/cores?action=CREATE&name=newCore1&instanceDir=collection1&dataDir=newCore1/data
> ...
> http://localhost:8983/solr/admin/cores?action=CREATE&name=newCoreN&instanceDir=collection1&dataDir=newCoreN/data
> 
> In the new core discovery mode, this exception is now thrown:
> Error CREATEing SolrCore 'newCore1': Could not create a new core in
> solr/collection1/as another core is already defined there

The CREATE action has *always* required that you have your configuration
on the disk before you call it.  You are sharing the instanceDir, which
is the only reason you can skip that step.

If you want completely dynamic creation, use SolrCloud, which keeps the
config in zookeeper and requires ZERO config information to exist on the
disk.

> *2) Having a shared configuration directory (instanceDir) across many
> cores no longer works*.  
> Every core has to have it's own conf/ directory, and this doesn't seem
> to be overridable any longer.  Previously, it was possible to have many
> cores share the same instanceDir (and just override their dataDir for
> obvious reasons).  Now, it is necessary to copy and paste identical
> config files for each Solr core.

>From what I understand talking to the people that worked on this, the
lack of a shared instanceDir was completely deliberate.  It's the only
way that core discovery can work in any kind of predictable and sane
manner.  The entire point of it is that every core is self-contained and
solr.xml isn't used to tell Solr about them.

I personally have never tried to share the instanceDir.  I do have
shared configs, though - my corename/conf directories have symlinks to a
shared config directory.  I also don't dynamically create cores - I have
seven shards, each of which has a live core and a build core.  There are
two other cores that serve as frontends, with the shards parameter in
the request handlers.

> I don't know if there's already a current roadmap for fixing this.  I
> saw https://issues.apache.org/jira/browse/SOLR-4478, which suggested
> replacing instanceDir with the ability to specify a named configSet.
>  This solves problem 2, but not problem1 (since you still can't have
> multiple core.properties files in the same folder).  Based on Erick's
> comments in the JIRA ticket, it also sounds like this ticket is also
> dead at the moment.
> 
> There is definitely a need to have a shared config directory - whether
> that is through a configSet or an explicit indexDir doesn't matter to
> me.  There's also a need to be able to dynamically create Solr cores
> from external systems.  I currently can't upgrade to core auto discovery
> because it doesn't allow dynamic core creation.  Does anyone have some
> thoughts on how to best get these features working again under core
> autodiscovery?  Adding instanceDir to core.properties seems like an easy
> solution, but there must be a desire not to do that or it would probably
> have already been done.

Thankfully, you do not need to upgrade to core discovery anytime soon.
All future 4.x versions will support the old format, and any problems
with that will be considered bugs.  It will be mandatory in Solr 5.0,
which currently doesn't have any kind of release roadmap or timeframe.
I suspect that what we currently call "SolrCloud" will also be mandatory
in 5.0, and that gives you shared configs with zookeeper.  Requiring
zookeeper allows completely dynamic core/collection creation, because
the only thing that will be on the disk is the index and transaction log
data.

Thanks,
Shawn


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

Reply via email to