-
Notifications
You must be signed in to change notification settings - Fork 593
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
Some oversized alloc high partition count improvements #24578
base: dev
Are you sure you want to change the base?
Conversation
Retry command for Build#59797please wait until all jobs are finished before running the slash command
|
CI test resultstest results on build#59797
test results on build#59908
test results on build#59952
|
src/v/kafka/server/handlers/fetch.h
Outdated
: fetches_per_shard() { | ||
fetches_per_shard.reserve(shards); | ||
for (size_t i = 0; i < shards; i++) { | ||
auto& fps = fetches_per_shard.emplace_back(start_time); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
IMO it's better to just change the shard_fetch
ctor to take time & shard now, and then you can pass them both to emplace and void this weird thing where we fill in the shard after (should be no slower, may be faster). Then we don't leave shard uninit any more which is good.
I believe it was me who did it like this, mostly just to avail myself of the "n copies" constructor but we aren't using that any more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(approving though so feel free to ignore)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
/ci-repeat 1 |
721745d
to
bd30a74
Compare
For super high partition topics at high partition density these can lead to oversized allocs due to the use of `absl::flat_hash_map`. Switch to chunked_hash_map.
`ntp_fetch_config` is 250 bytes. When doing super wide reads of 500-1000k partitions (quite niche) this goes above the oversized alloc threshold. Switch to chunked_vector. Switch responses too for uniformity.
bd30a74
to
ff22b10
Compare
Retry command for Build#59952please wait until all jobs are finished before running the slash command
|
Address some oversized alloc in niche cases like super wide reads and super large topics.
Backports Required
Release Notes