public class BlockingPhysicalFilePool extends PhysicalFilePool
PhysicalFilePool
which may block when polling physical files. This class try
best to reuse a physical file until its size > maxFileSize.PhysicalFilePool.Type
exclusivePhysicalFilePool, maxFileSize, physicalFileCreator, sharedPhysicalFilePoolBySubtask
Constructor and Description |
---|
BlockingPhysicalFilePool(long maxFileSize,
PhysicalFile.PhysicalFileCreator physicalFileCreator) |
Modifier and Type | Method and Description |
---|---|
protected Queue<PhysicalFile> |
createFileQueue()
Create and return a file queue.
|
PhysicalFile |
pollFile(FileMergingSnapshotManager.SubtaskKey subtaskKey,
CheckpointedStateScope scope)
Poll a physical file from the pool.
|
boolean |
tryPutFile(FileMergingSnapshotManager.SubtaskKey subtaskKey,
PhysicalFile physicalFile)
Try to put a physical file into file pool.
|
close, close, getFileQueue, isEmpty
public BlockingPhysicalFilePool(long maxFileSize, PhysicalFile.PhysicalFileCreator physicalFileCreator)
public boolean tryPutFile(FileMergingSnapshotManager.SubtaskKey subtaskKey, PhysicalFile physicalFile) throws IOException
PhysicalFilePool
tryPutFile
in class PhysicalFilePool
subtaskKey
- the key of current subtask.physicalFile
- target physical file.IOException
@Nonnull public PhysicalFile pollFile(FileMergingSnapshotManager.SubtaskKey subtaskKey, CheckpointedStateScope scope) throws IOException
PhysicalFilePool
pollFile
in class PhysicalFilePool
subtaskKey
- the key of current subtask.scope
- the scope of the checkpoint.IOException
protected Queue<PhysicalFile> createFileQueue()
PhysicalFilePool
createFileQueue
in class PhysicalFilePool
Copyright © 2014–2024 The Apache Software Foundation. All rights reserved.