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>
The ReplicasProxy is an implementation of the Replicas interface that performs the actual ReplicaRequest on 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
    protected ReplicasProxy()  
  • Method Summary

    Modifier and Type Method Description
    void failShardIfNeeded​(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.
    void markShardCopyAsStaleIfNeeded​(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.
    void performOn​(ShardRouting replica, ReplicaRequest request, long primaryTerm, long globalCheckpoint, long maxSeqNoOfUpdatesOrDeletes, ActionListener<ReplicationOperation.ReplicaResponse> listener)
    Performs the specified request on the specified replica.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • ReplicasProxy

      protected ReplicasProxy()
  • Method Details

    • performOn

      public void performOn​(ShardRouting replica, ReplicaRequest request, long primaryTerm, long globalCheckpoint, long maxSeqNoOfUpdatesOrDeletes, ActionListener<ReplicationOperation.ReplicaResponse> listener)
      Description copied from interface: ReplicationOperation.Replicas
      Performs the specified request on the specified replica.
      Specified by:
      performOn in interface ReplicationOperation.Replicas<ReplicaRequest extends ReplicationRequest<ReplicaRequest>>
      Parameters:
      replica - the shard this request should be executed on
      request - the operation to perform
      primaryTerm - the primary term
      globalCheckpoint - the global checkpoint on the primary
      maxSeqNoOfUpdatesOrDeletes - 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.Replicas
      Fail 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:
      failShardIfNeeded in interface ReplicationOperation.Replicas<ReplicaRequest extends ReplicationRequest<ReplicaRequest>>
      Parameters:
      replica - shard to fail
      primaryTerm - the primary term
      message - a (short) description of the reason
      exception - the original exception which caused the ReplicationOperation to request the shard to be failed
      listener - 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.Replicas
      Marks 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:
      markShardCopyAsStaleIfNeeded in interface ReplicationOperation.Replicas<ReplicaRequest extends ReplicationRequest<ReplicaRequest>>
      Parameters:
      shardId - shard id
      allocationId - allocation id to remove from the set of in-sync allocation ids
      primaryTerm - the primary term
      listener - a listener that will be notified when the failing shard has been removed from the in-sync set