Class PartitionedFileWriter
java.lang.Object
org.apache.flink.runtime.io.network.partition.PartitionedFileWriter
- All Implemented Interfaces:
AutoCloseable
File writer which can write buffers and generate
PartitionedFile. Data is written region
by region. Before writing a new region, the method startNewRegion(boolean)
must be called. After writing all data, the method finish() must be
called to close all opened files and return the target PartitionedFile.-
Constructor Summary
ConstructorsConstructorDescriptionPartitionedFileWriter(int numSubpartitions, int maxIndexBufferSize, String basePath, int[] writeOrder) -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()finish()Finishes writing thePartitionedFilewhich closes the file channel and returns the correspondingPartitionedFile.voidUsed to close and delete the failedPartitionedFilewhen any exception occurs.voidstartNewRegion(boolean isBroadcastRegion) Persists the region index of the current data region and starts a new region to write.voidwriteBuffers(List<BufferWithSubpartition> bufferWithSubpartitions) Writes a list ofBuffers to thisPartitionedFile.
-
Constructor Details
-
PartitionedFileWriter
public PartitionedFileWriter(int numSubpartitions, int maxIndexBufferSize, String basePath, int[] writeOrder) throws IOException - Throws:
IOException
-
-
Method Details
-
startNewRegion
Persists the region index of the current data region and starts a new region to write.Note: The caller is responsible for releasing the failed
PartitionedFileif any exception occurs.- Parameters:
isBroadcastRegion- Whether it's a broadcast region. SeeisBroadcastRegion.- Throws:
IOException
-
writeBuffers
Writes a list ofBuffers to thisPartitionedFile. It guarantees that after the return of this method, the target buffers can be released. In a data region, all data of the same subpartition must be written together.Note: The caller is responsible for recycling the target buffers and releasing the failed
PartitionedFileif any exception occurs.- Throws:
IOException
-
finish
Finishes writing thePartitionedFilewhich closes the file channel and returns the correspondingPartitionedFile.Note: The caller is responsible for releasing the failed
PartitionedFileif any exception occurs.- Throws:
IOException
-
releaseQuietly
public void releaseQuietly()Used to close and delete the failedPartitionedFilewhen any exception occurs. -
close
- Specified by:
closein interfaceAutoCloseable- Throws:
IOException
-