Start byte-based backpressure earlier #1179
Merged
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 PR implements a suggestion from RFD 445 of having byte-based backpressure start earlier (see the section titled Whither latency?).
It also caps the max byte-based backpressure, so that we'd timeout sooner if a Downstairs goes away during a large-write workload (see Problematic Bytes-In-Flight Delay)
Previously, the system stabilized at about 1.8 GiB of in-flight data. With the tuning in this PR, it stabilizes at around 500-600 MiB instead. This means that when we switch from writes to reads, we doesn't need to wait as long!
I see no performance impacts. For reference, here's a quick
fio
test run:This is roughly the same as numbers from
main
here.(#1167 remains unaddressed by these changes)