Class CompressedBlockChannelReader
- java.lang.Object
-
- org.apache.flink.table.runtime.io.CompressedBlockChannelReader
-
- All Implemented Interfaces:
org.apache.flink.runtime.io.disk.iomanager.BlockChannelReader<org.apache.flink.core.memory.MemorySegment>
,org.apache.flink.runtime.io.disk.iomanager.FileIOChannel
,org.apache.flink.runtime.io.disk.iomanager.RequestDoneCallback<org.apache.flink.runtime.io.network.buffer.Buffer>
,org.apache.flink.runtime.io.network.buffer.BufferRecycler
public class CompressedBlockChannelReader extends Object implements org.apache.flink.runtime.io.disk.iomanager.BlockChannelReader<org.apache.flink.core.memory.MemorySegment>, org.apache.flink.runtime.io.disk.iomanager.RequestDoneCallback<org.apache.flink.runtime.io.network.buffer.Buffer>, org.apache.flink.runtime.io.network.buffer.BufferRecycler
Compressed block channel reader provides a scenario where MemorySegment must be maintained.
-
-
Constructor Summary
Constructors Constructor Description CompressedBlockChannelReader(org.apache.flink.runtime.io.disk.iomanager.IOManager ioManager, org.apache.flink.runtime.io.disk.iomanager.FileIOChannel.ID channel, LinkedBlockingQueue<org.apache.flink.core.memory.MemorySegment> blockQueue, org.apache.flink.runtime.io.compression.BlockCompressionFactory codecFactory, int preferBlockSize, int segmentSize)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
void
closeAndDelete()
void
deleteChannel()
org.apache.flink.runtime.io.disk.iomanager.FileIOChannel.ID
getChannelID()
org.apache.flink.core.memory.MemorySegment
getNextReturnedBlock()
FileChannel
getNioFileChannel()
LinkedBlockingQueue<org.apache.flink.core.memory.MemorySegment>
getReturnQueue()
long
getSize()
boolean
isClosed()
void
readBlock(org.apache.flink.core.memory.MemorySegment segment)
void
recycle(org.apache.flink.core.memory.MemorySegment segment)
void
requestFailed(org.apache.flink.runtime.io.network.buffer.Buffer buffer, IOException e)
void
requestSuccessful(org.apache.flink.runtime.io.network.buffer.Buffer request)
void
seekToPosition(long position)
-
-
-
Constructor Detail
-
CompressedBlockChannelReader
public CompressedBlockChannelReader(org.apache.flink.runtime.io.disk.iomanager.IOManager ioManager, org.apache.flink.runtime.io.disk.iomanager.FileIOChannel.ID channel, LinkedBlockingQueue<org.apache.flink.core.memory.MemorySegment> blockQueue, org.apache.flink.runtime.io.compression.BlockCompressionFactory codecFactory, int preferBlockSize, int segmentSize) throws IOException
- Throws:
IOException
-
-
Method Detail
-
readBlock
public void readBlock(org.apache.flink.core.memory.MemorySegment segment) throws IOException
- Specified by:
readBlock
in interfaceorg.apache.flink.runtime.io.disk.iomanager.BlockChannelReader<org.apache.flink.core.memory.MemorySegment>
- Throws:
IOException
-
seekToPosition
public void seekToPosition(long position) throws IOException
- Specified by:
seekToPosition
in interfaceorg.apache.flink.runtime.io.disk.iomanager.BlockChannelReader<org.apache.flink.core.memory.MemorySegment>
- Throws:
IOException
-
getNextReturnedBlock
public org.apache.flink.core.memory.MemorySegment getNextReturnedBlock() throws IOException
- Specified by:
getNextReturnedBlock
in interfaceorg.apache.flink.runtime.io.disk.iomanager.BlockChannelReader<org.apache.flink.core.memory.MemorySegment>
- Throws:
IOException
-
getReturnQueue
public LinkedBlockingQueue<org.apache.flink.core.memory.MemorySegment> getReturnQueue()
- Specified by:
getReturnQueue
in interfaceorg.apache.flink.runtime.io.disk.iomanager.BlockChannelReader<org.apache.flink.core.memory.MemorySegment>
-
getChannelID
public org.apache.flink.runtime.io.disk.iomanager.FileIOChannel.ID getChannelID()
- Specified by:
getChannelID
in interfaceorg.apache.flink.runtime.io.disk.iomanager.FileIOChannel
-
getSize
public long getSize() throws IOException
- Specified by:
getSize
in interfaceorg.apache.flink.runtime.io.disk.iomanager.FileIOChannel
- Throws:
IOException
-
isClosed
public boolean isClosed()
- Specified by:
isClosed
in interfaceorg.apache.flink.runtime.io.disk.iomanager.FileIOChannel
-
close
public void close() throws IOException
- Specified by:
close
in interfaceorg.apache.flink.runtime.io.disk.iomanager.FileIOChannel
- Throws:
IOException
-
deleteChannel
public void deleteChannel()
- Specified by:
deleteChannel
in interfaceorg.apache.flink.runtime.io.disk.iomanager.FileIOChannel
-
closeAndDelete
public void closeAndDelete() throws IOException
- Specified by:
closeAndDelete
in interfaceorg.apache.flink.runtime.io.disk.iomanager.FileIOChannel
- Throws:
IOException
-
getNioFileChannel
public FileChannel getNioFileChannel()
- Specified by:
getNioFileChannel
in interfaceorg.apache.flink.runtime.io.disk.iomanager.FileIOChannel
-
requestSuccessful
public void requestSuccessful(org.apache.flink.runtime.io.network.buffer.Buffer request)
- Specified by:
requestSuccessful
in interfaceorg.apache.flink.runtime.io.disk.iomanager.RequestDoneCallback<org.apache.flink.runtime.io.network.buffer.Buffer>
-
requestFailed
public void requestFailed(org.apache.flink.runtime.io.network.buffer.Buffer buffer, IOException e)
- Specified by:
requestFailed
in interfaceorg.apache.flink.runtime.io.disk.iomanager.RequestDoneCallback<org.apache.flink.runtime.io.network.buffer.Buffer>
-
recycle
public void recycle(org.apache.flink.core.memory.MemorySegment segment)
- Specified by:
recycle
in interfaceorg.apache.flink.runtime.io.network.buffer.BufferRecycler
-
-