java.lang.Object
org.apache.hadoop.hdfs.protocol.datatransfer.PipelineAck

@Private @Evolving public class PipelineAck extends Object
Pipeline Acknowledgment
  • Field Details

  • Constructor Details

    • PipelineAck

      public PipelineAck()
      default constructor
    • PipelineAck

      public PipelineAck(long seqno, int[] replies)
      Constructor assuming no next DN in pipeline
      Parameters:
      seqno - sequence number
      replies - an array of replies
    • PipelineAck

      public PipelineAck(long seqno, int[] replies, long downstreamAckTimeNanos)
      Constructor
      Parameters:
      seqno - sequence number
      replies - an array of replies
      downstreamAckTimeNanos - ack RTT in nanoseconds, 0 if no next DN in pipeline
  • Method Details

    • getSeqno

      public long getSeqno()
      Get the sequence number
      Returns:
      the sequence number
    • getNumOfReplies

      public short getNumOfReplies()
      Get the number of replies
      Returns:
      the number of replies
    • getHeaderFlag

      public int getHeaderFlag(int i)
      get the header flag of ith reply
    • getFlag

      public int getFlag(int i)
    • getDownstreamAckTimeNanos

      public long getDownstreamAckTimeNanos()
      Get the time elapsed for downstream ack RTT in nanoseconds
      Returns:
      time elapsed for downstream ack in nanoseconds, 0 if no next DN in pipeline
    • isSuccess

      public boolean isSuccess()
      Check if this ack contains error status
      Returns:
      true if all statuses are SUCCESS
    • getOOBStatus

      public org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.Status getOOBStatus()
      Returns the OOB status if this ack contains one.
      Returns:
      null if it is not an OOB ack.
    • getRestartOOBStatus

      public static org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.Status getRestartOOBStatus()
      Get the Restart OOB ack status
    • isRestartOOBStatus

      public static boolean isRestartOOBStatus(org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.Status st)
      return true if it is the restart OOB status code
    • readFields

      public void readFields(InputStream in) throws IOException
      Writable interface
      Throws:
      IOException
    • write

      public void write(OutputStream out) throws IOException
      Throws:
      IOException
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getStatusFromHeader

      public static org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.Status getStatusFromHeader(int header)
    • getECNFromHeader

      public static PipelineAck.ECN getECNFromHeader(int header)
    • getSLOWFromHeader

      public static PipelineAck.SLOW getSLOWFromHeader(int header)
    • setStatusForHeader

      public static int setStatusForHeader(int old, org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.Status status)
    • setSLOWForHeader

      @VisibleForTesting public static int setSLOWForHeader(int old, PipelineAck.SLOW slow)
    • combineHeader

      public static int combineHeader(PipelineAck.ECN ecn, org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.Status status)
    • combineHeader

      public static int combineHeader(PipelineAck.ECN ecn, org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.Status status, PipelineAck.SLOW slow)