-
Notifications
You must be signed in to change notification settings - Fork 331
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
feat(MR): [MR-649] Support incremental rollout of best-effort calls #3688
feat(MR): [MR-649] Support incremental rollout of best-effort calls #3688
Conversation
Replace the on-off flag with an enum of 4 progressive rollout stages: * Stage 0: Trap on related API calls; and reject best-effort requests when routing (status quo). * Stage 1: Silently ignore `ic0_call_with_best_effort_response()` calls, falling back to guaranteed response calls; and reject best-effort requests when routing. * Stage 2: On system subnets, silently ignore `ic0_call_with_best_effort_response()` calls, falling back to guaranteed response calls; and reject best-effort requests that should be routed to system subnets. * Stage 3: Fully enable API calls; always route best-effort requests. Rollbacks (incremental or direct) are also supported, but it's probably a bad idea to roll back to stage 0, as any canisters already using best-effort calls would break. Badly.
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.
LGTM at first glance, but I wasn't present when this was discussed.
Co-authored-by: stiegerc <[email protected]>
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.
LGTM
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.
Thanks a lot. Left some initial comments.
…e rolling out to specific subnets only.
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.
Thank you. LGTM.
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.
Did another pass, LGTM.
Replace the on-off flag with an enum of 4 progressive rollout stages:
ic0_call_with_best_effort_response()
calls, falling back to guaranteed response calls; and reject best-effort requests when routing.ic0_call_with_best_effort_response()
calls, falling back to guaranteed response calls; and reject best-effort requests that should be routed to subnets other than the selected ones.ic0_call_with_best_effort_response()
calls, falling back to guaranteed response calls; and reject best-effort requests that should be routed to system subnets.Rollbacks (incremental or direct) are also supported, including all the way to Stage 1a. In case of a rollback, not-yet-routed best-effort requests will be rejected; already existing best-effort callbacks will expire when appropriate, as per their deadlines; and best-effort responses will be delivered (unless they expire on the way).