From 8905e0eefd0e98272de9a5cf8ef542881f402458 Mon Sep 17 00:00:00 2001 From: Stephane Gamard Date: Fri, 3 Oct 2014 08:37:50 +0200 Subject: [PATCH] SONAR-5686 - Updated settings for IssueIndex to 4 shards --- .../org/sonar/server/issue/index/IssueIndex.java | 6 ++++++ .../java/org/sonar/server/search/BaseIndex.java | 2 +- .../server/issue/index/IssueIndexMediumTest.java | 15 +++++++++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/server/sonar-server/src/main/java/org/sonar/server/issue/index/IssueIndex.java b/server/sonar-server/src/main/java/org/sonar/server/issue/index/IssueIndex.java index 9e5abe2a994..89cd31b8e91 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/issue/index/IssueIndex.java +++ b/server/sonar-server/src/main/java/org/sonar/server/issue/index/IssueIndex.java @@ -25,6 +25,7 @@ import org.apache.commons.lang.BooleanUtils; import org.elasticsearch.action.search.SearchRequestBuilder; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.action.search.SearchType; +import org.elasticsearch.common.settings.ImmutableSettings; import org.elasticsearch.common.unit.TimeValue; import org.elasticsearch.index.query.*; import org.elasticsearch.search.aggregations.AggregationBuilders; @@ -51,6 +52,11 @@ public class IssueIndex extends BaseIndex { super(IndexDefinition.ISSUES, normalizer, client); } + @Override + protected ImmutableSettings.Builder addCustomIndexSettings(ImmutableSettings.Builder baseIndexSettings) { + return baseIndexSettings.put("index.number_of_shards", 4); + } + @Override protected String getKeyValue(String keyString) { return keyString; diff --git a/server/sonar-server/src/main/java/org/sonar/server/search/BaseIndex.java b/server/sonar-server/src/main/java/org/sonar/server/search/BaseIndex.java index 8741898e106..247908a85f0 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/search/BaseIndex.java +++ b/server/sonar-server/src/main/java/org/sonar/server/search/BaseIndex.java @@ -231,7 +231,7 @@ public abstract class BaseIndex, KEY extends Serial protected abstract String getKeyValue(KEY key); - private final Settings getIndexSettings() { + public final Settings getIndexSettings() { return this.addCustomIndexSettings (this.getBaseIndexSettings()).build(); } diff --git a/server/sonar-server/src/test/java/org/sonar/server/issue/index/IssueIndexMediumTest.java b/server/sonar-server/src/test/java/org/sonar/server/issue/index/IssueIndexMediumTest.java index 95b88a59bdf..9450db89ccd 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/issue/index/IssueIndexMediumTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/issue/index/IssueIndexMediumTest.java @@ -21,6 +21,7 @@ package org.sonar.server.issue.index; import com.google.common.collect.ImmutableMap; import org.elasticsearch.action.admin.indices.stats.IndicesStatsResponse; +import org.elasticsearch.common.settings.Settings; import org.junit.After; import org.junit.Before; import org.junit.ClassRule; @@ -722,4 +723,18 @@ public class IssueIndexMediumTest { assertThat(results.get(2).getKey()).isEqualTo("_notAssigned_"); assertThat(results.get(2).getValue()).isEqualTo(1); } + + + @Test + public void index_has_4_shards() { + + // 0 Assert configuration is correct + String shardSettingKey = "index.number_of_shards"; + Settings settings = index.getIndexSettings(); + assertThat(settings.get(shardSettingKey)).isEqualTo("4"); + + // 1 Assert index has 4 shards + assertThat(tester.get(SearchClient.class).admin().indices().prepareGetSettings(IndexDefinition.ISSUES.getIndexName()) + .get().getSetting(IndexDefinition.ISSUES.getIndexName(), shardSettingKey)).isEqualTo("4"); + } } -- 2.39.5