Record Class ResumeInfo

java.lang.Object
java.lang.Record
org.elasticsearch.index.reindex.ResumeInfo
All Implemented Interfaces:
Writeable

public record ResumeInfo(ResumeInfo.RelocationOrigin relocationOrigin, ResumeInfo.WorkerResumeInfo worker, Map<Integer,ResumeInfo.SliceStatus> slices, TaskResult sourceTaskResult) extends Record implements Writeable
Holds resume state information for a BulkByScrollTask task to be resumed from a previous run. It may contain a WorkerResumeInfo which keeps the state for a single worker task, or a map of SliceResumeInfo which keeps the state for each slice of a leader task. It also has information about the original task that was relocated, so the user-facing taskID and start time are preserved in listings. But the RelocationOrigin isn't accurate for sliced tasks, they have themselves as the origin, but for listing the leader is correct.

Note: For sliced tasks, resume info must include all slices, including those that are already completed. This ensures that the final task has a complete result from all slices. A task may be resumed multiple times, so information for completed slices must be carried forward to each subsequent resume until the task is fully completed.

TODO: we can use List instead of Map for since the keys are required to be 0-based and contiguous.

  • Constructor Details

  • Method Details

    • writeTo

      public void writeTo(StreamOutput out) throws IOException
      Description copied from interface: Writeable
      Write this into the StreamOutput.
      Specified by:
      writeTo in interface Writeable
      Throws:
      IOException
    • getTotalSlices

      public int getTotalSlices()
    • getWorker

    • getSlice

      public Optional<ResumeInfo.SliceStatus> getSlice(int sliceId)
    • isSliceCompleted

      public boolean isSliceCompleted(int sliceId)
    • toString

      public final String toString()
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      Specified by:
      toString in class Record
      Returns:
      a string representation of this object
    • hashCode

      public final int hashCode()
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      Specified by:
      hashCode in class Record
      Returns:
      a hash code value for this object
    • equals

      public final boolean equals(Object o)
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      Specified by:
      equals in class Record
      Parameters:
      o - the object with which to compare
      Returns:
      true if this object is the same as the o argument; false otherwise.
    • relocationOrigin

      public ResumeInfo.RelocationOrigin relocationOrigin()
      Returns the value of the relocationOrigin record component.
      Returns:
      the value of the relocationOrigin record component
    • worker

      Returns the value of the worker record component.
      Returns:
      the value of the worker record component
    • slices

      Returns the value of the slices record component.
      Returns:
      the value of the slices record component
    • sourceTaskResult

      @Nullable public TaskResult sourceTaskResult()
      Returns the value of the sourceTaskResult record component.
      Returns:
      the value of the sourceTaskResult record component