Skip to content

ClusterImplLB should be above Priority after A75 Aggregate Cluster Fixes #12430

@ejona86

Description

@ejona86

From A75 Aggregate Cluster Fixes:

This will allow us to move the outlier_detection, xds_cluster_impl, and xds_override_host LB policies up above the priority policy that chooses the priority within the cluster. This will result in outlier detection and stateful session affinity working across priorities within a cluster, as they should.

It then defines the new LB tree organization that has that change.

That does not appear to have happened in Java, as cluster impl is below priority:

LoadBalancerProvider clusterImplLbProvider =
lbRegistry.getProvider(XdsLbPolicies.CLUSTER_IMPL_POLICY_NAME);
Object priorityChildPolicy = GracefulSwitchLoadBalancer.createLoadBalancingPolicyConfig(
clusterImplLbProvider, clusterImplConfig);
// If outlier detection has been configured we wrap the child policy in the outlier detection
// load balancer.
if (discovery.outlierDetection != null) {
LoadBalancerProvider outlierDetectionProvider = lbRegistry.getProvider(
"outlier_detection_experimental");
priorityChildPolicy = GracefulSwitchLoadBalancer.createLoadBalancingPolicyConfig(
outlierDetectionProvider,
buildOutlierDetectionLbConfig(discovery.outlierDetection, priorityChildPolicy));
}
boolean isEds = discovery.type == DiscoveryMechanism.Type.EDS;
PriorityChildConfig priorityChildConfig =
new PriorityChildConfig(priorityChildPolicy, isEds /* ignoreReresolution */);

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions