[ https://issues.apache.org/jira/browse/SOLR-1154?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12708266#action_12708266 ]
Jianhan commented on SOLR-1154: ------------------------------- This is regarding http://markmail.org/message/5kqx3xps3ejwpazu 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> <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> </lst> </requestHandler> 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) { with 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: https://issues.apache.org/jira/browse/SOLR-1154 > 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.