-
Notifications
You must be signed in to change notification settings - Fork 4k
Description
From A61 (dual stack):
Therefore,
pick_first will have an option to support these health signals, and
that option will be used only when pick_first is used as a child policy
underneath a petiole policy.Note that we do not want either of these mechanisms to actually work
when pick_first is used as an LB policy by itself, so we will implement
this functionality in a way that it can be triggered by a parent policy
such as round_robin but cannot be triggered by an external application.
(For example, in C-core, this will be triggered via an internal-only
channel arg that will be set by the petiole policies.)
In grpc-java, I think that was being implemented as IS_PETIOLE_POLICY. MultiChildLB sets the value (and ClusterManagerLoadBalancer overrides a method so it isn't set), but nothing appears to read it. Clearly either we should read it or remove it.
When PickFirst is used as a top-level policy, there will not be any health producer, so PF doesn't really need to read the flag. And client-side health checking is only enabled within petiole policies like RR. But if outlier detection is in the tree, like with standard xds, then there would be a health producer and PF wouldn't ignore its health reports.