Class AllocationId

java.lang.Object
org.elasticsearch.cluster.routing.AllocationId
All Implemented Interfaces:
Writeable, org.elasticsearch.common.xcontent.ToXContent, org.elasticsearch.common.xcontent.ToXContentObject

public class AllocationId
extends java.lang.Object
implements org.elasticsearch.common.xcontent.ToXContentObject, Writeable
Uniquely identifies an allocation. An allocation is a shard moving from unassigned to initializing, or relocation.

Relocation is a special case, where the origin shard is relocating with a relocationId and same id, and the target shard (only materialized in RoutingNodes) is initializing with the id set to the origin shard relocationId. Once relocation is done, the new allocation id is set to the relocationId. This is similar behavior to how ShardRouting#currentNodeId is used.

  • Nested Class Summary

    Nested classes/interfaces inherited from interface org.elasticsearch.common.xcontent.ToXContent

    org.elasticsearch.common.xcontent.ToXContent.DelegatingMapParams, org.elasticsearch.common.xcontent.ToXContent.MapParams, org.elasticsearch.common.xcontent.ToXContent.Params

    Nested classes/interfaces inherited from interface org.elasticsearch.common.io.stream.Writeable

    Writeable.Reader<V>, Writeable.Writer<V>
  • Field Summary

    Fields inherited from interface org.elasticsearch.common.xcontent.ToXContent

    EMPTY_PARAMS
  • Method Summary

    Modifier and Type Method Description
    static AllocationId cancelRelocation​(AllocationId allocationId)
    Creates a new allocation id representing a cancelled relocation.
    boolean equals​(java.lang.Object o)  
    static AllocationId finishRelocation​(AllocationId allocationId)
    Creates a new allocation id finalizing a relocation.
    static AllocationId fromXContent​(org.elasticsearch.common.xcontent.XContentParser parser)  
    java.lang.String getId()
    The allocation id uniquely identifying an allocation, note, if it is relocation the getRelocationId() need to be taken into account as well.
    java.lang.String getRelocationId()
    The transient relocation id holding the unique id that is used for relocation.
    int hashCode()  
    static AllocationId newInitializing()
    Creates a new allocation id for initializing allocation.
    static AllocationId newInitializing​(java.lang.String existingAllocationId)
    Creates a new allocation id for initializing allocation based on an existing id.
    static AllocationId newRelocation​(AllocationId allocationId)
    Creates a new allocation id for a shard that moves to be relocated, populating the transient holder for relocationId.
    static AllocationId newTargetRelocation​(AllocationId allocationId)
    Creates a new allocation id for the target initializing shard that is the result of a relocation.
    java.lang.String toString()  
    org.elasticsearch.common.xcontent.XContentBuilder toXContent​(org.elasticsearch.common.xcontent.XContentBuilder builder, org.elasticsearch.common.xcontent.ToXContent.Params params)  
    void writeTo​(StreamOutput out)
    Write this into the StreamOutput.

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait

    Methods inherited from interface org.elasticsearch.common.xcontent.ToXContentObject

    isFragment
  • Method Details

    • writeTo

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

      public static AllocationId newInitializing()
      Creates a new allocation id for initializing allocation.
    • newInitializing

      public static AllocationId newInitializing​(java.lang.String existingAllocationId)
      Creates a new allocation id for initializing allocation based on an existing id.
    • newTargetRelocation

      public static AllocationId newTargetRelocation​(AllocationId allocationId)
      Creates a new allocation id for the target initializing shard that is the result of a relocation.
    • newRelocation

      public static AllocationId newRelocation​(AllocationId allocationId)
      Creates a new allocation id for a shard that moves to be relocated, populating the transient holder for relocationId.
    • cancelRelocation

      public static AllocationId cancelRelocation​(AllocationId allocationId)
      Creates a new allocation id representing a cancelled relocation.

      Note that this is expected to be called on the allocation id of the *source* shard

    • finishRelocation

      public static AllocationId finishRelocation​(AllocationId allocationId)
      Creates a new allocation id finalizing a relocation.

      Note that this is expected to be called on the allocation id of the *target* shard and thus it only needs to clear the relocating id.

    • getId

      public java.lang.String getId()
      The allocation id uniquely identifying an allocation, note, if it is relocation the getRelocationId() need to be taken into account as well.
    • getRelocationId

      public java.lang.String getRelocationId()
      The transient relocation id holding the unique id that is used for relocation.
    • equals

      public boolean equals​(java.lang.Object o)
      Overrides:
      equals in class java.lang.Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class java.lang.Object
    • toString

      public java.lang.String toString()
      Overrides:
      toString in class java.lang.Object
    • toXContent

      public org.elasticsearch.common.xcontent.XContentBuilder toXContent​(org.elasticsearch.common.xcontent.XContentBuilder builder, org.elasticsearch.common.xcontent.ToXContent.Params params) throws java.io.IOException
      Specified by:
      toXContent in interface org.elasticsearch.common.xcontent.ToXContent
      Throws:
      java.io.IOException
    • fromXContent

      public static AllocationId fromXContent​(org.elasticsearch.common.xcontent.XContentParser parser) throws java.io.IOException
      Throws:
      java.io.IOException