Class TransportReplicationAction.ReplicasProxy
- java.lang.Object
-
- org.elasticsearch.action.support.replication.TransportReplicationAction.ReplicasProxy
-
- All Implemented Interfaces:
ReplicationOperation.Replicas<ReplicaRequest>
- Enclosing class:
- TransportReplicationAction<Request extends ReplicationRequest<Request>,ReplicaRequest extends ReplicationRequest<ReplicaRequest>,Response extends ReplicationResponse>
protected class TransportReplicationAction.ReplicasProxy extends java.lang.Object implements ReplicationOperation.Replicas<ReplicaRequest>
TheReplicasProxyis an implementation of theReplicasinterface that performs the actualReplicaRequeston the replica shards. It also encapsulates the logic required for failing the replica if deemed necessary as well as marking it as stale when needed.
-
-
Field Summary
Fields Modifier and Type Field Description protected longprimaryTerm
-
Constructor Summary
Constructors Constructor Description ReplicasProxy(long primaryTerm)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected ShardStateAction.ListenercreateShardActionListener(java.lang.Runnable onSuccess, java.util.function.Consumer<java.lang.Exception> onPrimaryDemoted, java.util.function.Consumer<java.lang.Exception> onIgnoredFailure)voidfailShardIfNeeded(ShardRouting replica, java.lang.String message, java.lang.Exception exception, java.lang.Runnable onSuccess, java.util.function.Consumer<java.lang.Exception> onPrimaryDemoted, java.util.function.Consumer<java.lang.Exception> onIgnoredFailure)Fail the specified shard if needed, removing it from the current set of active shards.voidmarkShardCopyAsStaleIfNeeded(ShardId shardId, java.lang.String allocationId, java.lang.Runnable onSuccess, java.util.function.Consumer<java.lang.Exception> onPrimaryDemoted, java.util.function.Consumer<java.lang.Exception> onIgnoredFailure)Marks shard copy as stale if needed, removing its allocation id from the set of in-sync allocation ids.voidperformOn(ShardRouting replica, ReplicaRequest request, long globalCheckpoint, ActionListener<ReplicationOperation.ReplicaResponse> listener)Performs the specified request on the specified replica.
-
-
-
Method Detail
-
performOn
public void performOn(ShardRouting replica, ReplicaRequest request, long globalCheckpoint, ActionListener<ReplicationOperation.ReplicaResponse> listener)
Description copied from interface:ReplicationOperation.ReplicasPerforms the specified request on the specified replica.- Specified by:
performOnin interfaceReplicationOperation.Replicas<ReplicaRequest extends ReplicationRequest<ReplicaRequest>>- Parameters:
replica- the shard this request should be executed onrequest- the operation to performglobalCheckpoint- the global checkpoint on the primarylistener- callback for handling the response or failure
-
failShardIfNeeded
public void failShardIfNeeded(ShardRouting replica, java.lang.String message, java.lang.Exception exception, java.lang.Runnable onSuccess, java.util.function.Consumer<java.lang.Exception> onPrimaryDemoted, java.util.function.Consumer<java.lang.Exception> onIgnoredFailure)
Description copied from interface:ReplicationOperation.ReplicasFail the specified shard if needed, removing it from the current set of active shards. Whether a failure is needed is left up to the implementation.- Specified by:
failShardIfNeededin interfaceReplicationOperation.Replicas<ReplicaRequest extends ReplicationRequest<ReplicaRequest>>- Parameters:
replica- shard to failmessage- a (short) description of the reasonexception- the original exception which caused the ReplicationOperation to request the shard to be failedonSuccess- a callback to call when the shard has been successfully removed from the active set.onPrimaryDemoted- a callback to call when the shard can not be failed because the current primary has been demoted by the master.onIgnoredFailure- a callback to call when failing a shard has failed, but it that failure can be safely ignored and the
-
markShardCopyAsStaleIfNeeded
public void markShardCopyAsStaleIfNeeded(ShardId shardId, java.lang.String allocationId, java.lang.Runnable onSuccess, java.util.function.Consumer<java.lang.Exception> onPrimaryDemoted, java.util.function.Consumer<java.lang.Exception> onIgnoredFailure)
Description copied from interface:ReplicationOperation.ReplicasMarks shard copy as stale if needed, removing its allocation id from the set of in-sync allocation ids. Whether marking as stale is needed is left up to the implementation.- Specified by:
markShardCopyAsStaleIfNeededin interfaceReplicationOperation.Replicas<ReplicaRequest extends ReplicationRequest<ReplicaRequest>>- Parameters:
shardId- shard idallocationId- allocation id to remove from the set of in-sync allocation idsonSuccess- a callback to call when the allocation id has been successfully removed from the in-sync set.onPrimaryDemoted- a callback to call when the request failed because the current primary was already demoted by the master.onIgnoredFailure- a callback to call when the request failed, but the failure can be safely ignored.
-
createShardActionListener
protected final ShardStateAction.Listener createShardActionListener(java.lang.Runnable onSuccess, java.util.function.Consumer<java.lang.Exception> onPrimaryDemoted, java.util.function.Consumer<java.lang.Exception> onIgnoredFailure)
-
-