Class UnassignedInfo

    • Field Detail

      • DATE_TIME_FORMATTER

        public static final DateFormatter DATE_TIME_FORMATTER
      • INDEX_DELAYED_NODE_LEFT_TIMEOUT_SETTING

        public static final Setting<TimeValue> INDEX_DELAYED_NODE_LEFT_TIMEOUT_SETTING
    • 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. See UnassignedInfo.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,
                              java.util.Set<java.lang.String> failedNodeIds)
        Parameters:
        reason - the cause for making this shard unassigned. See UnassignedInfo.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 calculation
        unassignedTimeMillis - 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
        failedNodeIds - a set of nodeIds that failed to complete allocations for this shard
      • UnassignedInfo

        public UnassignedInfo​(StreamInput in)
                       throws java.io.IOException
        Throws:
        java.io.IOException
    • Method Detail

      • getNumFailedAllocations

        public int getNumFailedAllocations()
        Returns the number of previously failed allocations of this shard.
      • 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 (see isDelayed()) 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 class java.lang.Object
      • 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