v3rpc: Let clients establish unlimited streams #8238
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue Observed
From etcd v3.2.0, custom clients can create up to 100 streams for watch and keepalive. This limitation can cause unexpected behavior to custom clinets/proxies that need to establish many streams.
Issue Detail
etcd v3.2.0 updated the go-grpc library and it had a (breaking) change in it, which caps the default max streams per client to 100 (grpc/grpc-go#1071).
The official client and proxies do not establish many streams for now. However, this limitation can have impact for third party libraries that need to establish more streams for some reason.
Proposal
In this commit, we simply set the number of streams to the max number. We may have configuration property for this as well.