You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-dev@lucene.apache.org by "Noble Paul (JIRA)" <ji...@apache.org> on 2008/07/09 13:33:31 UTC
[jira] Issue Comment Edited: (SOLR-561) Solr replication by Solr
(for windows also)
[ https://issues.apache.org/jira/browse/SOLR-561?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12611989#action_12611989 ]
noble.paul edited comment on SOLR-561 at 7/9/08 4:31 AM:
---------------------------------------------------------
This patch relies on the IndexDeletionPolicy to identify files to be replicated. It also supposrts replication of conf files. No need to register any listeners/ QueryResponseWriters
The configuration is as follows
on master
{code:title=solrconfig.xml}
<requestHandler name="/replication" class="solr.ReplicationHandler" >
<lst name="master">
<!--Replicate on 'optimize' it can also be 'commit' -->
<str name="replicateAfter">commit</str>
<!--Config files to be to be replicated-->
<str name="confFiles">schema.xml,stopwords.txt,elevate.xml</str>
</lst>
</requestHandler>
{code}
on slave
{code:title=solrconfig.xml}
<requestHandler name="/replication" class="solr.ReplicationHandler" >
<lst name="slave">
<str name="masterUrl">http://localhost:port/solr/corename/replication</str>
<str name="pollInterval">00:00:20</str>
</lst>
</requestHandler>
{code}
The Replication strategy is changed as follows
* CMD_INDEX_VERSION: gets the version of the current _IndexCommit_ to be replicated from the master. if the version is same, no need to replicate. If it is different
* CMD_FILE_LIST : Get the list of file names for the current _IndexCommit_ . Checks with the local index and identifies modified files by comparing names an sizes.
* CMD-FILE_CONTENT : For each files to be downloaded, issue this command an download the content to a temp folder. After successful completion copy them to the index folder and isse a commit
* If the current index is stale, or not able to synchronize, copy all the files . An index,properties file is written, which has the location of the new index directory
* _CoreDescriptor_ has a new method to reload core.
* If conf files are modified they are copied to the conf folder after taking a backup of the old. Then the core is reloaded
was (Author: noble.paul):
This patch relies on the IndexDeletionPolicy to identify files to be replicated. It also supposrts replication of conf files.
The configuration is as follows
on master
{code:title=solrconfig.xml}
<requestHandler name="/replication" class="solr.ReplicationHandler" >
<lst name="master">
<!--Replicate on 'optimize' it can also be 'commit' -->
<str name="replicateAfter">commit</str>
<!--Config files to be to be replicated-->
<str name="confFiles">schema.xml,stopwords.txt,elevate.xml</str>
</lst>
</requestHandler>
{code}
on slave
{code:title=solrconfig.xml}
<requestHandler name="/replication" class="solr.ReplicationHandler" >
<lst name="slave">
<str name="masterUrl">http://localhost:port/solr/corename/replication</str>
<str name="pollInterval">00:00:20</str>
</lst>
</requestHandler>
{code}
The Replication strategy is changed as follows
* CMD_INDEX_VERSION: gets the version of the current _IndexCommit _ to be replicated from the master. if the version is same, no need to replicate. If it is different
* CMD_FILE_LIST : Get the list of file names for the current _IndexCommit_ . Checks with the local index and identifies modified files by comparing names an sizes.
* CMD-FILE_CONTENT : For each files to be downloaded, issue this command an download the content to a temp folder. After successful completion copy them to the index folder and isse a commit
* If the current index is stale, or not able to synchronize, copy all the files . An index,properties file is written, which has the location of the new index directory
* _CoreDescriptor_ has a new method to reload core.
* If conf files are modified they are copied to the conf folder after taking a backup of the old. Then the core is reloaded
> Solr replication by Solr (for windows also)
> -------------------------------------------
>
> Key: SOLR-561
> URL: https://issues.apache.org/jira/browse/SOLR-561
> Project: Solr
> Issue Type: New Feature
> Components: replication
> Affects Versions: 1.3
> Environment: All
> Reporter: Noble Paul
> Attachments: deletion_policy.patch, SOLR-561.patch, SOLR-561.patch, SOLR-561.patch
>
>
> The current replication strategy in solr involves shell scripts . The following are the drawbacks with the approach
> * It does not work with windows
> * Replication works as a separate piece not integrated with solr.
> * Cannot control replication from solr admin/JMX
> * Each operation requires manual telnet to the host
> Doing the replication in java has the following advantages
> * Platform independence
> * Manual steps can be completely eliminated. Everything can be driven from solrconfig.xml .
> ** Adding the url of the master in the slaves should be good enough to enable replication. Other things like frequency of
> snapshoot/snappull can also be configured . All other information can be automatically obtained.
> * Start/stop can be triggered from solr/admin or JMX
> * Can get the status/progress while replication is going on. It can also abort an ongoing replication
> * No need to have a login into the machine
> This issue can track the implementation of solr replication in java
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.