[ 
https://issues.apache.org/jira/browse/SOLR-561?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12645632#action_12645632
 ] 

P E commented on SOLR-561:
--------------------------

Hi, i have a couple comments about the implementation, specifically 
SnapShooter.java just pulled from TRUNK:

-------------------------------------
createSnapshot() uses the following pattern, which seems unreliable to me, 
under the prospect of concurrent snapshot requests: 

lockFile = new File(snapDir, directoryName + ".lock");
      if (lockFile.exists()) {
        return;
      }

... <1> ...

lockFile.createNewFile();

... <2> ...

if (lockFile != null) {
        lockFile.delete();
      }

AFAIK, java.nio.channels.FileLock should be used for any type of file-based 
locking of the sort for cross-vm synchronization. If you are worried about 
in-vm synchronization, it might be best to just use j.u.c Locks or 
synchronized{} blocks. This would remove the possiblity of junk .lock files if, 
say the VM dies during <2>.

-------------------------------------
Additionally, these lines seem suspect to me. transferTo() needs to be done in 
a loop for the full copy to work. 

      fis = new FileInputStream(file);
      File destFile = new File(toDir, file.getName());
      fos = new FileOutputStream(destFile);
      fis.getChannel().transferTo(0, fis.available(), fos.getChannel());
      destFile.setLastModified(file.lastModified());



Am i crazy or are these real problems?

> 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 (scripts)
>    Affects Versions: 1.4
>         Environment: All
>            Reporter: Noble Paul
>            Assignee: Shalin Shekhar Mangar
>             Fix For: 1.4
>
>         Attachments: deletion_policy.patch, SOLR-561-core.patch, 
> SOLR-561-fixes.patch, SOLR-561-fixes.patch, SOLR-561-fixes.patch, 
> SOLR-561-full.patch, SOLR-561-full.patch, SOLR-561-full.patch, 
> SOLR-561-full.patch, SOLR-561.patch, SOLR-561.patch, SOLR-561.patch, 
> SOLR-561.patch, SOLR-561.patch, SOLR-561.patch, SOLR-561.patch, 
> SOLR-561.patch, SOLR-561.patch, SOLR-561.patch, SOLR-561.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 
> * From a development perspective, we can unit test it
> 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.

Reply via email to