Interface InputSelectable

  • All Known Implementing Classes:
    BatchCoBroadcastWithNonKeyedOperator, BatchMultipleInputStreamOperator, EmbeddedPythonBatchCoBroadcastProcessOperator, ExternalPythonBatchCoBroadcastProcessOperator, FusionStreamOperatorBase, HashJoinOperator

    @PublicEvolving
    public interface InputSelectable
    Interface for stream operators that can select the input to get StreamRecord.

    IMPORTANT: This interface is a loose contract. The runtime may read multiple records continuously before calling nextSelection() again to determine whether to change the input to be read. That is, it is not guaranteed that nextSelection() will be called immediately after the operator has processed a record and the reading input will be changed according to InputSelection returned. This means that the operator may receive some data that it does not currently want to process. Therefore, if an operator needs a strict convention, it must cache the unexpected data itself and handle them correctly.

    This interface also makes the following conventions:

    1. The runtime must call nextSelection() to determine the input to read the first record.
    2. When the input being read reaches the end, the runtime must call nextSelection() to determine the next input to be read.
    • Method Detail

      • nextSelection

        InputSelection nextSelection()
        Returns the next InputSelection that wants to get the record. This method is guaranteed to not be called concurrently with other methods of the operator.