-
Notifications
You must be signed in to change notification settings - Fork 263
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
Make reaper workloads modifiable #985
Merged
kazu-yamamoto
merged 1 commit into
yesodweb:master
from
FinleyMcIlwaine:finley/modifiable-workload
Apr 27, 2024
Merged
Make reaper workloads modifiable #985
kazu-yamamoto
merged 1 commit into
yesodweb:master
from
FinleyMcIlwaine:finley/modifiable-workload
Apr 27, 2024
Conversation
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
FinleyMcIlwaine
added a commit
to FinleyMcIlwaine/wai
that referenced
this pull request
Apr 26, 2024
`cancel` used to mark the given `Handle` as `Canceled`, which relied on the reaper to run and clean up the `Canceled` handles. This is not good for long timeouts when many streams are opened, as a lot of `Canceled` handles build up in the reaper's workload. This commit uses the reaper's new `reaperModify` API to immediately remove the given `Handle` in `cancel`. This obsoletes the `Canceled` constructor of `State`, so we remove that as well. We update the auto-update, time-manager, and http2 dependencies of warp to include the new changes as well. The related auto-update changes are in PR yesodweb#985.
2 tasks
FinleyMcIlwaine
added a commit
to FinleyMcIlwaine/wai
that referenced
this pull request
Apr 26, 2024
`cancel` used to mark the given `Handle` as `Canceled`, which relied on the reaper to run and clean up the `Canceled` handles. This is not good for long timeouts when many streams are opened, as a lot of `Canceled` handles build up in the reaper's workload. This commit uses the reaper's new `reaperModify` API to immediately remove the given `Handle` in `cancel`. This obsoletes the `Canceled` constructor of `State`, so we remove that as well. We update the auto-update, time-manager, and http2 dependencies of warp to include the new changes as well. The related auto-update changes are in PR yesodweb#985.
FinleyMcIlwaine
added a commit
to FinleyMcIlwaine/wai
that referenced
this pull request
Apr 26, 2024
`cancel` used to mark the given `Handle` as `Canceled`, which relied on the reaper to run and clean up the `Canceled` handles. This is not good for long timeouts when many streams are opened, as a lot of `Canceled` handles build up in the reaper's workload. This commit uses the reaper's new `reaperModify` API to immediately remove the given `Handle` in `cancel`. This obsoletes the `Canceled` constructor of `State`, so we remove that as well. We update the auto-update and time-manager dependencies of warp to include the new changes as well. The related auto-update changes are in PR yesodweb#985.
FinleyMcIlwaine
added a commit
to FinleyMcIlwaine/wai
that referenced
this pull request
Apr 26, 2024
`cancel` used to mark the given `Handle` as `Canceled`, which relied on the reaper to run and clean up the `Canceled` handles. This is not good for long timeouts when many streams are opened, as a lot of `Canceled` handles build up in the reaper's workload. This commit uses the reaper's new `reaperModify` API to immediately remove the given `Handle` in `cancel`. This obsoletes the `Canceled` constructor of `State`, so we remove that as well. We update the auto-update and time-manager dependencies of warp to include the new changes as well. The related auto-update changes are in PR yesodweb#985.
FinleyMcIlwaine
force-pushed
the
finley/modifiable-workload
branch
2 times, most recently
from
April 26, 2024 22:54
43ca31c
to
9893875
Compare
FinleyMcIlwaine
added a commit
to FinleyMcIlwaine/wai
that referenced
this pull request
Apr 26, 2024
`cancel` used to mark the given `Handle` as `Canceled`, which relied on the reaper to run and clean up the `Canceled` handles. This is not good for long timeouts when many streams are opened, as a lot of `Canceled` handles build up in the reaper's workload. This commit uses the reaper's new `reaperModify` API to immediately remove the given `Handle` in `cancel`. This obsoletes the `Canceled` constructor of `State`, so we remove that as well. We update the time-manager dependency of warp to include the new changes as well. The related auto-update changes are in PR yesodweb#985.
It is convenient to be able to modify reaper workloads outside of the `reaperAction` in scenarios where we don't want to wait for `reaperDelay` for the jobs to be updated. This PR adds an atomic `reaperModify` function to the reaper API which enables this. Since this changes the visible `Reaper` constructor, I did a major version bump (`auto-update` 0.1.6 -> 0.2.0) and added a changelog entry. I also bumped the `warp` dependency on `auto-update`.
FinleyMcIlwaine
force-pushed
the
finley/modifiable-workload
branch
from
April 26, 2024 22:57
9893875
to
fc127e6
Compare
FinleyMcIlwaine
added a commit
to FinleyMcIlwaine/wai
that referenced
this pull request
Apr 26, 2024
`cancel` used to mark the given `Handle` as `Canceled`, which relied on the reaper to run and clean up the `Canceled` handles. This is not good for long timeouts when many streams are opened, as a lot of `Canceled` handles build up in the reaper's workload. This commit uses the reaper's new `reaperModify` API to immediately remove the given `Handle` in `cancel`. This obsoletes the `Canceled` constructor of `State`, so we remove that as well. We update the time-manager dependency of warp to include the new changes as well. The related auto-update changes are in PR yesodweb#985.
@snoyberg I'm OK with this PR. |
Merged anyway. |
kazu-yamamoto
pushed a commit
to kazu-yamamoto/wai
that referenced
this pull request
Apr 27, 2024
`cancel` used to mark the given `Handle` as `Canceled`, which relied on the reaper to run and clean up the `Canceled` handles. This is not good for long timeouts when many streams are opened, as a lot of `Canceled` handles build up in the reaper's workload. This commit uses the reaper's new `reaperModify` API to immediately remove the given `Handle` in `cancel`. This obsoletes the `Canceled` constructor of `State`, so we remove that as well. We update the time-manager dependency of warp to include the new changes as well. The related auto-update changes are in PR yesodweb#985.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
It is convenient to be able to modify reaper workloads outside of the
reaperAction
in scenarios where we don't want to wait forreaperDelay
for the jobs to be updated. This PR adds an atomicreaperModify
function to the reaper API which enables this.Since this changes the visible
Reaper
constructor, I did a major version bump (auto-update
0.1.6 -> 0.2.0) and added a changelog entry. I also bumped thewarp
dependency onauto-update
upper bound.Before submitting your PR, check that you've:
@since
declarations to the HaddockAfter submitting your PR: