-
Notifications
You must be signed in to change notification settings - Fork 10.2k
Open
Labels
help wantedpriority/important-longtermImportant over the long term, but may not be staffed and/or may need multiple releases to complete.Important over the long term, but may not be staffed and/or may need multiple releases to complete.stage/trackedtype/feature
Description
What would you like to be added?
etcd is depending on some experimental APIs of grpc-go, such as resolver. Once these APIs change in future, it might break etcd. So we should try to remove the dependency on any experimental APIs; instead, let's try to use stable APIs.
References:
- transport: new stream with actual server name grpc/grpc-go#5748 (comment)
- transport: new stream with actual server name grpc/grpc-go#5748 (comment)
- panic: runtime error: comparing uncomparable type map[string]interface {} #19700 (comment)
We should have
- a summary on existing design/implementation first
- proposal(s) to replace them, and with pros & cons. invite grpc's experts to review.
- evaluate the impact on etcd itself and users of etcd client sdk.
Mitigations:
- Replace
resolver.State.Addresseswithresolver.State.Endpoint.Addresses#19780 - Deprecate usage of
gresolver.Address.Metadata#19706 - mark the gRPC naming and discovery feature as experimental, see also panic: runtime error: comparing uncomparable type map[string]interface {} #19700 (comment)
Long-term solution?
- use the GCP gRPC connection pool ?
Related followup:
-
An endpoint may have multiple addresses: i.e. IPv4 and IPv6. Currently we only assume each endpoint only has one address
Why is this needed?
Improve stability
Metadata
Metadata
Assignees
Labels
help wantedpriority/important-longtermImportant over the long term, but may not be staffed and/or may need multiple releases to complete.Important over the long term, but may not be staffed and/or may need multiple releases to complete.stage/trackedtype/feature