Class BinaryKVExternalMerger

java.lang.Object
org.apache.flink.table.runtime.operators.sort.AbstractBinaryExternalMerger<org.apache.flink.api.java.tuple.Tuple2<org.apache.flink.table.data.binary.BinaryRowData,org.apache.flink.table.data.binary.BinaryRowData>>
org.apache.flink.table.runtime.operators.sort.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.
  • Field Summary

    Fields inherited from class org.apache.flink.table.runtime.operators.sort.AbstractBinaryExternalMerger

    ioManager, pageSize
  • Constructor Summary

    Constructors
    Constructor
    Description
    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 Summary

    Modifier and Type
    Method
    Description
    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)
     
    protected Comparator<org.apache.flink.api.java.tuple.Tuple2<org.apache.flink.table.data.binary.BinaryRowData,org.apache.flink.table.data.binary.BinaryRowData>>
     
    protected List<org.apache.flink.api.java.tuple.Tuple2<org.apache.flink.table.data.binary.BinaryRowData,org.apache.flink.table.data.binary.BinaryRowData>>
     
    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)
    read the merged stream and write the data back.

    Methods inherited from class org.apache.flink.table.runtime.operators.sort.AbstractBinaryExternalMerger

    close, getMergingIterator, mergeChannelList

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • 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 Details

    • 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