-
Notifications
You must be signed in to change notification settings - Fork 4k
Open
Description
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:
grpc-java/xds/src/main/java/io/grpc/xds/ClusterResolverLoadBalancer.java
Lines 341 to 358 in 096c4d9
| 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 */); |