You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ma...@apache.org on 2011/11/22 15:29:38 UTC

svn commit: r1205017 - in /lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr: cloud/ZkController.java handler/ReplicationHandler.java handler/SnapPuller.java

Author: markrmiller
Date: Tue Nov 22 14:29:37 2011
New Revision: 1205017

URL: http://svn.apache.org/viewvc?rev=1205017&view=rev
Log:
clean up synchronous replication/recovery code

Modified:
    lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/cloud/ZkController.java
    lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/handler/ReplicationHandler.java
    lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/handler/SnapPuller.java

Modified: lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/cloud/ZkController.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/cloud/ZkController.java?rev=1205017&r1=1205016&r2=1205017&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/cloud/ZkController.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/cloud/ZkController.java Tue Nov 22 14:29:37 2011
@@ -26,7 +26,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Properties;
 import java.util.concurrent.TimeoutException;
-import java.util.concurrent.locks.ReentrantLock;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -39,12 +38,11 @@ import org.apache.solr.common.cloud.Solr
 import org.apache.solr.common.cloud.ZkNodeProps;
 import org.apache.solr.common.cloud.ZkStateReader;
 import org.apache.solr.common.cloud.ZooKeeperException;
+import org.apache.solr.common.params.ModifiableSolrParams;
 import org.apache.solr.common.params.SolrParams;
-import org.apache.solr.common.util.NamedList;
 import org.apache.solr.core.CoreDescriptor;
 import org.apache.solr.core.SolrCore;
 import org.apache.solr.handler.ReplicationHandler;
-import org.apache.solr.handler.SnapPuller;
 import org.apache.zookeeper.CreateMode;
 import org.apache.zookeeper.KeeperException;
 import org.apache.zookeeper.KeeperException.Code;
@@ -603,28 +601,14 @@ public final class ZkController {
           return;
         }
         
-        ReentrantLock snapPullLock = replicationHandler.snapPullLock;
-        if (!snapPullLock.tryLock()) return;
-        SnapPuller tempSnapPuller;
-        try {
-          
-          NamedList<Object> nl = new NamedList<Object>();
-          nl.add(ReplicationHandler.MASTER_URL, leaderUrl + "replication");
-          nl.remove(SnapPuller.POLL_INTERVAL);
-          tempSnapPuller = new SnapPuller(nl, replicationHandler, core);
-          
-          tempSnapPuller.fetchLatestIndex(core, true);
-        } catch (Exception e) {
-          log.error("SnapPull failed ", e);
-        } finally {
-          
-          snapPullLock.unlock();
-        }
+        ModifiableSolrParams solrParams = new ModifiableSolrParams();
+        solrParams.set(ReplicationHandler.MASTER_URL, leaderUrl + "replication");
+        solrParams.set(ReplicationHandler.CMD_FORCE, true);
+
+        replicationHandler.doFetch(solrParams);
       } finally {
         core.close();
       }
-
-      // TODO: once done replicating, mark as active
     }
   }
 

Modified: lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/handler/ReplicationHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/handler/ReplicationHandler.java?rev=1205017&r1=1205016&r2=1205017&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/handler/ReplicationHandler.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/handler/ReplicationHandler.java Tue Nov 22 14:29:37 2011
@@ -81,15 +81,13 @@ import org.slf4j.LoggerFactory;
  * @since solr 1.4
  */
 public class ReplicationHandler extends RequestHandlerBase implements SolrCoreAware {
-  static final String FORCE = "force";
   
   private static final Logger LOG = LoggerFactory.getLogger(ReplicationHandler.class.getName());
   SolrCore core;
 
   private SnapPuller snapPuller;
 
-  // nocommit: made this public
-  public ReentrantLock snapPullLock = new ReentrantLock();
+  private ReentrantLock snapPullLock = new ReentrantLock();
 
   private String includeConfFiles;
 
@@ -121,7 +119,7 @@ public class ReplicationHandler extends 
   public void handleRequestBody(SolrQueryRequest req, SolrQueryResponse rsp) throws Exception {
     rsp.setHttpCaching(false);
     final SolrParams solrParams = req.getParams();
-    boolean force = solrParams.getBool(FORCE, false);
+    boolean force = solrParams.getBool(CMD_FORCE, false);
     String command = solrParams.get(COMMAND);
     if (command == null) {
       rsp.add(STATUS, OK_STATUS);
@@ -297,7 +295,7 @@ public class ReplicationHandler extends 
         tempSnapPuller = snapPuller;
       }
       
-      tempSnapPuller.fetchLatestIndex(core, solrParams == null ? false : solrParams.getBool(FORCE, false));
+      tempSnapPuller.fetchLatestIndex(core, solrParams == null ? false : solrParams.getBool(CMD_FORCE, false));
     } catch (Exception e) {
       LOG.error("SnapPull failed ", e);
     } finally {
@@ -1101,6 +1099,8 @@ public class ReplicationHandler extends 
 
   public static final String COMMAND = "command";
 
+  public static final String CMD_FORCE = "force";
+  
   public static final String CMD_DETAILS = "details";
 
   public static final String CMD_BACKUP = "backup";

Modified: lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/handler/SnapPuller.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/handler/SnapPuller.java?rev=1205017&r1=1205016&r2=1205017&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/handler/SnapPuller.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/handler/SnapPuller.java Tue Nov 22 14:29:37 2011
@@ -180,7 +180,7 @@ public class SnapPuller {
     post.addParameter(COMMAND, CMD_INDEX_VERSION);
     post.addParameter("wt", "javabin");
     if (force) {
-      post.addParameter(ReplicationHandler.FORCE, "true");
+      post.addParameter(ReplicationHandler.CMD_FORCE, "true");
     }
     return getNamedListResponse(post);
   }