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 2012/01/21 01:19:07 UTC

svn commit: r1234218 - /lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/cloud/SyncStrategy.java

Author: markrmiller
Date: Sat Jan 21 00:19:07 2012
New Revision: 1234218

URL: http://svn.apache.org/viewvc?rev=1234218&view=rev
Log:
don't over sync

Modified:
    lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/cloud/SyncStrategy.java

Modified: lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/cloud/SyncStrategy.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/cloud/SyncStrategy.java?rev=1234218&r1=1234217&r2=1234218&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/cloud/SyncStrategy.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/cloud/SyncStrategy.java Sat Jan 21 00:19:07 2012
@@ -88,24 +88,8 @@ public class SyncStrategy {
         System.out.println("Sync success");
         // we are the leader - tell all of our replias to sync with us
         
-        // sync everyone else
-        // TODO: we should do this in parallel at least
-        List<ZkCoreNodeProps> nodes = zkController.getZkStateReader()
-            .getReplicaProps(collection, shardId,
-                leaderProps.get(ZkStateReader.NODE_NAME_PROP),
-                leaderProps.get(ZkStateReader.CORE_NAME_PROP),
-                ZkStateReader.ACTIVE);
-        if (nodes != null) {
-          for (ZkCoreNodeProps node : nodes) {
-            try {
-              syncToMe(zkController, collection, shardId, leaderProps,
-                  node.getNodeProps(), nodes);
-            } catch (Exception exception) {
-              exception.printStackTrace();
-              // nocommit
-            }
-          }
-        }
+        syncToMe(zkController, collection, shardId, leaderProps);
+        
       } else {
         // nocommit: we cannot be the leader - go into recovery
         // but what if no one can be the leader in a loop?
@@ -184,9 +168,16 @@ public class SyncStrategy {
   }
   
   private void syncToMe(ZkController zkController, String collection,
-      String shardId, ZkNodeProps leaderProps, ZkNodeProps props, List<ZkCoreNodeProps> nodes)
-      throws MalformedURLException, SolrServerException, IOException {
+      String shardId, ZkNodeProps leaderProps) throws MalformedURLException,
+      SolrServerException, IOException {
     
+    // sync everyone else
+    // TODO: we should do this in parallel at least
+    List<ZkCoreNodeProps> nodes = zkController
+        .getZkStateReader()
+        .getReplicaProps(collection, shardId,
+            leaderProps.get(ZkStateReader.NODE_NAME_PROP),
+            leaderProps.get(ZkStateReader.CORE_NAME_PROP), ZkStateReader.ACTIVE);
     if (nodes == null) {
       System.out.println("I have no replicas");
       // I have no replicas
@@ -200,15 +191,19 @@ public class SyncStrategy {
         // to do it?
         // TODO: this should be done in parallel
         QueryRequest qr = new QueryRequest(params("qt", "/get", "getVersions",
-            Integer.toString(1000), "sync", zkLeader.getCoreUrl(), "distrib", "false"));
-        CommonsHttpSolrServer server = new CommonsHttpSolrServer(node.getCoreUrl());
+            Integer.toString(1000), "sync", zkLeader.getCoreUrl(), "distrib",
+            "false"));
+        CommonsHttpSolrServer server = new CommonsHttpSolrServer(
+            node.getCoreUrl());
         
         NamedList rsp = server.request(qr);
-        System.out.println("response about syncing to leader:" + rsp + " node:" + node.getCoreUrl() + " me:" + zkController.getBaseUrl());
+        System.out.println("response about syncing to leader:" + rsp + " node:"
+            + node.getCoreUrl() + " me:" + zkController.getBaseUrl());
         boolean success = (Boolean) rsp.get("sync");
         System.out.println("success:" + success);
         if (!success) {
-          System.out.println("try and ask " + node.getCoreUrl() + " to recover");
+          System.out
+              .println("try and ask " + node.getCoreUrl() + " to recover");
           log.info("try and ask " + node.getCoreUrl() + " to recover");
           try {
             server = new CommonsHttpSolrServer(node.getBaseUrl());