Class TieredStorageResultSubpartitionView
java.lang.Object
org.apache.flink.runtime.io.network.partition.hybrid.tiered.netty.TieredStorageResultSubpartitionView
- All Implemented Interfaces:
ResultSubpartitionView
The
TieredStorageResultSubpartitionView is the implementation of ResultSubpartitionView of TieredResultPartition.-
Nested Class Summary
Nested classes/interfaces inherited from interface org.apache.flink.runtime.io.network.partition.ResultSubpartitionView
ResultSubpartitionView.AvailabilityWithBacklog -
Constructor Summary
ConstructorsConstructorDescriptionTieredStorageResultSubpartitionView(BufferAvailabilityListener availabilityListener, List<NettyPayloadManager> nettyPayloadManagers, List<NettyConnectionId> nettyConnectionIds, List<NettyServiceProducer> serviceProducers) -
Method Summary
Modifier and TypeMethodDescriptionvoidgetAvailabilityAndBacklog(boolean isCreditAvailable) Get the availability and backlog of the view.ResultSubpartitionViewcan decide whether the failure cause should be reported to consumer as failure (primary failure) orProducerFailedException(secondary failure).Returns the nextBufferinstance of this queue iterator.intbooleanvoidvoidnotifyNewBufferSize(int newBufferSize) voidnotifyRequiredSegmentId(int subpartitionId, int segmentId) In tiered storage shuffle mode, only required segments will be sent to prevent the redundant buffer usage.intReturns the index of the subpartition where the next buffer locates, or -1 if there is no buffer available and the subpartition to be consumed is not determined.voidvoidintMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.flink.runtime.io.network.partition.ResultSubpartitionView
notifyPriorityEvent
-
Constructor Details
-
TieredStorageResultSubpartitionView
public TieredStorageResultSubpartitionView(BufferAvailabilityListener availabilityListener, List<NettyPayloadManager> nettyPayloadManagers, List<NettyConnectionId> nettyConnectionIds, List<NettyServiceProducer> serviceProducers)
-
-
Method Details
-
getNextBuffer
Description copied from interface:ResultSubpartitionViewReturns the nextBufferinstance of this queue iterator.If there is currently no instance available, it will return
null. This might happen for example when a pipelined queue producer is slower than the consumer or a spilled queue needs to read in more data.Important: The consumer has to make sure that each buffer instance will eventually be recycled with
Buffer.recycleBuffer()after it has been consumed.- Specified by:
getNextBufferin interfaceResultSubpartitionView- Throws:
IOException
-
getAvailabilityAndBacklog
public ResultSubpartitionView.AvailabilityWithBacklog getAvailabilityAndBacklog(boolean isCreditAvailable) Description copied from interface:ResultSubpartitionViewGet the availability and backlog of the view. The availability represents if the view is ready to get buffer from it. The backlog represents the number of available data buffers.- Specified by:
getAvailabilityAndBacklogin interfaceResultSubpartitionView- Parameters:
isCreditAvailable- the availability of credits for thisResultSubpartitionView.- Returns:
- availability and backlog.
-
notifyRequiredSegmentId
public void notifyRequiredSegmentId(int subpartitionId, int segmentId) Description copied from interface:ResultSubpartitionViewIn tiered storage shuffle mode, only required segments will be sent to prevent the redundant buffer usage. Downstream will notify the upstream by this method to send required segments.- Specified by:
notifyRequiredSegmentIdin interfaceResultSubpartitionView- Parameters:
subpartitionId- The id of the corresponding subpartition.segmentId- The id of required segment.
-
peekNextBufferSubpartitionId
public int peekNextBufferSubpartitionId()Description copied from interface:ResultSubpartitionViewReturns the index of the subpartition where the next buffer locates, or -1 if there is no buffer available and the subpartition to be consumed is not determined.- Specified by:
peekNextBufferSubpartitionIdin interfaceResultSubpartitionView
-
releaseAllResources
- Specified by:
releaseAllResourcesin interfaceResultSubpartitionView- Throws:
IOException
-
isReleased
public boolean isReleased()- Specified by:
isReleasedin interfaceResultSubpartitionView
-
getFailureCause
Description copied from interface:ResultSubpartitionViewResultSubpartitionViewcan decide whether the failure cause should be reported to consumer as failure (primary failure) orProducerFailedException(secondary failure). Secondary failure can be reported only if producer (upstream task) is guaranteed to failover.BEWARE: Incorrectly reporting failure cause as primary failure, can hide the root cause of the failure from the user.
- Specified by:
getFailureCausein interfaceResultSubpartitionView
-
unsynchronizedGetNumberOfQueuedBuffers
public int unsynchronizedGetNumberOfQueuedBuffers()- Specified by:
unsynchronizedGetNumberOfQueuedBuffersin interfaceResultSubpartitionView
-
getNumberOfQueuedBuffers
public int getNumberOfQueuedBuffers()- Specified by:
getNumberOfQueuedBuffersin interfaceResultSubpartitionView
-
notifyDataAvailable
public void notifyDataAvailable()- Specified by:
notifyDataAvailablein interfaceResultSubpartitionView
-
resumeConsumption
public void resumeConsumption()- Specified by:
resumeConsumptionin interfaceResultSubpartitionView
-
acknowledgeAllDataProcessed
public void acknowledgeAllDataProcessed()- Specified by:
acknowledgeAllDataProcessedin interfaceResultSubpartitionView
-
notifyNewBufferSize
public void notifyNewBufferSize(int newBufferSize) - Specified by:
notifyNewBufferSizein interfaceResultSubpartitionView
-