-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
[Docs] Add sequence diagrams to hedging #1706
[Docs] Add sequence diagrams to hedging #1706
Conversation
Several questions:
|
Codecov ReportAll modified lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #1706 +/- ##
=======================================
Coverage 84.65% 84.65%
=======================================
Files 306 306
Lines 6831 6831
Branches 1047 1047
=======================================
Hits 5783 5783
Misses 839 839
Partials 209 209
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
Thanks for these!
I would say yes, each concurrency mode changes behavior of hedging and it would be better to explain these.
My initial thinking is that those are tied to HTTP scenarios, maybe we can get away of just having Esentially, merge those 3 under
Not really, once the acceptable result is received, the hedging cancels all pending requests, wait until the cancellation is finished and then returns the accepted response.
Sure, looks nice to me. |
Maybe also include the 'ActionGenerator' as an additional actor that produces 'HedgedActionCallback'? |
The The Tail at Scale paper introduced "hedged requests" like this:
Accordingly to my understanding it is tightly coupled to HTTP and tail-tolerance. In other implementations, what I have seen, you can define the wait dynamically via percentiles (like 95p). So, I think here the primary usage involves HTTP. (but maybe I'm wrong with this assumption). |
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.
I think these HTTP-specific examples are fine, but that should be pointed out in the preamble to the diagrams that the illustrations are based on that kind of scenario.
To be able to compare the two versions (with HTTP and without HTTP) I've created alternative diagrams: |
7a898e5
to
0bcc8b8
Compare
Out of the two, I think the second pair look better as there's not as much detail to try and comprehend and the text is larger as there's less to fit on the screen. |
I also prefer the second one, mainly because it explains the universal nature of hedging strategy. You are right that it is primary for HTTP scenarios, but it can be applied to anything where latency is priority. |
e54623c
to
2a95439
Compare
@peter-csala You might want to update your local git config for the polly repo so your Git identity matches your GitHub identity - otherwise your commits all come in as this white circle that appears to be a different person: |
Pull Request
The issue or feature being addressed
Details on the issue fix or feature implementation
Confirm the following