Behavior Changes
- balancer: log a warning if a balancer is registered with uppercase letters, as balancer names should be lowercase. In a future release, balancer names will be treated as case-insensitive; see #5288 for details. (#8837)
- xds: update resource error handling and re-resolution logic (#8907)
- Re-resolve all
LOGICAL_DNSclusters simultaneously when re-resolution is requested. - Fail all in-flight RPCs immediately upon receipt of listener or route resource errors, instead of allowing them to complete.
- Re-resolve all
Bug Fixes
- xds: support the LB policy configured in
LOGICAL_DNScluster resources instead of defaulting topick_first. (#8733) - credentials/tls: perform per-RPC authority validation against the leaf certificate instead of the entire peer certificate chain. (#8831)
- xds: enabling A76 ring hash endpoint keys no longer causes EDS resources with invalid proxy metadata to be NACKed when HTTP CONNECT (gRFC A86) is disabled. (#8875)
- xds: validate that the sum of endpoint weights in a locality does not exceed the maximum
uint32value. (#8899)- Special Thanks: @RAVEYUS
- xds: fix incorrect proto field access in the weighted round robin (WRR) configuration where
blackout_periodwas used instead ofweight_expiration_period. (#8915)- Special Thanks: @gregbarasch
- xds/rbac: handle addresses with ports in IP matchers. (#8990)
New Features
- ringhash: enable gRFC A76 (endpoint hash keys and request hash headers) by default. (#8922)
Performance Improvements
- credentials/alts: pool write buffers to reduce memory allocations and usage. (#8919)
- grpc: enable the use of pooled write buffers for buffering HTTP/2 frame writes by default. This reduces memory usage when connections are idle. Use the WithSharedWriteBuffer dial option or the SharedWriteBuffer server option to disable this feature. (#8957)
- xds/priority: stop caching child LB policies removed from the configuration. This will help reduce memory and cpu usage when localities are constantly switching between priorities. (#8997)
- mem: add a faster tiered buffer pool; use the experimental mem.NewBinaryTieredBufferPool function to create such pools. (#8775)