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

Provide a way to adjust the initial window size that does not also disable BDP estimation #7923

Open
dfawley opened this issue Dec 11, 2024 · 1 comment
Labels
Area: RPC Features Includes Compression, Encoding, Attributes/Metadata, Interceptors. Type: Feature New features or improvements in behavior

Comments

@dfawley
Copy link
Member

dfawley commented Dec 11, 2024

There are at least a couple options here:

  1. Change the existing Dial/ServerOptions (e.g.) so they do not disabled BDP estimation
  • Optionally, add another set of options that does disable BDP estimation.
  1. Add new Dial/ServerOptions to set the size like the existing ones, but which do not also disable BDP esimation.
@dfawley dfawley added the Type: Feature New features or improvements in behavior label Dec 11, 2024
@purnesh42H purnesh42H added the Area: RPC Features Includes Compression, Encoding, Attributes/Metadata, Interceptors. label Dec 16, 2024
@dfawley
Copy link
Member Author

dfawley commented Dec 17, 2024

Proposal:

  1. Add new settings:
package grpc

func WithStaticStreamWindowSize(int32) DialOption
func WithStaticConnWindowSize(int32) DialOption

func StaticStreamWindowSize(int32) ServerOption
func StaticConnWindowSize(int32) ServerOption

These will behave the same as the current options.

  1. After 2 releases, with a notice that the behavior is changing in the release notes, change the current options so they do not disable BDP estimation. Also add:
func WithInitialStreamWindowSize(int32) DialOption // just does "return WithInitialWindowSize(n)"

func InitialStreamWindowSize(int32) ServerOption // just does "return InitialWindowSize(n)"

And mark WithInitialWindowSize and InitialWindowSize as deprecated.

Rationale:

  • The current options' names imply they only affect the starting window size, but that the window size is adjustable. Leaving the behavior the same, and adding new options that specify a starting size but adjust over time would be confusing for everyone.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: RPC Features Includes Compression, Encoding, Attributes/Metadata, Interceptors. Type: Feature New features or improvements in behavior
Projects
None yet
Development

No branches or pull requests

2 participants