Uh oh!
There was an error while loading. Please reload this page.
ARROW-16713: [C++] Pull join accumulation outside of HashJoinImpl - #13332
Conversation
michalursa
commented
Jun 7, 2022
Looks good to me. I have only a few comments:
|
save-buffer
commented
Jun 7, 2022
|
michalursa
commented
Jun 7, 2022
Re AccumulationQueue: then it becomes just a vector, and maybe doesn't need promoting it to a separate class in a separate file |
westonpace
left a comment
There was a problem hiding this comment.
Looks good. A few minor nits and some questions but otherwise I think this helps clear things up.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
westonpace
commented
Jun 8, 2022
This is true. The only difference I see between the accumulation queue and a vector of batches at the moment is |
save-buffer
commented
Jun 8, 2022
|
westonpace
left a comment
There was a problem hiding this comment.
A few minor nits but this seems ready. Thanks for doing this, it's a good cleanup, above and beyond it's potential utility for spillover. I find this easier to follow than the old implementation.
There was a problem hiding this comment.
It would be nice to get some consistency with how we use int64_t, uint64_t, and size_t within the engine. Do you have any convention suggestions?
There was a problem hiding this comment.
I'd say we should probably be using size_t for most things that are non-negative. That guy on the mailing list had an epic struggle building for 32-bit because we were using int64_t where we should've used size_t.
BTW here I use size_t because that's what std::vector::size() returns.
There was a problem hiding this comment.
I think row_count can never be nagative either, so it should be a size_t. ExecBatch::length should probably be size_t as well.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
save-buffer
commented
Jun 10, 2022
The only failures seem to be with S3FS (unrelated to hash join completely) and the tracing span thingy which is being addressed in #13108 |
westonpace
commented
Jun 10, 2022
I wish I knew why this PR triggers the span thing to flare up. It doesn't seem that any of the code you have is touching spans. I suspect it is something rather subtle. At the moment appveyor passes on other PRs so if I merge this it will break things, even if there is nothing in this PR that is related. I've proposed a solution on #13108 that should work. So hopefully we can get that merged pretty quick. Otherwise we'll have to figure out what change here is causing the span bug to trigger. |
westonpace
left a comment
There was a problem hiding this comment.
Now that the span issue is resolved it seems MSVC is happy so let's merge.
No description provided.