Skip to content

Commit f320c1a

Browse files
Run assertAcked(...) requests in parallel in some spots (#118980) (#119137)
Similar to how we sped up search tests we can parallelize a lot on `assertAcked` calls when those aren't logically dependant on one another. This speeds up tests quite a bit in some cases by avoiding unbatched CS updates or at least allowing for more parallelism. Also, this gives a bit more coverage as far as stressing the system with concurrent transport requests goes.
1 parent 1ab28f9 commit f320c1a

File tree

23 files changed

+184
-130
lines changed

23 files changed

+184
-130
lines changed

modules/aggregations/src/internalClusterTest/java/org/elasticsearch/aggregations/bucket/TimeSeriesTsidHashCardinalityIT.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -99,17 +99,12 @@ public void setUp() throws Exception {
9999
.setSettings(
100100
settings.put(IndexMetadata.SETTING_INDEX_VERSION_CREATED.getKey(), IndexVersions.NEW_INDEXVERSION_FORMAT).build()
101101
)
102-
.setMapping(mapping)
103-
.get()
104-
);
105-
106-
assertAcked(
102+
.setMapping(mapping),
107103
indicesAdmin().prepareCreate(afterIndex)
108104
.setSettings(
109105
settings.put(IndexMetadata.SETTING_INDEX_VERSION_CREATED.getKey(), IndexVersions.TIME_SERIES_ID_HASHING).build()
110106
)
111107
.setMapping(mapping)
112-
.get()
113108
);
114109

115110
final TimeSeriesDataset timeSeriesDataset = new TimeSeriesDataset();

server/src/internalClusterTest/java/org/elasticsearch/action/IndicesRequestIT.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import org.elasticsearch.action.admin.indices.cache.clear.TransportClearIndicesCacheAction;
1616
import org.elasticsearch.action.admin.indices.close.CloseIndexRequest;
1717
import org.elasticsearch.action.admin.indices.close.TransportCloseIndexAction;
18+
import org.elasticsearch.action.admin.indices.create.CreateIndexRequestBuilder;
1819
import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest;
1920
import org.elasticsearch.action.admin.indices.delete.TransportDeleteIndexAction;
2021
import org.elasticsearch.action.admin.indices.flush.FlushRequest;
@@ -157,9 +158,11 @@ public void setup() {
157158
for (int i = 0; i < numIndices; i++) {
158159
indices.add("test" + i);
159160
}
160-
for (String index : indices) {
161-
assertAcked(prepareCreate(index).addAlias(new Alias(index + "-alias")));
162-
}
161+
assertAcked(
162+
indices.stream()
163+
.map(index -> prepareCreate(index).addAlias(new Alias(index + "-alias")))
164+
.toArray(CreateIndexRequestBuilder[]::new)
165+
);
163166
ensureGreen();
164167
}
165168

server/src/internalClusterTest/java/org/elasticsearch/action/admin/indices/create/CreateIndexIT.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -158,8 +158,7 @@ public void testEmptyMappings() throws Exception {
158158
}
159159

160160
public void testTwoEmptyEqualMappings() throws Exception {
161-
assertAcked(prepareCreate("test1"));
162-
assertAcked(prepareCreate("test2").setMapping(XContentFactory.jsonBuilder().startObject().endObject()));
161+
assertAcked(prepareCreate("test1"), prepareCreate("test2").setMapping(XContentFactory.jsonBuilder().startObject().endObject()));
163162
FieldCapabilitiesRequest fieldCapsReq1 = new FieldCapabilitiesRequest();
164163
fieldCapsReq1.indices("test1");
165164
fieldCapsReq1.fields("*");

server/src/internalClusterTest/java/org/elasticsearch/action/admin/indices/rollover/RolloverIT.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -649,9 +649,11 @@ public void testRolloverWithClosedIndexInAlias() {
649649
final String openNonwriteIndex = "open-index-nonwrite";
650650
final String closedIndex = "closed-index-nonwrite";
651651
final String writeIndexPrefix = "write-index-";
652-
assertAcked(prepareCreate(openNonwriteIndex).addAlias(new Alias(aliasName)).get());
653-
assertAcked(prepareCreate(closedIndex).addAlias(new Alias(aliasName)).get());
654-
assertAcked(prepareCreate(writeIndexPrefix + "000001").addAlias(new Alias(aliasName).writeIndex(true)).get());
652+
assertAcked(
653+
prepareCreate(openNonwriteIndex).addAlias(new Alias(aliasName)),
654+
prepareCreate(closedIndex).addAlias(new Alias(aliasName)),
655+
prepareCreate(writeIndexPrefix + "000001").addAlias(new Alias(aliasName).writeIndex(true))
656+
);
655657
ensureGreen();
656658

657659
index(closedIndex, null, "{\"foo\": \"bar\"}");
@@ -674,17 +676,18 @@ public void testRolloverWithClosedWriteIndex() throws Exception {
674676
final String openNonwriteIndex = "open-index-nonwrite";
675677
final String closedIndex = "closed-index-nonwrite";
676678
final String writeIndexPrefix = "write-index-";
677-
assertAcked(prepareCreate(openNonwriteIndex).addAlias(new Alias(aliasName)).get());
678-
assertAcked(prepareCreate(closedIndex).addAlias(new Alias(aliasName)).get());
679-
assertAcked(prepareCreate(writeIndexPrefix + "000001").addAlias(new Alias(aliasName).writeIndex(true)).get());
679+
assertAcked(
680+
prepareCreate(openNonwriteIndex).addAlias(new Alias(aliasName)),
681+
prepareCreate(closedIndex).addAlias(new Alias(aliasName)),
682+
prepareCreate(writeIndexPrefix + "000001").addAlias(new Alias(aliasName).writeIndex(true))
683+
);
680684
ensureGreen(openNonwriteIndex, closedIndex, writeIndexPrefix + "000001");
681685
index(closedIndex, null, "{\"foo\": \"bar\"}");
682686
index(aliasName, null, "{\"foo\": \"bar\"}");
683687
index(aliasName, null, "{\"foo\": \"bar\"}");
684688
refresh(aliasName);
685689

686-
assertAcked(indicesAdmin().prepareClose(closedIndex).get());
687-
assertAcked(indicesAdmin().prepareClose(writeIndexPrefix + "000001").get());
690+
assertAcked(indicesAdmin().prepareClose(closedIndex, writeIndexPrefix + "000001").get());
688691
ensureGreen(aliasName);
689692

690693
RolloverResponse rolloverResponse = indicesAdmin().prepareRolloverIndex(aliasName)

server/src/internalClusterTest/java/org/elasticsearch/action/search/TransportSearchIT.java

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -307,11 +307,15 @@ public void testFinalReduce() throws ExecutionException, InterruptedException {
307307

308308
public void testWaitForRefreshIndexValidation() throws Exception {
309309
int numberOfShards = randomIntBetween(3, 10);
310-
assertAcked(prepareCreate("test1").setSettings(Settings.builder().put(IndexMetadata.SETTING_NUMBER_OF_SHARDS, numberOfShards)));
311-
assertAcked(prepareCreate("test2").setSettings(Settings.builder().put(IndexMetadata.SETTING_NUMBER_OF_SHARDS, numberOfShards)));
312-
assertAcked(prepareCreate("test3").setSettings(Settings.builder().put(IndexMetadata.SETTING_NUMBER_OF_SHARDS, numberOfShards)));
313-
indicesAdmin().prepareAliases().addAlias("test1", "testAlias").get();
314-
indicesAdmin().prepareAliases().addAlias(new String[] { "test2", "test3" }, "testFailedAlias").get();
310+
assertAcked(
311+
prepareCreate("test1").setSettings(Settings.builder().put(IndexMetadata.SETTING_NUMBER_OF_SHARDS, numberOfShards)),
312+
prepareCreate("test2").setSettings(Settings.builder().put(IndexMetadata.SETTING_NUMBER_OF_SHARDS, numberOfShards)),
313+
prepareCreate("test3").setSettings(Settings.builder().put(IndexMetadata.SETTING_NUMBER_OF_SHARDS, numberOfShards))
314+
);
315+
assertAcked(
316+
indicesAdmin().prepareAliases().addAlias("test1", "testAlias"),
317+
indicesAdmin().prepareAliases().addAlias(new String[] { "test2", "test3" }, "testFailedAlias")
318+
);
315319

316320
long[] validCheckpoints = new long[numberOfShards];
317321
Arrays.fill(validCheckpoints, SequenceNumbers.UNASSIGNED_SEQ_NO);
@@ -376,8 +380,10 @@ public void testShardCountLimit() throws Exception {
376380
try {
377381
final int numPrimaries1 = randomIntBetween(2, 10);
378382
final int numPrimaries2 = randomIntBetween(1, 10);
379-
assertAcked(prepareCreate("test1").setSettings(Settings.builder().put(IndexMetadata.SETTING_NUMBER_OF_SHARDS, numPrimaries1)));
380-
assertAcked(prepareCreate("test2").setSettings(Settings.builder().put(IndexMetadata.SETTING_NUMBER_OF_SHARDS, numPrimaries2)));
383+
assertAcked(
384+
prepareCreate("test1").setSettings(Settings.builder().put(IndexMetadata.SETTING_NUMBER_OF_SHARDS, numPrimaries1)),
385+
prepareCreate("test2").setSettings(Settings.builder().put(IndexMetadata.SETTING_NUMBER_OF_SHARDS, numPrimaries2))
386+
);
381387

382388
// no exception
383389
prepareSearch("test1").get().decRef();

server/src/internalClusterTest/java/org/elasticsearch/action/termvectors/GetTermVectorsIT.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -531,8 +531,10 @@ private void checkBrownFoxTermVector(Fields fields, String fieldName, boolean wi
531531
public void testDuelWithAndWithoutTermVectors() throws IOException, ExecutionException, InterruptedException {
532532
// setup indices
533533
String[] indexNames = new String[] { "with_tv", "without_tv" };
534-
assertAcked(prepareCreate(indexNames[0]).setMapping("field1", "type=text,term_vector=with_positions_offsets,analyzer=keyword"));
535-
assertAcked(prepareCreate(indexNames[1]).setMapping("field1", "type=text,term_vector=no,analyzer=keyword"));
534+
assertAcked(
535+
prepareCreate(indexNames[1]).setMapping("field1", "type=text,term_vector=no,analyzer=keyword"),
536+
prepareCreate(indexNames[0]).setMapping("field1", "type=text,term_vector=with_positions_offsets,analyzer=keyword")
537+
);
536538
ensureGreen();
537539

538540
// index documents with and without term vectors
@@ -1074,9 +1076,7 @@ public void testWithKeywordAndNormalizer() throws IOException, ExecutionExceptio
10741076
"type=text,term_vector=with_positions_offsets,analyzer=my_analyzer",
10751077
"field2",
10761078
"type=text,term_vector=with_positions_offsets,analyzer=keyword"
1077-
)
1078-
);
1079-
assertAcked(
1079+
),
10801080
prepareCreate(indexNames[1]).setSettings(builder.build())
10811081
.setMapping("field1", "type=keyword,normalizer=my_normalizer", "field2", "type=keyword")
10821082
);

server/src/internalClusterTest/java/org/elasticsearch/aliases/IndexAliasesIT.java

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -349,10 +349,8 @@ public void testSearchingFilteringAliasesSingleIndex() throws Exception {
349349
}
350350

351351
public void testSearchingFilteringAliasesTwoIndices() throws Exception {
352-
logger.info("--> creating index [test1]");
353-
assertAcked(prepareCreate("test1").setMapping("name", "type=text"));
354-
logger.info("--> creating index [test2]");
355-
assertAcked(prepareCreate("test2").setMapping("name", "type=text"));
352+
logger.info("--> creating indices [test1, test2]");
353+
assertAcked(prepareCreate("test1").setMapping("name", "type=text"), prepareCreate("test2").setMapping("name", "type=text"));
356354
ensureGreen();
357355

358356
logger.info("--> adding filtering aliases to index [test1]");
@@ -559,8 +557,7 @@ public void testSearchingFilteringAliasesMultipleIndices() throws Exception {
559557

560558
public void testDeletingByQueryFilteringAliases() throws Exception {
561559
logger.info("--> creating index [test1] and [test2");
562-
assertAcked(prepareCreate("test1").setMapping("name", "type=text"));
563-
assertAcked(prepareCreate("test2").setMapping("name", "type=text"));
560+
assertAcked(prepareCreate("test1").setMapping("name", "type=text"), prepareCreate("test2").setMapping("name", "type=text"));
564561
ensureGreen();
565562

566563
logger.info("--> adding filtering aliases to index [test1]");
@@ -614,8 +611,7 @@ public void testDeletingByQueryFilteringAliases() throws Exception {
614611

615612
public void testDeleteAliases() throws Exception {
616613
logger.info("--> creating index [test1] and [test2]");
617-
assertAcked(prepareCreate("test1").setMapping("name", "type=text"));
618-
assertAcked(prepareCreate("test2").setMapping("name", "type=text"));
614+
assertAcked(prepareCreate("test1").setMapping("name", "type=text"), prepareCreate("test2").setMapping("name", "type=text"));
619615
ensureGreen();
620616

621617
logger.info("--> adding filtering aliases to index [test1]");
@@ -653,8 +649,7 @@ public void testDeleteAliases() throws Exception {
653649
}
654650

655651
logger.info("--> creating index [foo_foo] and [bar_bar]");
656-
assertAcked(prepareCreate("foo_foo"));
657-
assertAcked(prepareCreate("bar_bar"));
652+
assertAcked(prepareCreate("foo_foo"), prepareCreate("bar_bar"));
658653
ensureGreen();
659654

660655
logger.info("--> adding [foo] alias to [foo_foo] and [bar_bar]");
@@ -1197,13 +1192,15 @@ public void testAliasesWithBlocks() {
11971192
}
11981193
}
11991194

1200-
public void testAliasActionRemoveIndex() throws InterruptedException, ExecutionException {
1201-
assertAcked(prepareCreate("foo_foo"));
1202-
assertAcked(prepareCreate("bar_bar"));
1203-
assertAliasesVersionIncreases(new String[] { "foo_foo", "bar_bar" }, () -> {
1204-
assertAcked(indicesAdmin().prepareAliases().addAlias("foo_foo", "foo"));
1205-
assertAcked(indicesAdmin().prepareAliases().addAlias("bar_bar", "foo"));
1206-
});
1195+
public void testAliasActionRemoveIndex() {
1196+
assertAcked(prepareCreate("foo_foo"), prepareCreate("bar_bar"));
1197+
assertAliasesVersionIncreases(
1198+
new String[] { "foo_foo", "bar_bar" },
1199+
() -> assertAcked(
1200+
indicesAdmin().prepareAliases().addAlias("bar_bar", "foo"),
1201+
indicesAdmin().prepareAliases().addAlias("foo_foo", "foo")
1202+
)
1203+
);
12071204

12081205
IllegalArgumentException iae = expectThrows(IllegalArgumentException.class, indicesAdmin().prepareAliases().removeIndex("foo"));
12091206
assertEquals(

server/src/internalClusterTest/java/org/elasticsearch/cluster/routing/allocation/decider/UpdateShardAllocationSettingsIT.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,10 @@ public void testEnableRebalance() {
3939
// we test with 2 shards since otherwise it's pretty fragile if there are difference in the num or shards such that
4040
// all shards are relocated to the second node which is not what we want here. It's solely a test for the settings to take effect
4141
final int numShards = 2;
42-
assertAcked(prepareCreate("test").setSettings(indexSettings(numShards, 0)));
43-
assertAcked(prepareCreate("test_1").setSettings(indexSettings(numShards, 0)));
42+
assertAcked(
43+
prepareCreate("test").setSettings(indexSettings(numShards, 0)),
44+
prepareCreate("test_1").setSettings(indexSettings(numShards, 0))
45+
);
4446
ensureGreen();
4547
assertAllShardsOnNodes("test", firstNode);
4648
assertAllShardsOnNodes("test_1", firstNode);

server/src/internalClusterTest/java/org/elasticsearch/indices/IndicesRequestCacheIT.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -321,9 +321,11 @@ public void testQueryRewriteDates() throws Exception {
321321
public void testQueryRewriteDatesWithNow() throws Exception {
322322
Client client = client();
323323
Settings settings = indexSettings(1, 0).put(IndicesRequestCache.INDEX_CACHE_REQUEST_ENABLED_SETTING.getKey(), true).build();
324-
assertAcked(indicesAdmin().prepareCreate("index-1").setMapping("d", "type=date").setSettings(settings).get());
325-
assertAcked(indicesAdmin().prepareCreate("index-2").setMapping("d", "type=date").setSettings(settings).get());
326-
assertAcked(indicesAdmin().prepareCreate("index-3").setMapping("d", "type=date").setSettings(settings).get());
324+
assertAcked(
325+
indicesAdmin().prepareCreate("index-1").setMapping("d", "type=date").setSettings(settings),
326+
indicesAdmin().prepareCreate("index-2").setMapping("d", "type=date").setSettings(settings),
327+
indicesAdmin().prepareCreate("index-3").setMapping("d", "type=date").setSettings(settings)
328+
);
327329
ZonedDateTime now = ZonedDateTime.now(ZoneOffset.UTC);
328330
DateFormatter formatter = DateFormatter.forPattern("strict_date_optional_time");
329331
indexRandom(

server/src/internalClusterTest/java/org/elasticsearch/indices/mapping/SimpleGetFieldMappingsIT.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,9 +81,10 @@ private XContentBuilder getMappingForType() throws IOException {
8181
}
8282

8383
public void testGetFieldMappings() throws Exception {
84-
85-
assertAcked(prepareCreate("indexa").setMapping(getMappingForType()));
86-
assertAcked(indicesAdmin().prepareCreate("indexb").setMapping(getMappingForType()));
84+
assertAcked(
85+
prepareCreate("indexa").setMapping(getMappingForType()),
86+
indicesAdmin().prepareCreate("indexb").setMapping(getMappingForType())
87+
);
8788

8889
// Get mappings by full name
8990
GetFieldMappingsResponse response = indicesAdmin().prepareGetFieldMappings("indexa").setFields("field1", "obj.subfield").get();

0 commit comments

Comments
 (0)