Priority policy should delay picker updates while updating children
To allow localities moving priorities within xDS atomically, when processing a config update, the priority policy should inhibit upward picker updates of its own until it has provided the configs to all of its children. Children update their picker synchronously when receiving the config update, so after passing down the new configuration to all children the priority policy will have updated pickers for each and should at that point propagate its own picker update upward. This was decided in the cross-language TL discussion on 2022-02-11.
We need to audit the code to ensure existing LBs update their picker synchronously, and tweak the docs. I expect all LBs are already doing this, but it is worth the check.
grpc/grpc#28984 grpc/grpc-go#5211
We've realized that we also need to do this for the xds_cluster_manager and weighted_target policies.
(Basically, our rule should be that we do this for any policy that has multiple active children at the same time.)
Need this in the rls policy too.
CC @YifeiZhuang
priority: https://github.com/grpc/grpc-java/pull/9363 weighted_target: https://github.com/grpc/grpc-java/pull/9306 cluster_manager: https://github.com/grpc/grpc-java/pull/9365
We determined that, in Java at least, RLS did not need this change.