Skip to content
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

io_queue: Maintain per-shard-class stall threshold #1609

Closed

Conversation

xemul
Copy link
Contributor

@xemul xemul commented Apr 11, 2023

This PR is based on top of #1492 and carries its patches on board. Once (if) the latter gets merged, I'll rebase this one. The essence of this PR is the last patch in the series

xemul added 4 commits April 10, 2023 20:00
This value is known by the time disk_config is prepared and can be
assigned per-shard inside allocate_io_queues callback.

Signed-off-by: Pavel Emelyanov <[email protected]>
IO queues expect reactor to poll them at least once every "IO latency
goal". If reactor fails to do it, the disk queues may starve for
concurrency which is not what scheduler expects.

The new metrics would show how may times queues were spend without being
polled _above_ the expected latency goal.

Signed-off-by: Pavel Emelyanov <[email protected]>
Since it's global metrics, it will come in separate section

Signed-off-by: Pavel Emelyanov <[email protected]>
The stall threshold is the duration a request is expected to get
dispatched and executed within. In current model it's expected to be
io-latency-goal value, but it's better to have it configurable.

When the threshold is broken, the report helper is called and the
threshold is doubled. Once in a while the threshold is lowered to
allow for more reports in the future.

Reported is the number of queued requests in the whole queue and
per-class as well as the number of currently executing requests also
both kinds -- in the whole queue and per-class.

fixes: scylladb#1311

Signed-off-by: Pavel Emelyanov <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant