]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-5483 - Added Cluster zone-awareness using rack_id
authorStephane Gamard <stephane.gamard@searchbox.com>
Thu, 7 Aug 2014 08:03:05 +0000 (10:03 +0200)
committerStephane Gamard <stephane.gamard@searchbox.com>
Thu, 7 Aug 2014 08:03:26 +0000 (10:03 +0200)
server/sonar-search/src/main/java/org/sonar/search/SearchServer.java
server/sonar-server/src/main/java/org/sonar/server/search/ESNode.java

index 9f2f09494f1ed0270dbee491f6b224ff69a5ee2a..8ac70a0b7e4f632edbd17ba2b37a1925dd8589cc 100644 (file)
@@ -118,6 +118,8 @@ public class SearchServer extends MonitoredProcess {
 
     // Set cluster coordinates
     esSettings.put("cluster.name", clusterName);
+    esSettings.put("node.rack_id", props.of(SONAR_NODE_NAME));
+    esSettings.put("cluster.routing.allocation.awareness.attributes","rack_id");
     if (props.contains(SONAR_NODE_NAME)) {
       esSettings.put("node.name", props.of(SONAR_NODE_NAME));
     } else {
index f0dc7af8751b49caa9361a81e1f89db7d946aaab..a39454f52d4f3c524b68bfd95f2b8e85f17d7b48 100644 (file)
@@ -49,7 +49,6 @@ import org.sonar.api.config.Settings;
 import org.sonar.core.profiling.Profiling;
 import org.sonar.core.profiling.StopWatch;
 import org.sonar.server.search.es.ListUpdate;
-import org.sonar.server.search.es.ListUpdate.UpdateListScriptFactory;
 
 import javax.annotation.CheckForNull;
 
@@ -101,10 +100,10 @@ public class ESNode implements Startable {
       .put("indices.store.throttle.type", "merge")
       .put("indices.store.throttle.max_bytes_per_sec", "200mb")
 
-      .put("script.default_lang", "native")
-      .put("script.native." + ListUpdate.NAME + ".type", UpdateListScriptFactory.class.getName())
-
+      // Set cluster coordinates
       .put("cluster.name", StringUtils.defaultIfBlank(settings.getString(IndexProperties.CLUSTER_NAME), "sonarqube"))
+      .put("node.rack_id", settings.hasKey(IndexProperties.NODE_NAME))
+
       .put("path.home", esHomeDir().getAbsolutePath());
 
 
@@ -234,6 +233,11 @@ public class ESNode implements Startable {
       .put("index.number_of_replicas", "0")
       .put("node.local", true)
 
+        // Initialize our own ListUpdate
+      .put("script.default_lang", "native")
+      .put("script.native." + ListUpdate.NAME + ".type", ListUpdate.UpdateListScriptFactory.class.getName())
+
+
       .put("index.search.slowlog.threshold.query.warn", "10ms")
         // Cannot use anything else but warn
       .put("index.search.slowlog.threshold.query.info", "10ms")