Package org.elasticsearch.indices
Class ShardLimitValidator
java.lang.Object
org.elasticsearch.indices.ShardLimitValidator
This class contains the logic used to check the cluster-wide shard limit before shards are created and ensuring that the limit is
updated correctly on setting updates, etc.
NOTE: This is the limit applied at *shard creation time*. If you are looking for the limit applied at *allocation* time, which is
controlled by a different setting,
see
ShardsLimitAllocationDecider.-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionintGets the currently configured value of theSETTING_CLUSTER_MAX_SHARDS_PER_NODEsetting.voidvalidateShardLimit(ClusterState currentState, Index[] indicesToOpen)Validates whether a list of indices can be opened without going over the cluster shard limit.voidvalidateShardLimit(Settings settings, ClusterState state)Checks whether an index can be created without going over the cluster shard limit.voidvalidateShardLimitOnReplicaUpdate(ClusterState currentState, Index[] indices, int replicas)
-
Field Details
-
SETTING_CLUSTER_MAX_SHARDS_PER_NODE
-
SETTING_CLUSTER_MAX_SHARDS_PER_NODE_FROZEN
-
FROZEN_GROUP
- See Also:
- Constant Field Values
-
INDEX_SETTING_SHARD_LIMIT_GROUP
-
shardLimitPerNode
-
shardLimitPerNodeFrozen
-
-
Constructor Details
-
ShardLimitValidator
-
-
Method Details
-
getShardLimitPerNode
public int getShardLimitPerNode()Gets the currently configured value of theSETTING_CLUSTER_MAX_SHARDS_PER_NODEsetting.- Returns:
- the current value of the setting
-
validateShardLimit
Checks whether an index can be created without going over the cluster shard limit.- Parameters:
settings- the settings of the index to be createdstate- the current cluster state- Throws:
ValidationException- if creating this index would put the cluster over the cluster shard limit
-
validateShardLimit
Validates whether a list of indices can be opened without going over the cluster shard limit. Only counts indices which are currently closed and will be opened, ignores indices which are already open.- Parameters:
currentState- The current cluster state.indicesToOpen- The indices which are to be opened.- Throws:
ValidationException- If this operation would take the cluster over the limit and enforcement is enabled.
-
validateShardLimitOnReplicaUpdate
public void validateShardLimitOnReplicaUpdate(ClusterState currentState, Index[] indices, int replicas)
-