forked from scylladb/seastar
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
io: Adjust IO latency goal on fair-queue level
The IO latency goal is the duration within which all submitted IOs must complete. This duration is used to calculate the token-bucket limit -- the maximum amount of tokens in it -- so that not more than the relevant number of requests get dispatched by the fair-queue. Next, the token-bucket limit is then used by the IO-queue layer to estimate the maximum IO lengths for both reads and writes. And finally, this value can be increased by the reactor configuration code if it "thinks" that the io-properties values are too low to allow even for a single request. Throughout all the associlated maths: io-properties -> latency goal -> token bucket limit -> IO request lengths -- the floating point precision takes place and causes off-by-few errors when the io-properties values are too low. As a result the IO request lengths calculations cannot find the acceptable value, throw, the seastar initialization aborts. Safer approach is to increase the last element in this chain -- the token bucket limit value -- so that it could accomodate at lease some desired request length. After it the IO-queue level can detect that the limit increased, estimate the corresponding latency goal and warn user about auto-increase took place. Rounding errors don't matter here. fixes: scylladb#1135 tests: unit(dev), manual checks of faulty io-properties found so far v2: - set 64k as minimal limit claim Signed-off-by: Pavel Emelyanov <[email protected]> Message-Id: <[email protected]>
- Loading branch information
Showing
5 changed files
with
34 additions
and
15 deletions.
There are no files selected for viewing
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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