Skip to content

[v26.1.x] cloud_io: apply throughput percent on each recompute#30233

Merged
nvartolomei merged 2 commits intoredpanda-data:v26.1.xfrom
vbotbuildovich:backport-pr-30230-v26.1.x-691
Apr 20, 2026
Merged

[v26.1.x] cloud_io: apply throughput percent on each recompute#30233
nvartolomei merged 2 commits intoredpanda-data:v26.1.xfrom
vbotbuildovich:backport-pr-30230-v26.1.x-691

Conversation

@vbotbuildovich
Copy link
Copy Markdown
Collaborator

Backport of PR #30230

`cloud_storage_throughput_limit_percent` is a live setting, but the
device throughput was scaled by the percent once at startup and cached
in `_device_throughput`. Subsequent changes to the percent had no
effect on the disk limit. Additionally, if the percent was zero at
startup, `_device_throughput` stayed unset and flipping the percent
later would not engage disk throttling.

Store the raw device throughput and apply the percent on every
`update_throughput()` call so live changes take effect.

(cherry picked from commit 0fca3af)
Both config bindings (`cloud_storage_max_throughput_per_shard`,
`cloud_storage_throughput_limit_percent`) and `start()` trigger
`update_throughput()`. Since it contains a `co_await` inside
`set_disk_max_bandwidth`, concurrent invocations can interleave and
leave the final throughput reflecting a stale config instead of the
latest.

Serialize with a per-shard mutex so updates run to completion in order.

(cherry picked from commit 1c39724)
@vbotbuildovich vbotbuildovich added this to the v26.1.x-next milestone Apr 20, 2026
@vbotbuildovich vbotbuildovich added the kind/backport PRs targeting a stable branch label Apr 20, 2026
@nvartolomei nvartolomei enabled auto-merge April 20, 2026 15:43
@nvartolomei nvartolomei merged commit 48c6189 into redpanda-data:v26.1.x Apr 20, 2026
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/build area/redpanda kind/backport PRs targeting a stable branch

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants