Class NettyPartitionRequestClient

java.lang.Object
org.apache.flink.runtime.io.network.netty.NettyPartitionRequestClient
All Implemented Interfaces:
PartitionRequestClient

public class NettyPartitionRequestClient extends Object implements PartitionRequestClient
Partition request client for remote partition requests.

This client is shared by all remote input channels, which request a partition from the same ConnectionID.

  • Method Details

    • requestSubpartition

      public void requestSubpartition(ResultPartitionID partitionId, ResultSubpartitionIndexSet subpartitionIndexSet, RemoteInputChannel inputChannel, int delayMs) throws IOException
      Requests a remote intermediate result partition queue.

      The request goes to the remote producer, for which this partition request client instance has been created.

      Specified by:
      requestSubpartition in interface PartitionRequestClient
      Parameters:
      partitionId - The identifier of result partition to be requested.
      subpartitionIndexSet - The sub partition index range in the requested result partition.
      inputChannel - The remote input channel for requesting the sub partition.
      delayMs - The request is scheduled within a delay time.
      Throws:
      IOException
    • sendTaskEvent

      public void sendTaskEvent(ResultPartitionID partitionId, TaskEvent event, RemoteInputChannel inputChannel) throws IOException
      Sends a task event backwards to an intermediate result partition producer.

      Backwards task events flow between readers and writers and therefore will only work when both are running at the same time, which is only guaranteed to be the case when both the respective producer and consumer task run pipelined.

      Specified by:
      sendTaskEvent in interface PartitionRequestClient
      Parameters:
      partitionId - The identifier of result partition.
      event - The task event to be sent.
      inputChannel - The remote input channel for sending this event.
      Throws:
      IOException
    • notifyCreditAvailable

      public void notifyCreditAvailable(RemoteInputChannel inputChannel)
      Description copied from interface: PartitionRequestClient
      Notifies available credits from one remote input channel.
      Specified by:
      notifyCreditAvailable in interface PartitionRequestClient
      Parameters:
      inputChannel - The remote input channel who announces the available credits.
    • notifyNewBufferSize

      public void notifyNewBufferSize(RemoteInputChannel inputChannel, int bufferSize)
      Description copied from interface: PartitionRequestClient
      Notifies new buffer size from one remote input channel.
      Specified by:
      notifyNewBufferSize in interface PartitionRequestClient
      Parameters:
      inputChannel - The remote input channel who announces the new buffer size.
      bufferSize - The new buffer size.
    • notifyRequiredSegmentId

      public void notifyRequiredSegmentId(RemoteInputChannel inputChannel, int subpartitionIndex, int segmentId)
      Description copied from interface: PartitionRequestClient
      Notifies the id of segment required from one remote input channel.
      Specified by:
      notifyRequiredSegmentId in interface PartitionRequestClient
      Parameters:
      inputChannel - The remote input channel who requires segment.
      subpartitionIndex - The id of the corresponding subpartition.
      segmentId - The id of segment.
    • resumeConsumption

      public void resumeConsumption(RemoteInputChannel inputChannel)
      Description copied from interface: PartitionRequestClient
      Requests to resume data consumption from one remote input channel.
      Specified by:
      resumeConsumption in interface PartitionRequestClient
      Parameters:
      inputChannel - The remote input channel who is ready to resume data consumption.
    • acknowledgeAllRecordsProcessed

      public void acknowledgeAllRecordsProcessed(RemoteInputChannel inputChannel)
      Description copied from interface: PartitionRequestClient
      Acknowledges all user records are processed for this channel.
      Specified by:
      acknowledgeAllRecordsProcessed in interface PartitionRequestClient
      Parameters:
      inputChannel - The input channel to resume data consumption.
    • close

      public void close(RemoteInputChannel inputChannel) throws IOException
      Description copied from interface: PartitionRequestClient
      Cancels the partition request for the given remote input channel and removes this client from factory if it is not referenced by any other input channels.
      Specified by:
      close in interface PartitionRequestClient
      Parameters:
      inputChannel - The remote input channel for canceling partition and to be removed from network stack.
      Throws:
      IOException
    • closeConnection

      public void closeConnection()