-
Notifications
You must be signed in to change notification settings - Fork 34
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: ChunkedArray uses a builder to implement to_canonical #2511
feat: ChunkedArray uses a builder to implement to_canonical #2511
Conversation
CodSpeed Performance ReportMerging #2511 will degrade performances by 19.58%Comparing Summary
Benchmarks breakdown
|
I think we should merge this. One of the regressions seems flaky. I've seen it before on unrelated code. The other one is probably real. I'm not entirely sure the cause, but the profile is dominated by the cost to filter patches when the Mask is 1-ε full. Our implementation for that is not so great. |
The big difference here is that into_builder is a recursive canonicalize, whereas to_canonical only canonicalizes a single level. So before, a Chunked gets cheaply turned into a Struct. Now it does a full recursive decompression. I think it might be benefital to retain the distinction between the two for now? Not sure though... |
Hmm. The benchmark does not use chunked arrays (in develop or in this PR). I am a bit confused how the changes here could possibly have affected it. |
I think the microbenchmark is a red herring. The profiles look very similar, albeit reliably slower on this PR. ChunkedArray does not appear anywhere in the profile. The only difference I've found is that the left parts dictionary is reordered. I don't know why this would cause a slow down though. |
|
blocked by #2514 |
e8c8cad
to
4035433
Compare
Benchmarks: TPC-H on S3Table of Results
|
Benchmarks: TPC-H on NVMETable of Results
|
Benchmarks: compressTable of Results
|
4035433
to
2d57fca
Compare
🧟 |
Benchmarks: Clickbench on NVMETable of Results
|
2d57fca
to
5be2f29
Compare
5be2f29
to
91cf1f9
Compare
eh @danking you wiped the changes I have made to preserve the old behaviour |
91cf1f9
to
5be2f29
Compare
5be2f29
to
21db3bf
Compare
whoops truly a sin that |
I don't understand why the SQL benchmarks aren't running |
maybe now working? |
they're running |
Hmm. It seems to have no macro effect though most microbenchmarks improve. |
that's expected imho at this point. We are mostly bottlenecked on io and datafusion logic |
but this is the last piece of builder canonical migration so would be nice to have it done |
No description provided.