Class BinaryKVExternalMerger

  • All Implemented Interfaces:
    Closeable, AutoCloseable

    public class BinaryKVExternalMerger
    extends AbstractBinaryExternalMerger<org.apache.flink.api.java.tuple.Tuple2<org.apache.flink.table.data.binary.BinaryRowData,​org.apache.flink.table.data.binary.BinaryRowData>>
    Key-Value style record merger for sort.
    • Constructor Detail

      • BinaryKVExternalMerger

        public BinaryKVExternalMerger​(org.apache.flink.runtime.io.disk.iomanager.IOManager ioManager,
                                      int pageSize,
                                      int maxFanIn,
                                      SpillChannelManager channelManager,
                                      BinaryRowDataSerializer keySerializer,
                                      BinaryRowDataSerializer valueSerializer,
                                      RecordComparator comparator,
                                      boolean compressionEnabled,
                                      org.apache.flink.runtime.io.compression.BlockCompressionFactory compressionCodecFactory,
                                      int compressionBlockSize)
    • Method Detail

      • mergeReusedEntries

        protected List<org.apache.flink.api.java.tuple.Tuple2<org.apache.flink.table.data.binary.BinaryRowData,​org.apache.flink.table.data.binary.BinaryRowData>> mergeReusedEntries​(int size)
        Specified by:
        mergeReusedEntries in class AbstractBinaryExternalMerger<org.apache.flink.api.java.tuple.Tuple2<org.apache.flink.table.data.binary.BinaryRowData,​org.apache.flink.table.data.binary.BinaryRowData>>
        Returns:
        reused entry object used in merging.
      • channelReaderInputViewIterator

        protected org.apache.flink.util.MutableObjectIterator<org.apache.flink.api.java.tuple.Tuple2<org.apache.flink.table.data.binary.BinaryRowData,​org.apache.flink.table.data.binary.BinaryRowData>> channelReaderInputViewIterator​(org.apache.flink.runtime.io.disk.iomanager.AbstractChannelReaderInputView inView)
        Specified by:
        channelReaderInputViewIterator in class AbstractBinaryExternalMerger<org.apache.flink.api.java.tuple.Tuple2<org.apache.flink.table.data.binary.BinaryRowData,​org.apache.flink.table.data.binary.BinaryRowData>>
        Returns:
        entry iterator reading from inView.
      • mergeComparator

        protected Comparator<org.apache.flink.api.java.tuple.Tuple2<org.apache.flink.table.data.binary.BinaryRowData,​org.apache.flink.table.data.binary.BinaryRowData>> mergeComparator()
        Specified by:
        mergeComparator in class AbstractBinaryExternalMerger<org.apache.flink.api.java.tuple.Tuple2<org.apache.flink.table.data.binary.BinaryRowData,​org.apache.flink.table.data.binary.BinaryRowData>>
        Returns:
        merging comparator used in merging.
      • writeMergingOutput

        protected void writeMergingOutput​(org.apache.flink.util.MutableObjectIterator<org.apache.flink.api.java.tuple.Tuple2<org.apache.flink.table.data.binary.BinaryRowData,​org.apache.flink.table.data.binary.BinaryRowData>> mergeIterator,
                                          org.apache.flink.runtime.memory.AbstractPagedOutputView output)
                                   throws IOException
        Description copied from class: AbstractBinaryExternalMerger
        read the merged stream and write the data back.
        Specified by:
        writeMergingOutput in class AbstractBinaryExternalMerger<org.apache.flink.api.java.tuple.Tuple2<org.apache.flink.table.data.binary.BinaryRowData,​org.apache.flink.table.data.binary.BinaryRowData>>
        Throws:
        IOException