From 23a2202efa89ebee83f296e36d01e35cc9489d98 Mon Sep 17 00:00:00 2001 From: Sergii Tkachenko Date: Fri, 7 Jan 2022 16:22:30 -0500 Subject: [PATCH] xds: Rename ring_hash LB Policy to ring_hash_experimental (#8776) Ring hash can only be used from within xds currently, because that's the only way to get a hash assigned to RPCs which is required for it to function. So it should be using the _experimental suffix like the other only-used-from-xds policies. --- xds/src/main/java/io/grpc/xds/CdsLoadBalancer2.java | 2 +- .../java/io/grpc/xds/ClusterResolverLoadBalancer.java | 8 ++++---- .../io/grpc/xds/ClusterResolverLoadBalancerProvider.java | 2 +- .../java/io/grpc/xds/RingHashLoadBalancerProvider.java | 4 ++-- xds/src/main/java/io/grpc/xds/XdsClient.java | 4 ++-- xds/src/test/java/io/grpc/xds/CdsLoadBalancer2Test.java | 4 ++-- .../test/java/io/grpc/xds/ClientXdsClientTestBase.java | 4 ++-- xds/src/test/java/io/grpc/xds/ClientXdsClientV2Test.java | 4 ++-- xds/src/test/java/io/grpc/xds/ClientXdsClientV3Test.java | 4 ++-- .../java/io/grpc/xds/ClusterResolverLoadBalancerTest.java | 4 ++-- 10 files changed, 20 insertions(+), 20 deletions(-) diff --git a/xds/src/main/java/io/grpc/xds/CdsLoadBalancer2.java b/xds/src/main/java/io/grpc/xds/CdsLoadBalancer2.java index 396292a2392..7735199134f 100644 --- a/xds/src/main/java/io/grpc/xds/CdsLoadBalancer2.java +++ b/xds/src/main/java/io/grpc/xds/CdsLoadBalancer2.java @@ -187,7 +187,7 @@ private void handleClusterDiscovered() { LoadBalancerProvider lbProvider = null; Object lbConfig = null; if (root.result.lbPolicy() == LbPolicy.RING_HASH) { - lbProvider = lbRegistry.getProvider("ring_hash"); + lbProvider = lbRegistry.getProvider("ring_hash_experimental"); lbConfig = new RingHashConfig(root.result.minRingSize(), root.result.maxRingSize()); } if (lbProvider == null) { diff --git a/xds/src/main/java/io/grpc/xds/ClusterResolverLoadBalancer.java b/xds/src/main/java/io/grpc/xds/ClusterResolverLoadBalancer.java index f4fcabcb21f..e4800cf668c 100644 --- a/xds/src/main/java/io/grpc/xds/ClusterResolverLoadBalancer.java +++ b/xds/src/main/java/io/grpc/xds/ClusterResolverLoadBalancer.java @@ -672,7 +672,7 @@ private static PriorityChildConfig generateDnsBasedPriorityChildConfig( * Generates configs to be used in the priority LB policy for priorities in an EDS cluster. * *

priority LB -> cluster_impl LB (one per priority) -> (weighted_target LB - * -> round_robin (one per locality)) / ring_hash + * -> round_robin (one per locality)) / ring_hash_experimental */ private static Map generateEdsBasedPriorityChildConfigs( String cluster, @Nullable String edsServiceName, @Nullable ServerInfo lrsServerInfo, @@ -687,9 +687,9 @@ private static Map generateEdsBasedPriorityChildCon // created. If the endpoint-level LB policy is round_robin, it creates a two-level LB // hierarchy: a locality-level LB policy that balances load according to locality weights // followed by an endpoint-level LB policy that simply rounds robin the endpoints within - // the locality. If the endpoint-level LB policy is ring_hash, it creates a unified LB - // policy that balances load by weighing the product of each endpoint's weight and the - // weight of the locality it belongs to. + // the locality. If the endpoint-level LB policy is ring_hash_experimental, it creates + // a unified LB policy that balances load by weighing the product of each endpoint's weight + // and the weight of the locality it belongs to. if (endpointLbPolicy.getProvider().getPolicyName().equals("round_robin")) { Map localityWeights = prioritizedLocalityWeights.get(priority); Map targets = new HashMap<>(); diff --git a/xds/src/main/java/io/grpc/xds/ClusterResolverLoadBalancerProvider.java b/xds/src/main/java/io/grpc/xds/ClusterResolverLoadBalancerProvider.java index 551c2c296fc..4aaf0dcadde 100644 --- a/xds/src/main/java/io/grpc/xds/ClusterResolverLoadBalancerProvider.java +++ b/xds/src/main/java/io/grpc/xds/ClusterResolverLoadBalancerProvider.java @@ -68,7 +68,7 @@ public LoadBalancer newLoadBalancer(Helper helper) { static final class ClusterResolverConfig { // Ordered list of clusters to be resolved. final List discoveryMechanisms; - // Endpoint-level load balancing policy with config (round_robin or ring_hash). + // Endpoint-level load balancing policy with config (round_robin or ring_hash_experimental). final PolicySelection lbPolicy; ClusterResolverConfig(List discoveryMechanisms, PolicySelection lbPolicy) { diff --git a/xds/src/main/java/io/grpc/xds/RingHashLoadBalancerProvider.java b/xds/src/main/java/io/grpc/xds/RingHashLoadBalancerProvider.java index 102a18000a9..0df4c8c2984 100644 --- a/xds/src/main/java/io/grpc/xds/RingHashLoadBalancerProvider.java +++ b/xds/src/main/java/io/grpc/xds/RingHashLoadBalancerProvider.java @@ -29,7 +29,7 @@ import java.util.Map; /** - * The provider for the "ring_hash" balancing policy. + * The provider for the "ring_hash_experimental" balancing policy. */ @Internal public final class RingHashLoadBalancerProvider extends LoadBalancerProvider { @@ -66,7 +66,7 @@ public int getPriority() { @Override public String getPolicyName() { - return "ring_hash"; + return "ring_hash_experimental"; } @Override diff --git a/xds/src/main/java/io/grpc/xds/XdsClient.java b/xds/src/main/java/io/grpc/xds/XdsClient.java index 65d4d67c427..024500253a3 100644 --- a/xds/src/main/java/io/grpc/xds/XdsClient.java +++ b/xds/src/main/java/io/grpc/xds/XdsClient.java @@ -113,10 +113,10 @@ abstract static class CdsUpdate implements ResourceUpdate { // Endpoint-level load balancing policy. abstract LbPolicy lbPolicy(); - // Only valid if lbPolicy is "ring_hash". + // Only valid if lbPolicy is "ring_hash_experimental". abstract long minRingSize(); - // Only valid if lbPolicy is "ring_hash". + // Only valid if lbPolicy is "ring_hash_experimental". abstract long maxRingSize(); // Alternative resource name to be used in EDS requests. diff --git a/xds/src/test/java/io/grpc/xds/CdsLoadBalancer2Test.java b/xds/src/test/java/io/grpc/xds/CdsLoadBalancer2Test.java index 388fc6a8b20..7664660d4c6 100644 --- a/xds/src/test/java/io/grpc/xds/CdsLoadBalancer2Test.java +++ b/xds/src/test/java/io/grpc/xds/CdsLoadBalancer2Test.java @@ -120,7 +120,7 @@ public void setUp() { when(helper.getSynchronizationContext()).thenReturn(syncContext); lbRegistry.register(new FakeLoadBalancerProvider(CLUSTER_RESOLVER_POLICY_NAME)); lbRegistry.register(new FakeLoadBalancerProvider("round_robin")); - lbRegistry.register(new FakeLoadBalancerProvider("ring_hash")); + lbRegistry.register(new FakeLoadBalancerProvider("ring_hash_experimental")); loadBalancer = new CdsLoadBalancer2(helper, lbRegistry); loadBalancer.handleResolvedAddresses( ResolvedAddresses.newBuilder() @@ -283,7 +283,7 @@ public void discoverAggregateCluster() { assertDiscoveryMechanism(childLbConfig.discoveryMechanisms.get(2), cluster4, DiscoveryMechanism.Type.EDS, null, null, LRS_SERVER_INFO, 300L, null); assertThat(childLbConfig.lbPolicy.getProvider().getPolicyName()) - .isEqualTo("ring_hash"); // dominated by top-level cluster's config + .isEqualTo("ring_hash_experimental"); // dominated by top-level cluster's config assertThat(((RingHashConfig) childLbConfig.lbPolicy.getConfig()).minRingSize).isEqualTo(100L); assertThat(((RingHashConfig) childLbConfig.lbPolicy.getConfig()).maxRingSize).isEqualTo(1000L); } diff --git a/xds/src/test/java/io/grpc/xds/ClientXdsClientTestBase.java b/xds/src/test/java/io/grpc/xds/ClientXdsClientTestBase.java index 6fdf5e1b811..42cf9baa1d9 100644 --- a/xds/src/test/java/io/grpc/xds/ClientXdsClientTestBase.java +++ b/xds/src/test/java/io/grpc/xds/ClientXdsClientTestBase.java @@ -1483,8 +1483,8 @@ public void cdsResourceFound_ringHashLbPolicy() { DiscoveryRpcCall call = startResourceWatcher(CDS, CDS_RESOURCE, cdsResourceWatcher); Message ringHashConfig = mf.buildRingHashLbConfig("xx_hash", 10L, 100L); Any clusterRingHash = Any.pack( - mf.buildEdsCluster(CDS_RESOURCE, null, "ring_hash", ringHashConfig, false, null, - "envoy.transport_sockets.tls", null + mf.buildEdsCluster(CDS_RESOURCE, null, "ring_hash_experimental", ringHashConfig, false, + null, "envoy.transport_sockets.tls", null )); call.sendResponse(ResourceType.CDS, clusterRingHash, VERSION_1, "0000"); diff --git a/xds/src/test/java/io/grpc/xds/ClientXdsClientV2Test.java b/xds/src/test/java/io/grpc/xds/ClientXdsClientV2Test.java index 1a69b6fc650..be28f07b73c 100644 --- a/xds/src/test/java/io/grpc/xds/ClientXdsClientV2Test.java +++ b/xds/src/test/java/io/grpc/xds/ClientXdsClientV2Test.java @@ -438,7 +438,7 @@ protected Message buildAggregateCluster(String clusterName, String lbPolicy, Cluster.Builder builder = Cluster.newBuilder().setName(clusterName).setClusterType(type); if (lbPolicy.equals("round_robin")) { builder.setLbPolicy(LbPolicy.ROUND_ROBIN); - } else if (lbPolicy.equals("ring_hash")) { + } else if (lbPolicy.equals("ring_hash_experimental")) { builder.setLbPolicy(LbPolicy.RING_HASH); builder.setRingHashLbConfig((RingHashLbConfig) ringHashLbConfig); } else { @@ -454,7 +454,7 @@ private Cluster.Builder initClusterBuilder(String clusterName, String lbPolicy, builder.setName(clusterName); if (lbPolicy.equals("round_robin")) { builder.setLbPolicy(LbPolicy.ROUND_ROBIN); - } else if (lbPolicy.equals("ring_hash")) { + } else if (lbPolicy.equals("ring_hash_experimental")) { builder.setLbPolicy(LbPolicy.RING_HASH); builder.setRingHashLbConfig((RingHashLbConfig) ringHashLbConfig); } else { diff --git a/xds/src/test/java/io/grpc/xds/ClientXdsClientV3Test.java b/xds/src/test/java/io/grpc/xds/ClientXdsClientV3Test.java index 6df36e1c31e..69e75292778 100644 --- a/xds/src/test/java/io/grpc/xds/ClientXdsClientV3Test.java +++ b/xds/src/test/java/io/grpc/xds/ClientXdsClientV3Test.java @@ -494,7 +494,7 @@ protected Message buildAggregateCluster(String clusterName, String lbPolicy, Cluster.Builder builder = Cluster.newBuilder().setName(clusterName).setClusterType(type); if (lbPolicy.equals("round_robin")) { builder.setLbPolicy(LbPolicy.ROUND_ROBIN); - } else if (lbPolicy.equals("ring_hash")) { + } else if (lbPolicy.equals("ring_hash_experimental")) { builder.setLbPolicy(LbPolicy.RING_HASH); builder.setRingHashLbConfig((RingHashLbConfig) ringHashLbConfig); } else { @@ -511,7 +511,7 @@ private Cluster.Builder initClusterBuilder(String clusterName, String lbPolicy, builder.setName(clusterName); if (lbPolicy.equals("round_robin")) { builder.setLbPolicy(LbPolicy.ROUND_ROBIN); - } else if (lbPolicy.equals("ring_hash")) { + } else if (lbPolicy.equals("ring_hash_experimental")) { builder.setLbPolicy(LbPolicy.RING_HASH); builder.setRingHashLbConfig((RingHashLbConfig) ringHashLbConfig); } else { diff --git a/xds/src/test/java/io/grpc/xds/ClusterResolverLoadBalancerTest.java b/xds/src/test/java/io/grpc/xds/ClusterResolverLoadBalancerTest.java index ccc1975265d..a85f476ed4b 100644 --- a/xds/src/test/java/io/grpc/xds/ClusterResolverLoadBalancerTest.java +++ b/xds/src/test/java/io/grpc/xds/ClusterResolverLoadBalancerTest.java @@ -135,7 +135,7 @@ public void uncaughtException(Thread t, Throwable e) { private final PolicySelection roundRobin = new PolicySelection(new FakeLoadBalancerProvider("round_robin"), null); private final PolicySelection ringHash = new PolicySelection( - new FakeLoadBalancerProvider("ring_hash"), new RingHashConfig(10L, 100L)); + new FakeLoadBalancerProvider("ring_hash_experimental"), new RingHashConfig(10L, 100L)); private final List childBalancers = new ArrayList<>(); private final List resolvers = new ArrayList<>(); private final FakeXdsClient xdsClient = new FakeXdsClient(); @@ -260,7 +260,7 @@ public void edsClustersWithRingHashEndpointLbPolicy() { ClusterImplConfig clusterImplConfig = (ClusterImplConfig) priorityChildConfig.policySelection.getConfig(); assertClusterImplConfig(clusterImplConfig, CLUSTER1, EDS_SERVICE_NAME1, LRS_SERVER_INFO, 100L, - tlsContext, Collections.emptyList(), "ring_hash"); + tlsContext, Collections.emptyList(), "ring_hash_experimental"); RingHashConfig ringHashConfig = (RingHashConfig) clusterImplConfig.childPolicy.getConfig(); assertThat(ringHashConfig.minRingSize).isEqualTo(10L);