executor: fix inl_hash join performance regression because of Iterator4Slice (#38741) #38754
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is an automated cherry-pick of #38741
Signed-off-by: guo-shaoge shaoge1994@163.com
What problem does this PR solve?
Issue Number: close #38695
Problem Summary: For each inner row, each IndexHashJoin worker need to iterate all matched outer row to make join row. And if inner side is big table, the lock contention of
sync.Pool.Get()
will be serious.What is changed and how it works?
Each innerWorker of IndexHashJoin will have its own
rowIter
to iterate outer rows.For HashJoin, each worker will also has its own iterator.
Check List
Tests
Side effects
Documentation
Release note
Please refer to Release Notes Language Style Guide to write a quality release note.