grpc-java icon indicating copy to clipboard operation
grpc-java copied to clipboard

Priority policy should delay picker updates while updating children

Open ejona86 opened this issue 3 years ago • 3 comments

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

ejona86 avatar Feb 28 '22 20:02 ejona86

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.)

markdroth avatar Apr 07 '22 16:04 markdroth

Need this in the rls policy too.

markdroth avatar Apr 07 '22 17:04 markdroth

CC @YifeiZhuang

ejona86 avatar Apr 07 '22 17:04 ejona86

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.

temawi avatar Sep 14 '22 16:09 temawi