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.
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedReplicasProxy()
-
Method Summary
Modifier and Type Method Description voidfailShardIfNeeded(ShardRouting replica, long primaryTerm, java.lang.String message, java.lang.Exception exception, ActionListener<java.lang.Void> listener)Fail the specified shard if needed, removing it from the current set of active shards.voidmarkShardCopyAsStaleIfNeeded(ShardId shardId, java.lang.String allocationId, long primaryTerm, ActionListener<java.lang.Void> listener)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 primaryTerm, long globalCheckpoint, long maxSeqNoOfUpdatesOrDeletes, ActionListener<ReplicationOperation.ReplicaResponse> listener)Performs the specified request on the specified replica.
-
-
-
Method Detail
-
performOn
public void performOn(ShardRouting replica, ReplicaRequest request, long primaryTerm, long globalCheckpoint, long maxSeqNoOfUpdatesOrDeletes, 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 performprimaryTerm- the primary termglobalCheckpoint- the global checkpoint on the primarymaxSeqNoOfUpdatesOrDeletes- the max seq_no of updates (index operations overwriting Lucene) or deletes on primary after this replication was executed on it.listener- callback for handling the response or failure
-
failShardIfNeeded
public void failShardIfNeeded(ShardRouting replica, long primaryTerm, java.lang.String message, java.lang.Exception exception, ActionListener<java.lang.Void> listener)
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 failprimaryTerm- the primary termmessage- a (short) description of the reasonexception- the original exception which caused the ReplicationOperation to request the shard to be failedlistener- a listener that will be notified when the failing shard has been removed from the in-sync set
-
markShardCopyAsStaleIfNeeded
public void markShardCopyAsStaleIfNeeded(ShardId shardId, java.lang.String allocationId, long primaryTerm, ActionListener<java.lang.Void> listener)
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 idsprimaryTerm- the primary termlistener- a listener that will be notified when the failing shard has been removed from the in-sync set
-
-