-
Notifications
You must be signed in to change notification settings - Fork 504
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
Support for backup requests / hedge requests #1069
Comments
Thanks for the detailed writeup, @ewilde! |
I know @olix0r has been thinking a lot about this and the API around it. |
This is a great request. Something I've been thinking about as well. Would be an awesome feature. |
@ewilde Those links are great. I think hedged requests would give an edge over istio/envoy since they do not have this yet. 😍 |
@ewilde I am curious to know how would one approach adopting this for requests which has a side-effect? ( |
@amitsaha You'd probably only want to hedge idempotent requests. |
@amitsaha as @jacktuck mentioned I'm not sure this approach would work for apis that are not idempotent. Perhaps we could include a response classifier section in the configuration similar to https://linkerd.io/config/1.3.5/linkerd/index.html#http-response-classifiers, this then allows the linkerd user to determine which types of requests can be hedged |
Summary
Add support to linkerd to enable backup requests also known at hedge requests.
Context
Backup requests can be used to reduce the overall latency of a system, specifically tail latency. If a request starts to take longer than the n-th percentile, you can choose to issue the same request again, and use the response of the request which replies first to send to the client. This may work well for read requests without requiring modification of downstream systems.
Further reading and context:
Possible Implementation
I've never used linkerd before so this might be way off!
Looking at the configuration documenation it seems like retires might be a good place to configure backup requests. Whilst a backup request isn't exactly a 'retry' it feels close enough?
Retry backup request
95
0
and100
, exclusive.60
clipDurationSec
will be added to the histogram using this upper bound.3600
Tasks
The text was updated successfully, but these errors were encountered: