diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2022-08-20 21:56:52 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2022-08-20 21:56:52 +0200 |
commit | c7835ffa773e3cfb14649706f0405b6c3d2f7994 (patch) | |
tree | 0d0ceb5a4da6cb891d9160dd8bbd256def059645 /config-model/src | |
parent | 06d9dff6eb2d27e02083a599ffd91bb12fc26ec0 (diff) |
Add test for feature flag control of dispatch policy.
Diffstat (limited to 'config-model/src')
-rw-r--r-- | config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java index cfb2fceb60b..17ce43bba2c 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java @@ -1005,6 +1005,37 @@ public class ContentClusterTest extends ContentBaseTest { verifyTopKProbabilityPropertiesControl(); } + private void verifyQueryDispatchPolicy(String policy, DispatchConfig.DistributionPolicy.Enum expected) { + TestProperties properties = new TestProperties(); + if (policy != null) { + properties.setQueryDispatchPolicy(policy); + } + VespaModel model = createEnd2EndOneNode(properties); + + ContentCluster cc = model.getContentClusters().get("storage"); + DispatchConfig.Builder builder = new DispatchConfig.Builder(); + cc.getSearch().getConfig(builder); + + DispatchConfig cfg = new DispatchConfig(builder); + assertEquals(expected, cfg.distributionPolicy()); + } + + @Test + public void default_dispatch_controlled_by_properties() { + verifyQueryDispatchPolicy(null, DispatchConfig.DistributionPolicy.ADAPTIVE); + verifyQueryDispatchPolicy("adaptive", DispatchConfig.DistributionPolicy.ADAPTIVE); + verifyQueryDispatchPolicy("round-robin", DispatchConfig.DistributionPolicy.ROUNDROBIN); + verifyQueryDispatchPolicy("best-of-random-2", DispatchConfig.DistributionPolicy.BEST_OF_RANDOM_2); + verifyQueryDispatchPolicy("latency-amortized-over-requests", DispatchConfig.DistributionPolicy.LATENCY_AMORTIZED_OVER_REQUESTS); + verifyQueryDispatchPolicy("latency-amortized-over-time", DispatchConfig.DistributionPolicy.LATENCY_AMORTIZED_OVER_TIME); + try { + verifyQueryDispatchPolicy("unknown", DispatchConfig.DistributionPolicy.ADAPTIVE); + fail(); + } catch (IllegalArgumentException e) { + assertEquals("Unknown dispatch policy 'unknown'", e.getMessage()); + } + } + private boolean resolveThreePhaseUpdateConfigWithFeatureFlag(boolean flagEnableThreePhase) { VespaModel model = createEnd2EndOneNode(new TestProperties().setUseThreePhaseUpdates(flagEnableThreePhase)); |