Coincidentally, from 
http://www.cloudera.com/blog/2009/05/07/what%E2%80%99s-new-in-hadoop-core-020/ :

"Hadoop configuration files now support XInclude elements for including 
portions of another configuration file (HADOOP-4944). This mechanism allows you 
to make configuration files more modular and reusable."

So "others are doing it, too".

Otis
--
Sematext -- http://sematext.com/ -- Lucene - Solr - Nutch



----- Original Message ----
> From: Bryan Talbot <btal...@aeriagames.com>
> To: solr-user@lucene.apache.org
> Sent: Wednesday, May 13, 2009 11:26:41 AM
> Subject: Re: Replication master+slave
> 
> I see that Nobel's final comment in SOLR-1154 is that config files need to be 
> able to include snippets from external files.  In my limited testing, a 
> simple 
> patch to enable XInclude support seems to work.
> 
> 
> 
> --- src/java/org/apache/solr/core/Config.java   (revision 774137)
> +++ src/java/org/apache/solr/core/Config.java   (working copy)
> @@ -100,8 +100,10 @@
>   if (lis == null) {
>     lis = loader.openConfig(name);
>   }
> -      javax.xml.parsers.DocumentBuilder builder = 
> DocumentBuilderFactory.newInstance().newDocumentBuilder();
> -      doc = builder.parse(lis);
> +      javax.xml.parsers.DocumentBuilderFactory dbf = 
> DocumentBuilderFactory.newInstance();
> +      dbf.setNamespaceAware(true);
> +      dbf.setXIncludeAware(true);
> +      doc = dbf.newDocumentBuilder().parse(lis);
> 
>     DOMUtil.substituteProperties(doc, loader.getCoreProperties());
> } catch (ParserConfigurationException e)  {
> 
> 
> 
> This allows a clause like this to include the contents of replication.xml if 
> it 
> exists.  If it's not found an exception will be thrown.
> 
> 
> 
> href="http://localhost:8983/solr/corename/admin/file/?file=replication.xml";
>          xmlns:xi="http://www.w3.org/2001/XInclude";>
> 
> 
> 
> If the file is optional and no exception should be thrown if the file is 
> missing, simply include a fallback action: in this case the fallback is empty 
> and does nothing.
> 
> 
> 
> href="http://localhost:8983/solr/forum_en/admin/file/?file=replication.xml";
>          xmlns:xi="http://www.w3.org/2001/XInclude";>
>     
> 
> 
> 
> -Bryan
> 
> 
> 
> 
> On May 12, 2009, at May 12, 8:05 PM, Jian Han Guo wrote:
> 
> > I was looking at the same problem, and had a discussion with Noble. You can
> > use a hack to achieve what you want, see
> > 
> > https://issues.apache.org/jira/browse/SOLR-1154
> > 
> > Thanks,
> > 
> > Jianhan
> > 
> > 
> > On Tue, May 12, 2009 at 5:13 PM, Bryan Talbot wrote:
> > 
> >> So how are people managing solrconfig.xml files which are largely the same
> >> other than differences for replication?
> >> 
> >> I don't think it's a "good thing" to maintain two copies of the same file
> >> and I'd like to avoid that.  Maybe enabling the XInclude feature in
> >> DocumentBuilders would make it possible to modularize configuration files 
> >> to
> >> make this possible?
> >> 
> >> 
> >> 
> http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/parsers/DocumentBuilderFactory.html#setXIncludeAware(boolean)
> >> 
> >> 
> >> -Bryan
> >> 
> >> 
> >> 
> >> 
> >> 
> >> On May 12, 2009, at May 12, 11:43 AM, Shalin Shekhar Mangar wrote:
> >> 
> >> On Tue, May 12, 2009 at 10:42 PM, Bryan Talbot 
> >>>> wrote:
> >>> 
> >>> For replication in 1.4, the wiki at
> >>>> http://wiki.apache.org/solr/SolrReplication says that a node can be both
> >>>> the master and a slave:
> >>>> 
> >>>> A node can act as both master and slave. In that case both the master and
> >>>> slave configuration lists need to be present inside the
> >>>> ReplicationHandler
> >>>> requestHandler in the solrconfig.xml.
> >>>> 
> >>>> What does this mean?  Does the core then poll itself for updates?
> >>>> 
> >>> 
> >>> 
> >>> No. This type of configuration is meant for "repeaters". Suppose there are
> >>> slaves in multiple data-centers (say data center A and B). There is always
> >>> a
> >>> single master (say in A). One of the slaves in B is used as a master for
> >>> the
> >>> other slaves in B. Therefore, this one slave in B is both a master as well
> >>> as the slave.
> >>> 
> >>> 
> >>> 
> >>>> I'd like to have a single set of configuration files that are shared by
> >>>> masters and slaves and avoid duplicating configuration details in
> >>>> multiple
> >>>> files (one for master and one for slave) to ease management and failover.
> >>>> Is this possible?
> >>>> 
> >>>> 
> >>> You wouldn't want the master to be a slave. So I guess you'd need to have
> >>> a
> >>> separate file. Also, it needs to be a separate file so that the slave does
> >>> not become a master when the solrconfig.xml is replicated.
> >>> 
> >>> 
> >>> 
> >>>> When I attempt to setup a multi server master-slave configuration and
> >>>> include both master and slave replication configuration options, I into
> >>>> some
> >>>> problems.  I'm  running a nightly build from May 7.
> >>>> 
> >>>> 
> >>> Not sure what happened. Is that the url for this solr (meaning same solr
> >>> url
> >>> is master and slave of itself)? If yes, that is not a valid configuration.
> >>> 
> >>> --
> >>> Regards,
> >>> Shalin Shekhar Mangar.
> >>> 
> >> 
> >> 

Reply via email to