lucene-solr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jianhan (JIRA)" <>
Subject [jira] Commented: (SOLR-1154) allow specifying solr configuration file through system property to simplify deployment procedure in certain cases
Date Tue, 12 May 2009 00:22:45 GMT


Jianhan commented on SOLR-1154:

This is regarding

For particular problem, i.e. allow dynamically determine an instance to be master or slave,
we could have a different solution: add to master/slave configuration an additional property
that can be used to determine an instance to be a master or slave. Here is how

in solrconfig.xml, include this block

<requestHandler name="/replication" class="solr.ReplicationHandler" >
    <lst name="master">
        <str name="isDisabled">${diable-master: false}</str>
        <str name="replicateAfter">commit</str>
         <str name="confFiles">schema.xml,stopwords.txt</str>
    <lst name="slave">
        <str name="isDisabled">${diable-slave: false}</str>
        <str name="masterUrl">http://localhost:8983/solr/replication</str>
        <str name="pollInterval">00:00:60</str>

and in ReplicationHandler, in addition to check the existence of "master" or "slave", we check
whether "master" or "slave" is disabled or not

i.e. replace 

     if (slave != null) {


     if (slave != null) {
      if ( ! "true".equals(slave.get("isDisabled"))) {

> allow specifying solr configuration file through system property to simplify deployment
procedure in certain cases
> ------------------------------------------------------------------------------------------------------------------
>                 Key: SOLR-1154
>                 URL:
>             Project: Solr
>          Issue Type: Improvement
>    Affects Versions: 1.4
>            Reporter: Jianhan
>            Priority: Minor
>             Fix For: 1.4
>         Attachments: SOLR-1154.patch
>   Original Estimate: 5h
>  Remaining Estimate: 5h
> Hi,
> I wanted to use this parameter to specify different solr configuration files for master
and slave to simplify deployment procedure. Unfortunately, I can't dynamically replace the
value of this parameter. Basically, what I want is
>   <filter>
>     <filter-name>SolrRequestFilter</filter-name>
>     <filter-class>org.apache.solr.servlet.SolrDispatchFilter</filter-class>
>     <init-param>
>       <param-name>solrconfig-filename</param-name>
>       <param-value>solrconfig-master.xml</param-value>
>     </init-param>
> </filter>
> for master instance, and
>   <filter>
>     <filter-name>SolrRequestFilter</filter-name>
>     <filter-class>org.apache.solr.servlet.SolrDispatchFilter</filter-class>
>     <init-param>
>       <param-name>solrconfig-filename</param-name>
>       <param-value>solrconfig-slave.xml</param-value>
>     </init-param>
> </filter>
> for slave instance.
> Ideally, if I can use system property for its value like in solrconfig.xml. For example,
>   <filter>
>     <filter-name>SolrRequestFilter</filter-name>
>     <filter-class>org.apache.solr.servlet.SolrDispatchFilter</filter-class>
>     <init-param>
>       <param-name>solrconfig-filename</param-name>
>       <param-value>${solr.config.filename: solrconfig.xml}</param-value>
>     </init-param>
> </filter>
> but I learned that in general we can't use system property in web.xml.
> I realize that I can use replication of config file to achieve this, but I thought that
creates unnecessary dependencies for slaves on master instance.
> So here is my proposal:
> make SolrDispatchFilter look up another init parameter, say 'solrconfig-filename-property',
and its value is a system property name, and if this property is set, we get the file name,
otherwise nothing happens (of course, if both exist, 'solrconfig-filename' takes precedence).
This will give us maximum flexibility of specifying configuration files for different instances.
> Your thoughts?
> Thanks,
> Jianhan

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message