What about solr.xml and it is always there? A single core is just multicore with one core. I know that one's been tossed around before. Of course, back compat. gets in the way a bit.

Also, maybe we should also mark multicore as experimental (starting to sound like a lot of Solr is "experimental", these days, what w/ a good number of output formats marked w/ that warning).

To be honest, I really think we need to start thinking a lot harder about Solr on Spring. All this config stuff just makes my head hurt. It can all be so much simpler, IMO. In fact, part of me thinks 1.3 should be our last 1.x release, but most of me knows that is not realistic. I think w/ Spring, we can keep the same core search functionality, and input/output APIs, and make the config a lot simpler, or at least more well known and obvious. I know, I should submit a patch... There's also a part of me that thinks the config and schema should be able to be initialized completely programmatically w/o any XML whatsoever. Using Spring should allow that.

At any rate, that is a side decision. If we really are going to take on the multicore issue, then we need to postpone the release, IMO. Otherwise, I think we should just label it as it is expected to change in the next release.

-Grant

On Aug 7, 2008, at 3:26 PM, Yonik Seeley wrote:

As far as name, I like solr.xml better than multicore.xml
Option #2 is interesting... and might be even more so if files in the
base conf directory could act as defaults (perhaps a future feature).

-Yonik


On Thu, Aug 7, 2008 at 2:51 PM, Chris Hostetter
<[EMAIL PROTECTED]> wrote:

I know I probably should have brought this up a little farther in advance of releasing 1.3 (I think i did bring it up back when multicore was first added ,but then I kind of forgot about it) but I have some concerns about the name of the "multicore.xml" file. If I'm alone, I'll let it go, but if other people think I have a point, we should make the change it prior to the
release.

Main Concern...

From the standpoint of debugging, answering questions, and general
"Understanding" of a Solr installation the first thing you always have to ask with 1.3 is "What is the Solr Home directory?" and the second thing is
"What does the ./conf/solrconfig.xml file look like?"

As the trunk stands now, the new second question becomes "Is there a
./multicore.xml?" ... because if there is, then it doesn't matter what ./conf/solrconfig.xml looks like, it's totally ignored 9and you can be certain that some confusion like that will pop up as people switch from traditional single core to usage to multicore usage, there will be some
./conf/solrconfig.xml files lying around).

The question can't even be "Is this instance of Solr using multiple cores?" because that's not what really matters, what matters is the multicore.xml file. A person might only be using one core, but if multicore.xml exists it
determines where to look for all of the configs for that core, not
./conf/solrconfig.xml.

So far, I see two problems with this:
1) The name of the file corresponds with one specific way it can be
   used, but may not be applicable to all usages (namely: you can
   have a multicore.xml file but only use one core)
2) The "first" config file checked to determine the application's
   behavior, and what paths will be checked for other config files
   is named after one specific feature of the application.

From a historical perspective, our current setup would be like if the Apache HTTPD server had originally used ./conf/httpd.conf as the primary config, but when VirtualHost features were added, started saying "If there is a ./virtualhost.conf file it will be read first, and it will tell us which
httpd.conf files to read, even if there is only one VirtualHost."

This seems odd to me, and likely to confuse new users.
Am I alone in this opinion?

I have two suggested alternatives:

Suggestion #1: Rename multicore.xml something new.

The best suggestion I have is "solr.xml" -- It is a good name to represent the "first" config file Solr looks for. If it exists in the Solr Home Directory, it will tell us how many cores to run, and what directories to use for them. (Someday we might even want to consider allowing a system property / JNDI property specify it directly instead of specifying Solr Home) and if it doesn't exist we assume a single core whose instanceDir is
the Solr Home Dir.

This seems pretty straight forward. The only changes we'd *have* to make would be some string literals and some documentation (and svn renaming the example multicore.xml). But we should also consider changing adding a new root XML tag in multicore.xml wrapping the existing <multicore> with a <solr> ... that would give us a little more flexibility in the future.


Suggestion #2: Change solrconfig.xml parsing to understand <multicore>

This one is a little weird, part of me thinks it's really the best way to go, but part of me thinks i's really awkward compared to having a solr.xml. The nushell would be that we always look for ./conf/solrconfig.xml first and if the root tag is <multicore> we go into MultiCore mode, and if not we
go into SingleCore mode.

The big advantage here would be that debuging a Solr instance or answering questions becomes really straight forward. Instead of asking "Is there a multicore.xml/solr.xml?" and then depending on the answer asking "What does ./conf/xolrconfig.xml look like?" the only thing you have to know is "What
does ./conf/xolrconfig.xml look like?"

The possible downsides: More changes to code now before the release; A somewhat awkward Solr Home directory structure when you are using multiple cores (Even if you have different instanceDirs for each core, your main Solr Home directory still needs to contain ./conf/ which needs to contain a solrconfig.xml); And having one file support two radically different types
of content.

Most installs probably keep all of their instance dirs in Solr Home, so the
directory layout of Suggestion#2 doesn't seem too awkward compared to
Suggestion#1...

  solr-home/                      (Suggestion#1)
  solr-home/solr.xml              (current multicore.xml)
  solr-home/instanceDir1/
  solr-home/instanceDir1/...
  solr-home/instanceDir2/
  solr-home/instanceDir2/...
  solr-home/...
...vs...
  solr-home/                     (Suggestion#2)
  solr-home/conf/
  solr-home/conf/solrconfig.xml  (current multicore.xml)
  solr-home/instanceDir1/
  solr-home/instanceDir1/...
  solr-home/instanceDir2/
  solr-home/instanceDir2/...
  solr-home/...

...But i'm sure opinions vary.

What do people think?
Is this going to confuse new users who come along, and make troubleshooting
as confusing as I suspect, or am I just being paranoid?

Even if I am being paranoid: is there any downside to Suggestion #1



-Hoss



--------------------------
Grant Ingersoll
http://www.lucidimagination.com

Lucene Helpful Hints:
http://wiki.apache.org/lucene-java/BasicsOfPerformance
http://wiki.apache.org/lucene-java/LuceneFAQ







Reply via email to