Skip to content

Commit ebca69f

Browse files
Revert "Re-enable some performance updates to ES|QL" (#136781) (#137520)
This reverts commit 4d3e27f. And then re-applies the revert to #134738, so we only get an effective revert of #134511.
1 parent 60b89a8 commit ebca69f

File tree

2 files changed

+13
-49
lines changed

2 files changed

+13
-49
lines changed

x-pack/plugin/esql/qa/testFixtures/src/main/java/org/elasticsearch/xpack/esql/CsvTestsDataLoader.java

Lines changed: 11 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
import org.apache.http.client.CredentialsProvider;
1818
import org.apache.http.impl.client.BasicCredentialsProvider;
1919
import org.apache.logging.log4j.core.config.plugins.util.PluginManager;
20-
import org.apache.lucene.util.IOConsumer;
2120
import org.elasticsearch.client.Request;
2221
import org.elasticsearch.client.Response;
2322
import org.elasticsearch.client.ResponseException;
@@ -31,7 +30,6 @@
3130
import org.elasticsearch.inference.TaskType;
3231
import org.elasticsearch.logging.LogManager;
3332
import org.elasticsearch.logging.Logger;
34-
import org.elasticsearch.test.ESTestCase;
3533
import org.elasticsearch.test.rest.ESRestTestCase;
3634
import org.elasticsearch.xcontent.XContentType;
3735

@@ -45,7 +43,6 @@
4543
import java.util.List;
4644
import java.util.Map;
4745
import java.util.Set;
48-
import java.util.concurrent.Semaphore;
4946
import java.util.regex.Matcher;
5047
import java.util.regex.Pattern;
5148
import java.util.stream.Collectors;
@@ -58,7 +55,6 @@
5855
import static org.elasticsearch.xpack.esql.EsqlTestUtils.reader;
5956

6057
public class CsvTestsDataLoader {
61-
private static final int PARALLEL_THREADS = 10;
6258
private static final int BULK_DATA_SIZE = 100_000;
6359
private static final TestDataset EMPLOYEES = new TestDataset("employees", "mapping-default.json", "employees.csv").noSubfields();
6460
private static final TestDataset EMPLOYEES_INCOMPATIBLE = new TestDataset(
@@ -433,42 +429,18 @@ private static void loadDataSetIntoEs(
433429
IndexCreator indexCreator
434430
) throws IOException {
435431
Logger logger = LogManager.getLogger(CsvTestsDataLoader.class);
436-
List<TestDataset> datasets = availableDatasetsForEs(
437-
supportsIndexModeLookup,
438-
supportsSourceFieldMapping,
439-
inferenceEnabled,
440-
timeSeriesOnly
441-
).stream().toList();
442-
443-
logger.info("Creating test indices");
444-
executeInParallel(datasets, dataset -> createIndex(client, dataset, indexCreator), "Failed to create indices in parallel");
445432

433+
Set<String> loadedDatasets = new HashSet<>();
446434
logger.info("Loading test datasets");
447-
executeInParallel(datasets, dataset -> loadData(client, dataset, logger), "Failed to load data in parallel");
448-
449-
forceMerge(client, datasets.stream().map(d -> d.indexName).collect(Collectors.toSet()), logger);
450-
435+
for (var dataset : availableDatasetsForEs(supportsIndexModeLookup, supportsSourceFieldMapping, inferenceEnabled, timeSeriesOnly)) {
436+
load(client, dataset, logger, indexCreator);
437+
loadedDatasets.add(dataset.indexName);
438+
}
439+
forceMerge(client, loadedDatasets, logger);
451440
logger.info("Loading enrich policies");
452-
executeInParallel(
453-
ENRICH_POLICIES,
454-
policy -> loadEnrichPolicy(client, policy.policyName, policy.policyFileName, logger),
455-
"Failed to load enrich policies in parallel"
456-
);
457-
458-
}
459-
460-
private static <T> void executeInParallel(List<T> items, IOConsumer<T> consumer, String errorMessage) {
461-
Semaphore semaphore = new Semaphore(PARALLEL_THREADS);
462-
ESTestCase.runInParallel(items.size(), i -> {
463-
try {
464-
semaphore.acquire();
465-
consumer.accept(items.get(i));
466-
} catch (IOException | InterruptedException e) {
467-
throw new RuntimeException(errorMessage, e);
468-
} finally {
469-
semaphore.release();
470-
}
471-
});
441+
for (var policy : ENRICH_POLICIES) {
442+
loadEnrichPolicy(client, policy.policyName, policy.policyFileName, logger);
443+
}
472444
}
473445

474446
public static void createInferenceEndpoints(RestClient client) throws IOException {
@@ -626,14 +598,12 @@ private static URL getResource(String name) {
626598
return result;
627599
}
628600

629-
private static void createIndex(RestClient client, TestDataset dataset, IndexCreator indexCreator) throws IOException {
601+
private static void load(RestClient client, TestDataset dataset, Logger logger, IndexCreator indexCreator) throws IOException {
602+
logger.info("Loading dataset [{}] into ES index [{}]", dataset.dataFileName, dataset.indexName);
630603
URL mapping = getResource("/" + dataset.mappingFileName);
631604
Settings indexSettings = dataset.readSettingsFile();
632605
indexCreator.createIndex(client, dataset.indexName, readMappingFile(mapping, dataset.typeMapping), indexSettings);
633-
}
634606

635-
private static void loadData(RestClient client, TestDataset dataset, Logger logger) throws IOException {
636-
logger.info("Loading dataset [{}] into ES index [{}]", dataset.dataFileName, dataset.indexName);
637607
// Some examples only test that the query and mappings are valid, and don't need example data. Use .noData() for those
638608
if (dataset.dataFileName != null) {
639609
URL data = getResource("/data/" + dataset.dataFileName);

x-pack/plugin/esql/qa/testFixtures/src/test/java/org/elasticsearch/xpack/esql/CsvTestsDataLoaderTests.java

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,12 @@
1111

1212
import java.net.ConnectException;
1313

14-
import static org.hamcrest.Matchers.instanceOf;
1514
import static org.hamcrest.Matchers.startsWith;
1615

1716
public class CsvTestsDataLoaderTests extends ESTestCase {
1817

1918
public void testCsvTestsDataLoaderExecution() {
20-
Throwable cause = expectThrows(AssertionError.class, () -> CsvTestsDataLoader.main(new String[] {}));
21-
// find the root cause
22-
while (cause.getCause() != null) {
23-
cause = cause.getCause();
24-
}
25-
assertThat(cause, instanceOf(ConnectException.class));
26-
assertThat(cause.getMessage(), startsWith("Connection refused"));
19+
ConnectException ce = expectThrows(ConnectException.class, () -> CsvTestsDataLoader.main(new String[] {}));
20+
assertThat(ce.getMessage(), startsWith("Connection refused"));
2721
}
2822
}

0 commit comments

Comments
 (0)