-
Notifications
You must be signed in to change notification settings - Fork 183
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
Schedule/execute no offload timeouts on IoExecutor #2070
Conversation
This will now depend, again, upon #2066. I will move it out of draft when that PR is complete. |
58e9af5
to
0c65720
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🚀
...ncurrent-api/src/test/java/io/servicetalk/concurrent/api/publisher/TimeoutPublisherTest.java
Show resolved
Hide resolved
servicetalk-http-utils/src/main/java/io/servicetalk/http/utils/TimeoutHttpRequesterFilter.java
Outdated
Show resolved
Hide resolved
servicetalk-http-utils/src/main/java/io/servicetalk/http/utils/TimeoutHttpServiceFilter.java
Outdated
Show resolved
Hide resolved
...cetalk-http-utils/src/test/java/io/servicetalk/http/utils/AbstractTimeoutHttpFilterTest.java
Outdated
Show resolved
Hide resolved
Motivation: Currently the timeout filter executes timeout events on the execution context executor even if the execution strategy requires no offloading. The IoExecutor should instead be use for these situations to reduce offloads. Modifications: Request `ExecutionContext.ioExecutor()` as the `contextExecutor` if no offloads are configured. Result: Less offloading for some timeout events.
0c65720
to
a0ae767
Compare
@bondolo do you plan to cherry-pick this change into 0.42 and 0.41? |
Yes, I will cherry pick to 0.42 but will have to check for 0.41 to make sure it can apply cleanly without too much work |
Motivation: Currently the timeout filter executes timeout events on the execution context executor even if the execution strategy requires no offloading. The IoExecutor should instead be use for these situations to reduce offloads. Modifications: Request `ExecutionContext.ioExecutor()` as the `contextExecutor` if no offloads are configured. Result: Less offloading for some timeout events.
Motivation: Currently the timeout filter executes timeout events on the execution context executor even if the execution strategy requires no offloading. The IoExecutor should instead be use for these situations to reduce offloads. Modifications: Request `ExecutionContext.ioExecutor()` as the `contextExecutor` if no offloads are configured. Result: Less offloading for some timeout events.
Motivation: Currently the timeout filter executes timeout events on the execution context executor even if the execution strategy requires no offloading. The IoExecutor should instead be use for these situations to reduce offloads. Modifications: Request `ExecutionContext.ioExecutor()` as the `contextExecutor` if no offloads are configured. Result: Less offloading for some timeout events.
Motivation: A source compatible API change was made in apple#2070 that replaced `io.servicetalk.concurrent.api.Executor` with `io.servicetalk.concurrentExecutor`. This change, while source compatible as `io.servicetalk.concurrentExecutor` is the super-type of `io.servicetalk.concurrent.api.Executor`, is not binary compatible. Modifications: Revert change to use same `Executor` class as prior releases on these branches. Result: Binary compatibility is retained.
Motivation: A source compatible API change was made in #2070 that replaced `io.servicetalk.concurrent.api.Executor` with `io.servicetalk.concurrentExecutor`. This change, while source compatible as `io.servicetalk.concurrentExecutor` is the super-type of `io.servicetalk.concurrent.api.Executor`, is not binary compatible. Modifications: Revert change to use same `Executor` class as prior releases on these branches. Result: Binary compatibility is retained.
Motivation: A source compatible API change was made in #2070 that replaced `io.servicetalk.concurrent.api.Executor` with `io.servicetalk.concurrentExecutor`. This change, while source compatible as `io.servicetalk.concurrentExecutor` is the super-type of `io.servicetalk.concurrent.api.Executor`, is not binary compatible. Modifications: Revert change to use same `Executor` class as prior releases on these branches. Result: Binary compatibility is retained.
Motivation:
Currently the timeout filter executes timeout events on the execution
context executor even if the execution strategy requires no offloading.
The IoExecutor should instead be use for these situations to reduce
offloads.
Modifications:
Request
ExecutionContext.ioExecutor()
as thecontextExecutor
if nooffloads are configured.
Result:
Less offloading for some timeout events.