|
@@ -99,6 +99,8 @@ import java.util.stream.Collectors;
|
|
|
import java.util.stream.IntStream;
|
|
|
|
|
|
import static java.util.stream.Collectors.toList;
|
|
|
+import static org.elasticsearch.cluster.metadata.IndexMetadata.INDEX_NUMBER_OF_REPLICAS_SETTING;
|
|
|
+import static org.elasticsearch.cluster.metadata.IndexMetadata.INDEX_NUMBER_OF_SHARDS_SETTING;
|
|
|
import static org.elasticsearch.cluster.metadata.IndexMetadata.SETTING_AUTO_EXPAND_REPLICAS;
|
|
|
import static org.elasticsearch.cluster.metadata.IndexMetadata.SETTING_CREATION_DATE;
|
|
|
import static org.elasticsearch.cluster.metadata.IndexMetadata.SETTING_INDEX_UUID;
|
|
@@ -762,11 +764,11 @@ public class MetadataCreateIndexService {
|
|
|
final Version createdVersion = Version.min(Version.CURRENT, nodes.getSmallestNonClientNodeVersion());
|
|
|
indexSettingsBuilder.put(IndexMetadata.SETTING_INDEX_VERSION_CREATED.getKey(), createdVersion);
|
|
|
}
|
|
|
- if (indexSettingsBuilder.get(SETTING_NUMBER_OF_SHARDS) == null) {
|
|
|
- indexSettingsBuilder.put(SETTING_NUMBER_OF_SHARDS, settings.getAsInt(SETTING_NUMBER_OF_SHARDS, 1));
|
|
|
+ if (INDEX_NUMBER_OF_SHARDS_SETTING.exists(indexSettingsBuilder) == false) {
|
|
|
+ indexSettingsBuilder.put(SETTING_NUMBER_OF_SHARDS, INDEX_NUMBER_OF_SHARDS_SETTING.get(settings));
|
|
|
}
|
|
|
- if (indexSettingsBuilder.get(SETTING_NUMBER_OF_REPLICAS) == null) {
|
|
|
- indexSettingsBuilder.put(SETTING_NUMBER_OF_REPLICAS, settings.getAsInt(SETTING_NUMBER_OF_REPLICAS, 1));
|
|
|
+ if (INDEX_NUMBER_OF_REPLICAS_SETTING.exists(indexSettingsBuilder) == false) {
|
|
|
+ indexSettingsBuilder.put(SETTING_NUMBER_OF_REPLICAS, INDEX_NUMBER_OF_REPLICAS_SETTING.get(settings));
|
|
|
}
|
|
|
if (settings.get(SETTING_AUTO_EXPAND_REPLICAS) != null && indexSettingsBuilder.get(SETTING_AUTO_EXPAND_REPLICAS) == null) {
|
|
|
indexSettingsBuilder.put(SETTING_AUTO_EXPAND_REPLICAS, settings.get(SETTING_AUTO_EXPAND_REPLICAS));
|
|
@@ -811,7 +813,7 @@ public class MetadataCreateIndexService {
|
|
|
* it will return the value configured for that index.
|
|
|
*/
|
|
|
static int getIndexNumberOfRoutingShards(Settings indexSettings, @Nullable IndexMetadata sourceMetadata) {
|
|
|
- final int numTargetShards = IndexMetadata.INDEX_NUMBER_OF_SHARDS_SETTING.get(indexSettings);
|
|
|
+ final int numTargetShards = INDEX_NUMBER_OF_SHARDS_SETTING.get(indexSettings);
|
|
|
final Version indexVersionCreated = IndexMetadata.SETTING_INDEX_VERSION_CREATED.get(indexSettings);
|
|
|
final int routingNumShards;
|
|
|
if (sourceMetadata == null || sourceMetadata.getNumberOfShards() == 1) {
|
|
@@ -1034,7 +1036,7 @@ public class MetadataCreateIndexService {
|
|
|
* @throws ValidationException if creating this index would put the cluster over the cluster shard limit
|
|
|
*/
|
|
|
public static void checkShardLimit(final Settings settings, final ClusterState clusterState) {
|
|
|
- final int numberOfShards = IndexMetadata.INDEX_NUMBER_OF_SHARDS_SETTING.get(settings);
|
|
|
+ final int numberOfShards = INDEX_NUMBER_OF_SHARDS_SETTING.get(settings);
|
|
|
final int numberOfReplicas = IndexMetadata.INDEX_NUMBER_OF_REPLICAS_SETTING.get(settings);
|
|
|
final int shardsToCreate = numberOfShards * (1 + numberOfReplicas);
|
|
|
|
|
@@ -1100,8 +1102,8 @@ public class MetadataCreateIndexService {
|
|
|
Set<String> targetIndexMappingsTypes, String targetIndexName,
|
|
|
Settings targetIndexSettings) {
|
|
|
IndexMetadata sourceMetadata = validateResize(state, sourceIndex, targetIndexMappingsTypes, targetIndexName, targetIndexSettings);
|
|
|
- assert IndexMetadata.INDEX_NUMBER_OF_SHARDS_SETTING.exists(targetIndexSettings);
|
|
|
- IndexMetadata.selectShrinkShards(0, sourceMetadata, IndexMetadata.INDEX_NUMBER_OF_SHARDS_SETTING.get(targetIndexSettings));
|
|
|
+ assert INDEX_NUMBER_OF_SHARDS_SETTING.exists(targetIndexSettings);
|
|
|
+ IndexMetadata.selectShrinkShards(0, sourceMetadata, INDEX_NUMBER_OF_SHARDS_SETTING.get(targetIndexSettings));
|
|
|
|
|
|
if (sourceMetadata.getNumberOfShards() == 1) {
|
|
|
throw new IllegalArgumentException("can't shrink an index with only one shard");
|
|
@@ -1133,14 +1135,14 @@ public class MetadataCreateIndexService {
|
|
|
Set<String> targetIndexMappingsTypes, String targetIndexName,
|
|
|
Settings targetIndexSettings) {
|
|
|
IndexMetadata sourceMetadata = validateResize(state, sourceIndex, targetIndexMappingsTypes, targetIndexName, targetIndexSettings);
|
|
|
- IndexMetadata.selectSplitShard(0, sourceMetadata, IndexMetadata.INDEX_NUMBER_OF_SHARDS_SETTING.get(targetIndexSettings));
|
|
|
+ IndexMetadata.selectSplitShard(0, sourceMetadata, INDEX_NUMBER_OF_SHARDS_SETTING.get(targetIndexSettings));
|
|
|
}
|
|
|
|
|
|
static void validateCloneIndex(ClusterState state, String sourceIndex,
|
|
|
Set<String> targetIndexMappingsTypes, String targetIndexName,
|
|
|
Settings targetIndexSettings) {
|
|
|
IndexMetadata sourceMetadata = validateResize(state, sourceIndex, targetIndexMappingsTypes, targetIndexName, targetIndexSettings);
|
|
|
- IndexMetadata.selectCloneShard(0, sourceMetadata, IndexMetadata.INDEX_NUMBER_OF_SHARDS_SETTING.get(targetIndexSettings));
|
|
|
+ IndexMetadata.selectCloneShard(0, sourceMetadata, INDEX_NUMBER_OF_SHARDS_SETTING.get(targetIndexSettings));
|
|
|
}
|
|
|
|
|
|
static IndexMetadata validateResize(ClusterState state, String sourceIndex,
|
|
@@ -1163,11 +1165,11 @@ public class MetadataCreateIndexService {
|
|
|
", all mappings are copied from the source index");
|
|
|
}
|
|
|
|
|
|
- if (IndexMetadata.INDEX_NUMBER_OF_SHARDS_SETTING.exists(targetIndexSettings)) {
|
|
|
+ if (INDEX_NUMBER_OF_SHARDS_SETTING.exists(targetIndexSettings)) {
|
|
|
// this method applies all necessary checks ie. if the target shards are less than the source shards
|
|
|
// of if the source shards are divisible by the number of target shards
|
|
|
IndexMetadata.getRoutingFactor(sourceMetadata.getNumberOfShards(),
|
|
|
- IndexMetadata.INDEX_NUMBER_OF_SHARDS_SETTING.get(targetIndexSettings));
|
|
|
+ INDEX_NUMBER_OF_SHARDS_SETTING.get(targetIndexSettings));
|
|
|
}
|
|
|
return sourceMetadata;
|
|
|
}
|