Is your feature request related to a problem or challenge?
Right now, LeftSemi consumes the entire probe side before emitting any output rows. This isn't fundamental: we could check which probe row flips the visited bitmap from 0 -> 1, and arrange for the output row to be produced at that point. This would enable better pipeline parallelism.
It would probably also improve partitioning behavior: LeftSemi + CollectLeft emits everything in a single output partition today, which isn't great.
Would need to check if this needs stronger memory ordering requirements when flipping bits than we can get away with today.
Describe the solution you'd like
No response
Describe alternatives you've considered
No response
Additional context
No response
Is your feature request related to a problem or challenge?
Right now,
LeftSemiconsumes the entire probe side before emitting any output rows. This isn't fundamental: we could check which probe row flips the visited bitmap from 0 -> 1, and arrange for the output row to be produced at that point. This would enable better pipeline parallelism.It would probably also improve partitioning behavior:
LeftSemi+CollectLeftemits everything in a single output partition today, which isn't great.Would need to check if this needs stronger memory ordering requirements when flipping bits than we can get away with today.
Describe the solution you'd like
No response
Describe alternatives you've considered
No response
Additional context
No response