Uploaded image for project: 'Flink'
  1. Flink
  2. FLINK-27622

Make `AsyncDataStream.OutputMode` configurable for table module

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 1.16.0
    • Table SQL / API
    • None
    • It is recommend to set the new option 'table.exec.async-lookup.output-mode' to 'ALLOW_UNORDERED' when no stritctly output order is needed, this will yield significant performance gains on append-only streams
    • Important

    Description

      The `AsyncDataStream.OutputMode` is hardcoded to 'AsyncDataStream.OutputMode.ORDERED' for now:

      //   org.apache.flink.table.planner.plan.nodes.exec.common.CommonExecLookupJoin
      
              // force ORDERED output mode currently, optimize it to UNORDERED
              // when the downstream do not need orderness
              return new AsyncWaitOperatorFactory<>(
                      asyncFunc, asyncTimeout, asyncBufferCapacity, AsyncDataStream.OutputMode.ORDERED);
      

      It should be configurable to users same as the other two async options 'table.exec.async-lookup.buffer-capacity' & 'table.exec.async-lookup.timeout'.

      Also, there must be some plan validation for correctness concern when output mode is unordered(that's the reason I know why not be exposed before).

      Further, we should offer more precisely control for async join operation more than job level config, e.g., an async lookup join hint can do this per-join operation.

      It's the time to get this work!

      Attachments

        Issue Links

          Activity

            People

              lincoln.86xy lincoln lee
              lincoln.86xy lincoln lee
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: