Skip to content

IS_PETIOLE_POLICY is not used by PickFirstLeafLoadBalancer #11413

@ejona86

Description

@ejona86

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.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions