Class AckedBatchedClusterStateUpdateTask

java.lang.Object
org.elasticsearch.cluster.AckedBatchedClusterStateUpdateTask
All Implemented Interfaces:
ClusterStateAckListener, ClusterStateTaskListener

public class AckedBatchedClusterStateUpdateTask extends Object implements ClusterStateTaskListener, ClusterStateAckListener
This class models a cluster state update task that notifies an AcknowledgedResponse listener when all the nodes have acknowledged the cluster state update request. It works with batched cluster state updates.
  • Constructor Details

  • Method Details

    • onFailure

      public void onFailure(Exception e)
      Description copied from interface: ClusterStateTaskListener
      A callback for when task execution fails. May receive a NotMasterException if this node stopped being the master before this task was executed or a ProcessClusterEventTimeoutException if the task timed out before it was executed. If the task fails during execution then this method receives the corresponding exception. If the task executes successfully but the resulting cluster state publication fails then this method receives a FailedToCommitClusterStateException. If publication fails then a new master is elected and the update might or might not take effect, depending on whether or not the newly-elected master accepted the published state that failed to be committed.

      Use MasterService.isPublishFailureException(java.lang.Exception) to detect the "expected" master failure cases if needed.

      Implementations of this callback must not throw exceptions: an exception thrown here is logged by the master service at ERROR level and otherwise ignored, except in tests where it raises an AssertionError. If log-and-ignore is the right behaviour then implementations must do so themselves, typically using a more specific logger and at a less dramatic log level.

      Specified by:
      onFailure in interface ClusterStateTaskListener
    • mustAck

      public boolean mustAck(DiscoveryNode discoveryNode)
      Description copied from interface: ClusterStateAckListener
      Called to determine the nodes from which an acknowledgement is expected.

      This method will be called multiple times to determine the set of acking nodes, so it is crucial for it to return consistent results: Given the same listener instance and the same node parameter, the method implementation should return the same result.

      Specified by:
      mustAck in interface ClusterStateAckListener
      Returns:
      true if and only if this task will wait for an ack from the given node.
    • onAllNodesAcked

      public void onAllNodesAcked()
      Description copied from interface: ClusterStateAckListener
      Called once all the selected nodes have acknowledged the cluster state update request. Must be very lightweight execution, since it is executed on the cluster service thread.
      Specified by:
      onAllNodesAcked in interface ClusterStateAckListener
    • onAckFailure

      public void onAckFailure(Exception e)
      Description copied from interface: ClusterStateAckListener
      Called after all the nodes have acknowledged the cluster state update request but at least one of them failed. Must be very lightweight execution, since it is executed on the cluster service thread.
      Specified by:
      onAckFailure in interface ClusterStateAckListener
      Parameters:
      e - exception representing the failure.
    • onAckTimeout

      public void onAckTimeout()
      Description copied from interface: ClusterStateAckListener
      Called if the acknowledgement timeout defined by ClusterStateAckListener.ackTimeout() expires while still waiting for acks.
      Specified by:
      onAckTimeout in interface ClusterStateAckListener
    • ackTimeout

      public TimeValue ackTimeout()
      Specified by:
      ackTimeout in interface ClusterStateAckListener
      Returns:
      acknowledgement timeout, i.e. the maximum time interval to wait for acknowledgements. Return TimeValue.MINUS_ONE if the request should wait indefinitely for acknowledgements.