Module org.elasticsearch.server
Class ShardStateAction
java.lang.Object
org.elasticsearch.cluster.action.shard.ShardStateAction
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
static final record
static class
static class
static class
static class
static final record
-
Field Summary
-
Constructor Summary
ConstructorDescriptionShardStateAction
(ClusterService clusterService, TransportService transportService, AllocationService allocationService, RerouteService rerouteService, ThreadPool threadPool) -
Method Summary
Modifier and TypeMethodDescriptionvoid
Clears outremoteShardStateUpdateDeduplicator
.void
localShardFailed
(ShardRouting shardRouting, String message, Exception failure, ActionListener<Void> listener) Send a shard failed request to the master node to update the cluster state when a shard on the local node failed.void
localShardFailed
(ShardRouting shardRouting, String message, Exception failure, ActionListener<Void> listener, ClusterState currentState) Send a shard failed request to the master node to update the cluster state when a shard on the local node failed.void
remoteShardFailed
(ShardId shardId, String allocationId, long primaryTerm, boolean markAsStale, String message, Exception failure, ActionListener<Void> listener) Send a shard failed request to the master node to update the cluster state with the failure of a shard on another node.void
shardStarted
(ShardRouting shardRouting, long primaryTerm, String message, ShardLongFieldRange timestampRange, ActionListener<Void> listener) void
shardStarted
(ShardRouting shardRouting, long primaryTerm, String message, ShardLongFieldRange timestampRange, ActionListener<Void> listener, ClusterState currentState) protected void
waitForNewMasterAndRetry
(String actionName, ClusterStateObserver observer, TransportRequest request, ActionListener<Void> listener, Predicate<ClusterState> changePredicate)
-
Field Details
-
SHARD_STARTED_ACTION_NAME
- See Also:
-
SHARD_FAILED_ACTION_NAME
- See Also:
-
-
Constructor Details
-
ShardStateAction
@Inject public ShardStateAction(ClusterService clusterService, TransportService transportService, AllocationService allocationService, RerouteService rerouteService, ThreadPool threadPool)
-
-
Method Details
-
remoteShardFailed
public void remoteShardFailed(ShardId shardId, String allocationId, long primaryTerm, boolean markAsStale, String message, @Nullable Exception failure, ActionListener<Void> listener) Send a shard failed request to the master node to update the cluster state with the failure of a shard on another node. This means that the shard should be failed because a write made it into the primary but was not replicated to this shard copy. If the shard does not exist anymore but still has an entry in the in-sync set, remove its allocation id from the in-sync set.- Parameters:
shardId
- shard id of the shard to failallocationId
- allocation id of the shard to failprimaryTerm
- the primary term associated with the primary shard that is failing the shard. Must be strictly positive.markAsStale
- whether or not to mark a failing shard as stale (eg. removing from in-sync set) when failing the shard.message
- the reason for the failurefailure
- the underlying cause of the failurelistener
- callback upon completion of the request
-
clearRemoteShardRequestDeduplicator
public void clearRemoteShardRequestDeduplicator()Clears outremoteShardStateUpdateDeduplicator
. Called byIndicesClusterStateService
in case of a master failover to enable sending fresh requests to the new master right away on master failover. This method is best effort in so far that it might clear out valid requests in edge cases during master failover. This is not an issue functionally and merely results in some unnecessary transport requests. -
localShardFailed
public void localShardFailed(ShardRouting shardRouting, String message, @Nullable Exception failure, ActionListener<Void> listener) Send a shard failed request to the master node to update the cluster state when a shard on the local node failed. -
localShardFailed
public void localShardFailed(ShardRouting shardRouting, String message, @Nullable Exception failure, ActionListener<Void> listener, ClusterState currentState) Send a shard failed request to the master node to update the cluster state when a shard on the local node failed. -
waitForNewMasterAndRetry
protected void waitForNewMasterAndRetry(String actionName, ClusterStateObserver observer, TransportRequest request, ActionListener<Void> listener, Predicate<ClusterState> changePredicate) -
shardStarted
public void shardStarted(ShardRouting shardRouting, long primaryTerm, String message, ShardLongFieldRange timestampRange, ActionListener<Void> listener) -
shardStarted
public void shardStarted(ShardRouting shardRouting, long primaryTerm, String message, ShardLongFieldRange timestampRange, ActionListener<Void> listener, ClusterState currentState)
-