Skip to content
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

Change http2MaxRequests setting to maxRequests #1871

Closed
wants to merge 1 commit into from

Conversation

kailun-qin
Copy link
Member

The combination of H1 and H2 conn_pool implementations makes max_requests to
work for both H1 and H2 in Envoy proxy
(envoyproxy/envoy#9215).

In accordance with this change, this patch updated the field http2MaxRequests
of ConnectionPoolSettings.HTTPSettings in DestinationRule API to maxRequests
to resolve the outdated H1 only implications/misunderstandings for the field.

Addresses istio/istio#27473

Signed-off-by: Kailun Qin [email protected]

@istio-policy-bot
Copy link

😊 Welcome @kailun-qin! This is either your first contribution to the Istio api repo, or it's been
awhile since you've been here.

You can learn more about the Istio working groups, code of conduct, and contributing guidelines
by referring to Contributing to Istio.

Thanks for contributing!

Courtesy of your friendly welcome wagon.

@google-cla google-cla bot added the cla: yes Set by the Google CLA bot to indicate the author of a PR has signed the Google CLA. label Feb 3, 2021
@istio-testing istio-testing added the size/S Denotes a PR that changes 10-29 lines, ignoring generated files. label Feb 3, 2021
@istio-testing
Copy link
Collaborator

@kailun-qin: The following test failed, say /retest to rerun all failed tests:

Test name Commit Details Rerun command
release-notes_api 903f20c link /test release-notes_api

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@@ -607,7 +607,7 @@ message ConnectionPoolSettings {
int32 http1_max_pending_requests = 1;

// Maximum number of requests to a backend. Default 2^32-1.
int32 http2_max_requests = 2;
int32 max_requests = 2;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can not change these names now as it will break existing deployments. We have to follow the deprecation process

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

strong +1 here

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I assume this and http1_max_pending_requests will also need to be deprecated, new field added - and some tooling in istioctl before we even consider removing the old field and behavior.

An alternative is to just change the documentation - "Istio may upgrade HTTP/1.1 requests to HTTP/2 internally, this setting will cover both HTTP/1.1 and HTTP/2 requests". That's what we plan to do with BTS AFAIK, everything including TCP will be over H2.

If we add a new field - we should also consider BTS, and move it up, since TCP will also be treated as a long-lived H2.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was thinking about update the doc as @costinm mentioned. IMO, that is better - it is not worth the churn to add a new field and retain the old field forever.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

http1_max_pending_requests might be slightly different since it involves extra settings to cover behaviors of H2.

Anyway, marking BTS related issues here: istio/istio#24540, istio/istio#25713.

Copy link
Member

@howardjohn howardjohn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adding a new field is probably a good idea, and hiding the old one - but we must support both indefinitely

@@ -607,7 +607,7 @@ message ConnectionPoolSettings {
int32 http1_max_pending_requests = 1;

// Maximum number of requests to a backend. Default 2^32-1.
int32 http2_max_requests = 2;
int32 max_requests = 2;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

strong +1 here

The combination of H1 and H2 conn_pool implementations makes `max_requests` to
work for both H1 and H2 in Envoy proxy
(envoyproxy/envoy#9215).

In accordance with this change, this patch updated the field `http2MaxRequests`
of `ConnectionPoolSettings.HTTPSettings` in DestinationRule API to `maxRequests`
to resolve the outdated H1 only implications/misunderstandings for the field.

Addresses istio/istio#27473

Signed-off-by: Kailun Qin <[email protected]>
@istio-testing istio-testing added the needs-rebase Indicates a PR needs to be rebased before being merged label Mar 4, 2021
@istio-testing
Copy link
Collaborator

@kailun-qin: PR needs rebase.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@howardjohn howardjohn removed the cla: yes Set by the Google CLA bot to indicate the author of a PR has signed the Google CLA. label May 15, 2024
@istio-policy-bot
Copy link

🚧 This issue or pull request has been closed due to not having had activity from an Istio team member since 2021-02-03. If you feel this issue or pull request deserves attention, please reopen the issue. Please see this wiki page for more information. Thank you for your contributions.

Created by the issue and PR lifecycle manager.

@istio-policy-bot istio-policy-bot added the lifecycle/automatically-closed Indicates a PR or issue that has been closed automatically. label May 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
lifecycle/automatically-closed Indicates a PR or issue that has been closed automatically. needs-rebase Indicates a PR needs to be rebased before being merged size/S Denotes a PR that changes 10-29 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants