Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
The doc on
make_morselssaid sixteen morsels a worker gave nothing back over eight. That was measured before #781, whilesubmitwas losing a worker to a lost wakeup, and a query running on seven hands when it asked for eight is not measuring how well eight of them balance. So I measured it again.Thirty two a worker wins, on gamingpc under WSL, eight paired alternating runs of two separately built binaries. The expand query goes 1.03 ms to 0.93 at eight workers, faster in seven of the eight pairs, and its scaling 5.4x to 5.9x. The scan query beside it goes 0.62 ms to 0.60. The groupby bench agrees at eight workers over three runs apiece: 28.3 ms to 26.6 on the hundred thousand group shape, 8.4 to 7.2 on the twelve group one, 32.5 to 27.9 on the string key.
What is more interesting is that the one worker times moved with them, the scan by five percent in eight pairs of eight. One worker has no tail and nothing to contend over, so the shorter morsel is not only buying balance. A morsel is a pass over its rows by every operator above the scan in turn, and a shorter one is a pass whose rows are still in cache when the next operator asks for them. Thirty two of them at ten million rows and eight workers is about forty thousand rows a morsel, which is where that starts to tell. What pays for it is one
fetch_adda morsel against work that runs tens of microseconds, so the claim traffic does not notice.Numbers and the reason the old note was wrong are in
bench/budgets.tomlunderexec_scale_8x.Local: zu-exec 131 tests green, clippy clean, fmt clean.