New Features
- metadata: stabilize
ValueFromIncomingContext
(#7368)- Special Thanks: @KarthikReddyPuli
- client: stabilize the
WaitForStateChange
andGetState
methods, which were previously experimental. (#7425) - xds: Implement ADS flow control mechanism (#7458)
- See grpc/grpc#34099 for context.
- balancer/rls: Add metrics for data cache and picker internals (#7484, #7495)
- xds: LRS load reports now include the
total_issued_requests
field. (#7544)
Bug Fixes
- grpc: Clients now return status code INTERNAL instead of UNIMPLEMENTED when the server uses an unsupported compressor. This is consistent with the gRPC compression spec. (#7461)
- Special Thanks: @Gayathri625
- transport: Fix a bug which could result in writes busy looping when the underlying
conn.Write
returns errors (#7394)- Special Thanks: @veshij
- client: fix race that could lead to orphaned connections and associated resources. (#7390)
- xds: use locality from the connected address for load reporting with pick_first (#7378)
- without this fix, if a priority contains multiple localities with pick_first, load was reported for the wrong locality
- client: prevent hanging during ClientConn.Close() when the network is unreachable (#7540)
Performance Improvements
- transport: double buffering is avoided when using an http connect proxy and the target server waits for client to send the first message. (#7424)
- codec: Implement a new
Codec
which uses buffer recycling for encoded message (#7356)- introduce a
mem
package to facilitate buffer reuse (#7432) - Special Thanks: @PapaCharlie
- introduce a