grpc/test/core/client_channel
Mark D. Roth 696d644bcf [pick_first] avoid retaining unneeded memory after selecting subchannel (#34766)
The pick_first policy creates a list of subchannels for each resolver update and then iterates over the list, attempting to connect to each subchannel in turn, until one of them succeeds.  However, once a subchannel does succeed, the policy unrefs the other subchannels but still retains a bunch of now-unnecessary state in the subchannel list itself.  This wastes a bunch of memory, especially now that petiole policies are delegating to pick_first.  This PR contains a new pick_first implementation that stops retaining that state, which significantly reduces per-channel memory.

There is one behavior change here, which is that if we have a connected subchannel and we get a resolver update that no longer includes that address, we now go IDLE instead of proactively trying to connect to the new addresses.

Closes #34766

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/34766 from markdroth:pick_first_free_memory_after_connecting 7236b4321f
PiperOrigin-RevId: 623887639
2024-04-11 11:36:27 -07:00
..
lb_policy [pick_first] avoid retaining unneeded memory after selecting subchannel (#34766) 2024-04-11 11:36:27 -07:00
resolvers [EventEngine] Support AF_UNIX for windows (#34801) 2024-02-14 13:15:57 -08:00
BUILD [build] move parts of the `grpc_client_channel` BUILD target out into their own targets (#35879) 2024-02-20 18:06:37 -08:00
client_channel_service_config_test.cc [reorg] move service config code to src/core/service_config (#35843) 2024-02-08 16:58:20 -08:00
client_channel_test.cc [clang-format] Remove requirement that port_platform.h is at the top (#36281) 2024-04-09 08:58:34 -07:00
http_proxy_mapper_test.cc [reorg] move client channel code to src/core/client_channel (#35827) 2024-02-07 09:23:26 -08:00
retry_service_config_test.cc [reorg] move service config code to src/core/service_config (#35843) 2024-02-08 16:58:20 -08:00
retry_throttle_test.cc [reorg] move client channel code to src/core/client_channel (#35827) 2024-02-07 09:23:26 -08:00