Class UnassignedInfo
- java.lang.Object
-
- org.elasticsearch.cluster.routing.UnassignedInfo
-
- All Implemented Interfaces:
Writeable
,ToXContent
,ToXContentFragment
public final class UnassignedInfo extends java.lang.Object implements ToXContentFragment, Writeable
Holds additional information as to why the shard is in unassigned state.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
UnassignedInfo.AllocationStatus
Captures the status of an unsuccessful allocation attempt for the shard, causing it to remain in the unassigned state.static class
UnassignedInfo.Reason
Reason why the shard is in unassigned state.-
Nested classes/interfaces inherited from interface org.elasticsearch.common.xcontent.ToXContent
ToXContent.DelegatingMapParams, ToXContent.MapParams, ToXContent.Params
-
Nested classes/interfaces inherited from interface org.elasticsearch.common.io.stream.Writeable
Writeable.Reader<V>, Writeable.Writer<V>
-
-
Field Summary
Fields Modifier and Type Field Description static DateFormatter
DATE_TIME_FORMATTER
static Setting<TimeValue>
INDEX_DELAYED_NODE_LEFT_TIMEOUT_SETTING
-
Fields inherited from interface org.elasticsearch.common.xcontent.ToXContent
EMPTY_PARAMS
-
-
Constructor Summary
Constructors Constructor Description UnassignedInfo(UnassignedInfo.Reason reason, java.lang.String message)
creates an UnassignedInfo object based on **current** timeUnassignedInfo(UnassignedInfo.Reason reason, java.lang.String message, java.lang.Exception failure, int failedAllocations, long unassignedTimeNanos, long unassignedTimeMillis, boolean delayed, UnassignedInfo.AllocationStatus lastAllocationStatus)
UnassignedInfo(StreamInput in)
-
Method Summary
Modifier and Type Method Description boolean
equals(java.lang.Object o)
static long
findNextDelayedAllocation(long currentNanoTime, ClusterState state)
Finds the next (closest) delay expiration of an delayed shard in nanoseconds based on current time.java.lang.String
getDetails()
Builds a string representation of the message and the failure if exists.java.lang.Exception
getFailure()
Returns additional failure exception details if exists.UnassignedInfo.AllocationStatus
getLastAllocationStatus()
Get the status for the last allocation attempt for this shard.java.lang.String
getMessage()
Returns optional details explaining the reasons.static int
getNumberOfDelayedUnassigned(ClusterState state)
Returns the number of shards that are unassigned and currently being delayed.int
getNumFailedAllocations()
Returns the number of previously failed allocations of this shard.UnassignedInfo.Reason
getReason()
The reason why the shard is unassigned.long
getRemainingDelay(long nanoTimeNow, Settings indexSettings)
Calculates the delay left based on current time (in nanoseconds) and the delay defined by the index settings.long
getUnassignedTimeInMillis()
The timestamp in milliseconds when the shard became unassigned, based on System.currentTimeMillis().long
getUnassignedTimeInNanos()
The timestamp in nanoseconds when the shard became unassigned, based on System.nanoTime().int
hashCode()
boolean
isDelayed()
Returns true if allocation of this shard is delayed due toINDEX_DELAYED_NODE_LEFT_TIMEOUT_SETTING
UnassignedInfo
readFrom(StreamInput in)
java.lang.String
shortSummary()
java.lang.String
toString()
XContentBuilder
toXContent(XContentBuilder builder, 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.ToXContentFragment
isFragment
-
-
-
-
Field Detail
-
DATE_TIME_FORMATTER
public static final DateFormatter DATE_TIME_FORMATTER
-
-
Constructor Detail
-
UnassignedInfo
public UnassignedInfo(UnassignedInfo.Reason reason, java.lang.String message)
creates an UnassignedInfo object based on **current** time- Parameters:
reason
- the cause for making this shard unassigned. SeeUnassignedInfo.Reason
for more information.message
- more information about cause.
-
UnassignedInfo
public UnassignedInfo(UnassignedInfo.Reason reason, @Nullable java.lang.String message, @Nullable java.lang.Exception failure, int failedAllocations, long unassignedTimeNanos, long unassignedTimeMillis, boolean delayed, UnassignedInfo.AllocationStatus lastAllocationStatus)
- Parameters:
reason
- the cause for making this shard unassigned. SeeUnassignedInfo.Reason
for more information.message
- more information about cause.failure
- the shard level failure that caused this shard to be unassigned, if exists.unassignedTimeNanos
- the time to use as the base for any delayed re-assignment calculationunassignedTimeMillis
- the time of unassignment used to display to in our reporting.delayed
- if allocation of this shard is delayed due to INDEX_DELAYED_NODE_LEFT_TIMEOUT_SETTING.lastAllocationStatus
- the result of the last allocation attempt for this shard
-
UnassignedInfo
public UnassignedInfo(StreamInput in) throws java.io.IOException
- Throws:
java.io.IOException
-
-
Method Detail
-
writeTo
public void writeTo(StreamOutput out) throws java.io.IOException
Description copied from interface:Writeable
Write this into the StreamOutput.
-
readFrom
public UnassignedInfo readFrom(StreamInput in) throws java.io.IOException
- Throws:
java.io.IOException
-
getNumFailedAllocations
public int getNumFailedAllocations()
Returns the number of previously failed allocations of this shard.
-
isDelayed
public boolean isDelayed()
Returns true if allocation of this shard is delayed due toINDEX_DELAYED_NODE_LEFT_TIMEOUT_SETTING
-
getReason
public UnassignedInfo.Reason getReason()
The reason why the shard is unassigned.
-
getUnassignedTimeInMillis
public long getUnassignedTimeInMillis()
The timestamp in milliseconds when the shard became unassigned, based on System.currentTimeMillis(). Note, we use timestamp here since we want to make sure its preserved across node serializations.
-
getUnassignedTimeInNanos
public long getUnassignedTimeInNanos()
The timestamp in nanoseconds when the shard became unassigned, based on System.nanoTime(). Used to calculate the delay for delayed shard allocation. ONLY EXPOSED FOR TESTS!
-
getMessage
@Nullable public java.lang.String getMessage()
Returns optional details explaining the reasons.
-
getFailure
@Nullable public java.lang.Exception getFailure()
Returns additional failure exception details if exists.
-
getDetails
@Nullable public java.lang.String getDetails()
Builds a string representation of the message and the failure if exists.
-
getLastAllocationStatus
public UnassignedInfo.AllocationStatus getLastAllocationStatus()
Get the status for the last allocation attempt for this shard.
-
getRemainingDelay
public long getRemainingDelay(long nanoTimeNow, Settings indexSettings)
Calculates the delay left based on current time (in nanoseconds) and the delay defined by the index settings. Only relevant if shard is effectively delayed (seeisDelayed()
) Returns 0 if delay is negative- Returns:
- calculated delay in nanoseconds
-
getNumberOfDelayedUnassigned
public static int getNumberOfDelayedUnassigned(ClusterState state)
Returns the number of shards that are unassigned and currently being delayed.
-
findNextDelayedAllocation
public static long findNextDelayedAllocation(long currentNanoTime, ClusterState state)
Finds the next (closest) delay expiration of an delayed shard in nanoseconds based on current time. Returns 0 if delay is negative. Returns -1 if no delayed shard is found.
-
shortSummary
public java.lang.String shortSummary()
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
toXContent
public XContentBuilder toXContent(XContentBuilder builder, ToXContent.Params params) throws java.io.IOException
- Specified by:
toXContent
in interfaceToXContent
- Throws:
java.io.IOException
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
-