Skip to content

Commit cd00832

Browse files
github-actions[bot]reta
authored andcommitted
Parameterize the tests for concurrent search (#9845)
Signed-off-by: Neetika Singhal <[email protected]> (cherry picked from commit 443cfca) Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
1 parent edb9f3c commit cd00832

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+1082
-76
lines changed

server/src/internalClusterTest/java/org/opensearch/search/SearchWithRejectionsIT.java

+26-1
Original file line numberDiff line numberDiff line change
@@ -32,20 +32,45 @@
3232

3333
package org.opensearch.search;
3434

35+
import com.carrotsearch.randomizedtesting.annotations.ParametersFactory;
36+
3537
import org.opensearch.action.admin.indices.stats.IndicesStatsResponse;
3638
import org.opensearch.action.search.SearchResponse;
3739
import org.opensearch.action.search.SearchType;
3840
import org.opensearch.common.settings.Settings;
41+
import org.opensearch.common.util.FeatureFlags;
3942
import org.opensearch.test.OpenSearchIntegTestCase;
43+
import org.opensearch.test.ParameterizedOpenSearchIntegTestCase;
4044

45+
import java.util.Arrays;
46+
import java.util.Collection;
4147
import java.util.concurrent.Future;
4248
import java.util.concurrent.TimeUnit;
4349

4450
import static org.opensearch.index.query.QueryBuilders.matchAllQuery;
51+
import static org.opensearch.search.SearchService.CLUSTER_CONCURRENT_SEGMENT_SEARCH_SETTING;
4552
import static org.hamcrest.Matchers.equalTo;
4653

4754
@OpenSearchIntegTestCase.ClusterScope(scope = OpenSearchIntegTestCase.Scope.SUITE)
48-
public class SearchWithRejectionsIT extends OpenSearchIntegTestCase {
55+
public class SearchWithRejectionsIT extends ParameterizedOpenSearchIntegTestCase {
56+
57+
public SearchWithRejectionsIT(Settings dynamicSettings) {
58+
super(dynamicSettings);
59+
}
60+
61+
@ParametersFactory
62+
public static Collection<Object[]> parameters() {
63+
return Arrays.asList(
64+
new Object[] { Settings.builder().put(CLUSTER_CONCURRENT_SEGMENT_SEARCH_SETTING.getKey(), false).build() },
65+
new Object[] { Settings.builder().put(CLUSTER_CONCURRENT_SEGMENT_SEARCH_SETTING.getKey(), true).build() }
66+
);
67+
}
68+
69+
@Override
70+
protected Settings featureFlagSettings() {
71+
return Settings.builder().put(super.featureFlagSettings()).put(FeatureFlags.CONCURRENT_SEGMENT_SEARCH, "true").build();
72+
}
73+
4974
@Override
5075
public Settings nodeSettings(int nodeOrdinal) {
5176
return Settings.builder()

server/src/internalClusterTest/java/org/opensearch/search/aggregations/metrics/CardinalityWithRequestBreakerIT.java

+25-2
Original file line numberDiff line numberDiff line change
@@ -32,23 +32,46 @@
3232

3333
package org.opensearch.search.aggregations.metrics;
3434

35+
import com.carrotsearch.randomizedtesting.annotations.ParametersFactory;
36+
3537
import org.opensearch.ExceptionsHelper;
3638
import org.opensearch.OpenSearchException;
3739
import org.opensearch.action.index.IndexRequestBuilder;
3840
import org.opensearch.common.settings.Settings;
41+
import org.opensearch.common.util.FeatureFlags;
3942
import org.opensearch.core.common.breaker.CircuitBreakingException;
4043
import org.opensearch.indices.breaker.HierarchyCircuitBreakerService;
4144
import org.opensearch.search.aggregations.Aggregator;
4245
import org.opensearch.search.aggregations.BucketOrder;
43-
import org.opensearch.test.OpenSearchIntegTestCase;
46+
import org.opensearch.test.ParameterizedOpenSearchIntegTestCase;
4447

48+
import java.util.Arrays;
49+
import java.util.Collection;
4550
import java.util.Map;
4651
import java.util.stream.IntStream;
4752

53+
import static org.opensearch.search.SearchService.CLUSTER_CONCURRENT_SEGMENT_SEARCH_SETTING;
4854
import static org.opensearch.search.aggregations.AggregationBuilders.cardinality;
4955
import static org.opensearch.search.aggregations.AggregationBuilders.terms;
5056

51-
public class CardinalityWithRequestBreakerIT extends OpenSearchIntegTestCase {
57+
public class CardinalityWithRequestBreakerIT extends ParameterizedOpenSearchIntegTestCase {
58+
59+
public CardinalityWithRequestBreakerIT(Settings dynamicSettings) {
60+
super(dynamicSettings);
61+
}
62+
63+
@ParametersFactory
64+
public static Collection<Object[]> parameters() {
65+
return Arrays.asList(
66+
new Object[] { Settings.builder().put(CLUSTER_CONCURRENT_SEGMENT_SEARCH_SETTING.getKey(), false).build() },
67+
new Object[] { Settings.builder().put(CLUSTER_CONCURRENT_SEGMENT_SEARCH_SETTING.getKey(), true).build() }
68+
);
69+
}
70+
71+
@Override
72+
protected Settings featureFlagSettings() {
73+
return Settings.builder().put(super.featureFlagSettings()).put(FeatureFlags.CONCURRENT_SEGMENT_SEARCH, "true").build();
74+
}
5275

5376
/**
5477
* Test that searches using cardinality aggregations returns all request breaker memory.

server/src/internalClusterTest/java/org/opensearch/search/aggregations/metrics/GeoCentroidIT.java

+5
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434

3535
import org.opensearch.action.search.SearchResponse;
3636
import org.opensearch.common.geo.GeoPoint;
37+
import org.opensearch.common.settings.Settings;
3738
import org.opensearch.search.aggregations.InternalAggregation;
3839
import org.opensearch.search.aggregations.bucket.global.Global;
3940
import org.opensearch.test.OpenSearchIntegTestCase;
@@ -54,6 +55,10 @@
5455
public class GeoCentroidIT extends AbstractGeoTestCase {
5556
private static final String aggName = "geoCentroid";
5657

58+
public GeoCentroidIT(Settings dynamicSettings) {
59+
super(dynamicSettings);
60+
}
61+
5762
public void testEmptyAggregation() throws Exception {
5863
SearchResponse response = client().prepareSearch(EMPTY_IDX_NAME)
5964
.setQuery(matchAllQuery())

server/src/internalClusterTest/java/org/opensearch/search/backpressure/SearchBackpressureIT.java

+24-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88

99
package org.opensearch.search.backpressure;
1010

11+
import com.carrotsearch.randomizedtesting.annotations.ParametersFactory;
12+
1113
import org.opensearch.action.ActionRequest;
1214
import org.opensearch.action.ActionRequestValidationException;
1315
import org.opensearch.action.ActionType;
@@ -19,6 +21,7 @@
1921
import org.opensearch.common.inject.Inject;
2022
import org.opensearch.common.settings.Settings;
2123
import org.opensearch.common.unit.TimeValue;
24+
import org.opensearch.common.util.FeatureFlags;
2225
import org.opensearch.core.action.ActionListener;
2326
import org.opensearch.core.action.ActionResponse;
2427
import org.opensearch.core.common.io.stream.StreamInput;
@@ -34,6 +37,7 @@
3437
import org.opensearch.tasks.CancellableTask;
3538
import org.opensearch.tasks.Task;
3639
import org.opensearch.test.OpenSearchIntegTestCase;
40+
import org.opensearch.test.ParameterizedOpenSearchIntegTestCase;
3741
import org.opensearch.threadpool.ThreadPool;
3842
import org.opensearch.transport.TransportService;
3943
import org.hamcrest.MatcherAssert;
@@ -42,6 +46,7 @@
4246

4347
import java.io.IOException;
4448
import java.util.ArrayList;
49+
import java.util.Arrays;
4550
import java.util.Collection;
4651
import java.util.Collections;
4752
import java.util.List;
@@ -50,16 +55,34 @@
5055
import java.util.concurrent.TimeUnit;
5156
import java.util.function.Supplier;
5257

58+
import static org.opensearch.search.SearchService.CLUSTER_CONCURRENT_SEGMENT_SEARCH_SETTING;
5359
import static org.opensearch.test.hamcrest.OpenSearchAssertions.assertAcked;
5460
import static org.hamcrest.Matchers.containsString;
5561
import static org.hamcrest.Matchers.instanceOf;
5662

5763
@OpenSearchIntegTestCase.ClusterScope(scope = OpenSearchIntegTestCase.Scope.SUITE)
58-
public class SearchBackpressureIT extends OpenSearchIntegTestCase {
64+
public class SearchBackpressureIT extends ParameterizedOpenSearchIntegTestCase {
5965

6066
private static final TimeValue TIMEOUT = new TimeValue(10, TimeUnit.SECONDS);
6167
private static final int MOVING_AVERAGE_WINDOW_SIZE = 10;
6268

69+
public SearchBackpressureIT(Settings dynamicSettings) {
70+
super(dynamicSettings);
71+
}
72+
73+
@ParametersFactory
74+
public static Collection<Object[]> parameters() {
75+
return Arrays.asList(
76+
new Object[] { Settings.builder().put(CLUSTER_CONCURRENT_SEGMENT_SEARCH_SETTING.getKey(), false).build() },
77+
new Object[] { Settings.builder().put(CLUSTER_CONCURRENT_SEGMENT_SEARCH_SETTING.getKey(), true).build() }
78+
);
79+
}
80+
81+
@Override
82+
protected Settings featureFlagSettings() {
83+
return Settings.builder().put(super.featureFlagSettings()).put(FeatureFlags.CONCURRENT_SEGMENT_SEARCH, "true").build();
84+
}
85+
6386
@Override
6487
protected Collection<Class<? extends Plugin>> nodePlugins() {
6588
final List<Class<? extends Plugin>> plugins = new ArrayList<>(super.nodePlugins());

server/src/internalClusterTest/java/org/opensearch/search/basic/SearchRedStateIndexIT.java

+25-1
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@
3232

3333
package org.opensearch.search.basic;
3434

35+
import com.carrotsearch.randomizedtesting.annotations.ParametersFactory;
36+
3537
import org.opensearch.action.admin.cluster.settings.ClusterUpdateSettingsResponse;
3638
import org.opensearch.action.search.SearchPhaseExecutionException;
3739
import org.opensearch.action.search.SearchResponse;
@@ -40,21 +42,43 @@
4042
import org.opensearch.cluster.routing.ShardRouting;
4143
import org.opensearch.cluster.routing.ShardRoutingState;
4244
import org.opensearch.common.settings.Settings;
45+
import org.opensearch.common.util.FeatureFlags;
4346
import org.opensearch.core.rest.RestStatus;
4447
import org.opensearch.search.SearchService;
4548
import org.opensearch.test.OpenSearchIntegTestCase;
49+
import org.opensearch.test.ParameterizedOpenSearchIntegTestCase;
4650
import org.junit.After;
4751

52+
import java.util.Arrays;
53+
import java.util.Collection;
4854
import java.util.List;
4955

56+
import static org.opensearch.search.SearchService.CLUSTER_CONCURRENT_SEGMENT_SEARCH_SETTING;
5057
import static org.opensearch.test.hamcrest.OpenSearchAssertions.assertAcked;
5158
import static org.hamcrest.Matchers.containsString;
5259
import static org.hamcrest.Matchers.equalTo;
5360
import static org.hamcrest.Matchers.greaterThan;
5461
import static org.hamcrest.Matchers.lessThan;
5562

5663
@OpenSearchIntegTestCase.ClusterScope(minNumDataNodes = 2)
57-
public class SearchRedStateIndexIT extends OpenSearchIntegTestCase {
64+
public class SearchRedStateIndexIT extends ParameterizedOpenSearchIntegTestCase {
65+
66+
public SearchRedStateIndexIT(Settings dynamicSettings) {
67+
super(dynamicSettings);
68+
}
69+
70+
@ParametersFactory
71+
public static Collection<Object[]> parameters() {
72+
return Arrays.asList(
73+
new Object[] { Settings.builder().put(CLUSTER_CONCURRENT_SEGMENT_SEARCH_SETTING.getKey(), false).build() },
74+
new Object[] { Settings.builder().put(CLUSTER_CONCURRENT_SEGMENT_SEARCH_SETTING.getKey(), true).build() }
75+
);
76+
}
77+
78+
@Override
79+
protected Settings featureFlagSettings() {
80+
return Settings.builder().put(super.featureFlagSettings()).put(FeatureFlags.CONCURRENT_SEGMENT_SEARCH, "true").build();
81+
}
5882

5983
public void testAllowPartialsWithRedState() throws Exception {
6084
final int numShards = cluster().numDataNodes() + 2;

server/src/internalClusterTest/java/org/opensearch/search/basic/SearchWhileCreatingIndexIT.java

+28-2
Original file line numberDiff line numberDiff line change
@@ -32,21 +32,47 @@
3232

3333
package org.opensearch.search.basic;
3434

35+
import com.carrotsearch.randomizedtesting.annotations.ParametersFactory;
36+
3537
import org.opensearch.action.admin.indices.refresh.RefreshResponse;
3638
import org.opensearch.action.search.SearchResponse;
3739
import org.opensearch.client.Client;
3840
import org.opensearch.cluster.health.ClusterHealthStatus;
41+
import org.opensearch.common.settings.Settings;
42+
import org.opensearch.common.util.FeatureFlags;
3943
import org.opensearch.index.query.QueryBuilders;
40-
import org.opensearch.test.OpenSearchIntegTestCase;
44+
import org.opensearch.test.ParameterizedOpenSearchIntegTestCase;
45+
46+
import java.util.Arrays;
47+
import java.util.Collection;
4148

49+
import static org.opensearch.search.SearchService.CLUSTER_CONCURRENT_SEGMENT_SEARCH_SETTING;
4250
import static org.opensearch.test.hamcrest.OpenSearchAssertions.assertHitCount;
4351
import static org.hamcrest.Matchers.greaterThanOrEqualTo;
4452

4553
/**
4654
* This test basically verifies that search with a single shard active (cause we indexed to it) and other
4755
* shards possibly not active at all (cause they haven't allocated) will still work.
4856
*/
49-
public class SearchWhileCreatingIndexIT extends OpenSearchIntegTestCase {
57+
public class SearchWhileCreatingIndexIT extends ParameterizedOpenSearchIntegTestCase {
58+
59+
public SearchWhileCreatingIndexIT(Settings dynamicSettings) {
60+
super(dynamicSettings);
61+
}
62+
63+
@ParametersFactory
64+
public static Collection<Object[]> parameters() {
65+
return Arrays.asList(
66+
new Object[] { Settings.builder().put(CLUSTER_CONCURRENT_SEGMENT_SEARCH_SETTING.getKey(), false).build() },
67+
new Object[] { Settings.builder().put(CLUSTER_CONCURRENT_SEGMENT_SEARCH_SETTING.getKey(), true).build() }
68+
);
69+
}
70+
71+
@Override
72+
protected Settings featureFlagSettings() {
73+
return Settings.builder().put(super.featureFlagSettings()).put(FeatureFlags.CONCURRENT_SEGMENT_SEARCH, "true").build();
74+
}
75+
5076
public void testIndexCausesIndexCreation() throws Exception {
5177
searchWhileCreatingIndex(false, 1); // 1 replica in our default...
5278
}

server/src/internalClusterTest/java/org/opensearch/search/basic/SearchWhileRelocatingIT.java

+25-1
Original file line numberDiff line numberDiff line change
@@ -32,28 +32,52 @@
3232

3333
package org.opensearch.search.basic;
3434

35+
import com.carrotsearch.randomizedtesting.annotations.ParametersFactory;
36+
3537
import org.opensearch.action.admin.cluster.health.ClusterHealthResponse;
3638
import org.opensearch.action.index.IndexRequestBuilder;
3739
import org.opensearch.action.search.SearchPhaseExecutionException;
3840
import org.opensearch.action.search.SearchResponse;
3941
import org.opensearch.common.Priority;
4042
import org.opensearch.common.settings.Settings;
43+
import org.opensearch.common.util.FeatureFlags;
4144
import org.opensearch.search.SearchHits;
4245
import org.opensearch.test.OpenSearchIntegTestCase;
46+
import org.opensearch.test.ParameterizedOpenSearchIntegTestCase;
4347

4448
import java.util.ArrayList;
49+
import java.util.Arrays;
50+
import java.util.Collection;
4551
import java.util.List;
4652
import java.util.concurrent.CopyOnWriteArrayList;
4753
import java.util.concurrent.atomic.AtomicBoolean;
4854

4955
import static org.opensearch.common.xcontent.XContentFactory.jsonBuilder;
56+
import static org.opensearch.search.SearchService.CLUSTER_CONCURRENT_SEGMENT_SEARCH_SETTING;
5057
import static org.opensearch.test.hamcrest.OpenSearchAssertions.assertHitCount;
5158
import static org.opensearch.test.hamcrest.OpenSearchAssertions.assertNoTimeout;
5259
import static org.opensearch.test.hamcrest.OpenSearchAssertions.formatShardStatus;
5360
import static org.hamcrest.Matchers.equalTo;
5461

5562
@OpenSearchIntegTestCase.ClusterScope(minNumDataNodes = 2)
56-
public class SearchWhileRelocatingIT extends OpenSearchIntegTestCase {
63+
public class SearchWhileRelocatingIT extends ParameterizedOpenSearchIntegTestCase {
64+
65+
public SearchWhileRelocatingIT(Settings dynamicSettings) {
66+
super(dynamicSettings);
67+
}
68+
69+
@ParametersFactory
70+
public static Collection<Object[]> parameters() {
71+
return Arrays.asList(
72+
new Object[] { Settings.builder().put(CLUSTER_CONCURRENT_SEGMENT_SEARCH_SETTING.getKey(), false).build() },
73+
new Object[] { Settings.builder().put(CLUSTER_CONCURRENT_SEGMENT_SEARCH_SETTING.getKey(), true).build() }
74+
);
75+
}
76+
77+
@Override
78+
protected Settings featureFlagSettings() {
79+
return Settings.builder().put(super.featureFlagSettings()).put(FeatureFlags.CONCURRENT_SEGMENT_SEARCH, "true").build();
80+
}
5781

5882
public void testSearchAndRelocateConcurrentlyRandomReplicas() throws Exception {
5983
testSearchAndRelocateConcurrently(randomIntBetween(0, 1));

server/src/internalClusterTest/java/org/opensearch/search/basic/SearchWithRandomExceptionsIT.java

+23-1
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@
3232

3333
package org.opensearch.search.basic;
3434

35+
import com.carrotsearch.randomizedtesting.annotations.ParametersFactory;
36+
3537
import org.apache.lucene.index.DirectoryReader;
3638
import org.apache.lucene.index.FilterDirectoryReader;
3739
import org.apache.lucene.index.LeafReader;
@@ -47,12 +49,14 @@
4749
import org.opensearch.common.settings.Settings;
4850
import org.opensearch.common.settings.Settings.Builder;
4951
import org.opensearch.common.unit.TimeValue;
52+
import org.opensearch.common.util.FeatureFlags;
5053
import org.opensearch.common.xcontent.XContentFactory;
5154
import org.opensearch.index.MockEngineFactoryPlugin;
5255
import org.opensearch.index.query.QueryBuilders;
5356
import org.opensearch.plugins.Plugin;
5457
import org.opensearch.search.sort.SortOrder;
5558
import org.opensearch.test.OpenSearchIntegTestCase;
59+
import org.opensearch.test.ParameterizedOpenSearchIntegTestCase;
5660
import org.opensearch.test.engine.MockEngineSupport;
5761
import org.opensearch.test.engine.ThrowingLeafReaderWrapper;
5862

@@ -64,9 +68,27 @@
6468
import java.util.Random;
6569
import java.util.concurrent.ExecutionException;
6670

71+
import static org.opensearch.search.SearchService.CLUSTER_CONCURRENT_SEGMENT_SEARCH_SETTING;
6772
import static org.opensearch.test.hamcrest.OpenSearchAssertions.assertAcked;
6873

69-
public class SearchWithRandomExceptionsIT extends OpenSearchIntegTestCase {
74+
public class SearchWithRandomExceptionsIT extends ParameterizedOpenSearchIntegTestCase {
75+
76+
public SearchWithRandomExceptionsIT(Settings dynamicSettings) {
77+
super(dynamicSettings);
78+
}
79+
80+
@ParametersFactory
81+
public static Collection<Object[]> parameters() {
82+
return Arrays.asList(
83+
new Object[] { Settings.builder().put(CLUSTER_CONCURRENT_SEGMENT_SEARCH_SETTING.getKey(), false).build() },
84+
new Object[] { Settings.builder().put(CLUSTER_CONCURRENT_SEGMENT_SEARCH_SETTING.getKey(), true).build() }
85+
);
86+
}
87+
88+
@Override
89+
protected Settings featureFlagSettings() {
90+
return Settings.builder().put(super.featureFlagSettings()).put(FeatureFlags.CONCURRENT_SEGMENT_SEARCH, "true").build();
91+
}
7092

7193
@Override
7294
protected Collection<Class<? extends Plugin>> nodePlugins() {

0 commit comments

Comments
 (0)