Skip to content

Commit 0908649

Browse files
authored
Merge branch 'main' into retry_shard_movements_during_query
2 parents e660001 + df83e88 commit 0908649

File tree

10 files changed

+330
-72
lines changed

10 files changed

+330
-72
lines changed

docs/changelog/126583.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
pr: 126583
2+
summary: Cancel expired async search task when a remote returns its results
3+
area: CCS
4+
type: bug
5+
issues: []

docs/changelog/126840.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
pr: 126840
2+
summary: Fix `PolicyStepsRegistry` cache concurrency issue
3+
area: ILM+SLM
4+
type: bug
5+
issues:
6+
- 118406

docs/changelog/126850.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
pr: 126850
2+
summary: "[otel-data] Bump plugin version to release _metric_names_hash changes"
3+
area: Data streams
4+
type: bug
5+
issues: []

docs/reference/query-languages/esql/esql-lookup-join.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
navigation_title: "Correlate data with LOOKUP JOIN"
33
mapped_pages:
4-
- https://www.elastic.co/guide/en/elasticsearch/reference/current/esql-enrich-data.html
4+
- https://www.elastic.co/guide/en/elasticsearch/reference/8.18/_lookup_join.html
55
---
66

77
# LOOKUP JOIN [esql-lookup-join-reference]
@@ -35,7 +35,7 @@ The `LOOKUP JOIN` command adds new columns to a table, with data from {{es}} ind
3535
:::
3636

3737
`<lookup_index>`
38-
: The name of the lookup index. This must be a specific index name - wildcards, aliases, and remote cluster references are not supported.
38+
: The name of the lookup index. This must be a specific index name - wildcards, aliases, and remote cluster references are not supported. Indices used for lookups must be configured with the [`lookup` index mode](/reference/elasticsearch/index-settings/index-modules.md#index-mode-setting).
3939

4040
`<field_name>`
4141
: The field to join on. This field must exist in both your current query results and in the lookup index. If the field contains multi-valued entries, those entries will not match anything (the added fields will contain `null` for those rows).
@@ -107,6 +107,7 @@ FROM employees
107107

108108
To use `LOOKUP JOIN`, the following requirements must be met:
109109

110+
* Indices used for lookups must be configured with the [`lookup` index mode](/reference/elasticsearch/index-settings/index-modules.md#index-mode-setting)
110111
* **Compatible data types**: The join key and join field in the lookup index must have compatible data types. This means:
111112
* The data types must either be identical or be internally represented as the same type in {{esql}}
112113
* Numeric types follow these compatibility rules:
@@ -122,7 +123,7 @@ For a complete list of supported data types and their internal representations,
122123

123124
The following are the current limitations with `LOOKUP JOIN`
124125

125-
* Indices in [lookup](/reference/elasticsearch/index-settings/index-modules.md#index-mode-setting) mode are always single-sharded.
126+
* Indices in [`lookup` mode](/reference/elasticsearch/index-settings/index-modules.md#index-mode-setting) are always single-sharded.
126127
* Cross cluster search is unsupported initially. Both source and lookup indices must be local.
127128
* Currently, only matching on equality is supported.
128129
* `LOOKUP JOIN` can only use a single match field and a single index. Wildcards, aliases, datemath, and datastreams are not supported.

muted-tests.yml

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -135,9 +135,6 @@ tests:
135135
- class: org.elasticsearch.xpack.test.rest.XPackRestIT
136136
method: test {p0=transform/transforms_unattended/Test unattended put and start}
137137
issue: https://github.com/elastic/elasticsearch/issues/120019
138-
- class: org.elasticsearch.xpack.ilm.actions.SearchableSnapshotActionIT
139-
method: testUpdatePolicyToAddPhasesYieldsInvalidActionsToBeSkipped
140-
issue: https://github.com/elastic/elasticsearch/issues/118406
141138
- class: org.elasticsearch.xpack.security.QueryableReservedRolesIT
142139
method: testConfiguredReservedRolesAfterClosingAndOpeningIndex
143140
issue: https://github.com/elastic/elasticsearch/issues/120127
@@ -408,6 +405,24 @@ tests:
408405
- class: org.elasticsearch.xpack.test.rest.XPackRestIT
409406
method: test {p0=ml/inference_crud/Test delete given unused trained model}
410407
issue: https://github.com/elastic/elasticsearch/issues/126881
408+
- class: org.elasticsearch.repositories.gcs.GoogleCloudStorageBlobStoreRepositoryTests
409+
method: testRequestStats
410+
issue: https://github.com/elastic/elasticsearch/issues/126902
411+
- class: org.elasticsearch.repositories.gcs.GoogleCloudStorageBlobStoreRepositoryTests
412+
method: testWriteReadLarge
413+
issue: https://github.com/elastic/elasticsearch/issues/126903
414+
- class: org.elasticsearch.repositories.gcs.GoogleCloudStorageBlobStoreRepositoryTests
415+
method: testWriteFileMultipleOfChunkSize
416+
issue: https://github.com/elastic/elasticsearch/issues/126908
417+
- class: org.elasticsearch.repositories.gcs.GoogleCloudStorageBlobStoreRepositoryTests
418+
method: testSnapshotWithLargeSegmentFiles
419+
issue: https://github.com/elastic/elasticsearch/issues/126909
420+
- class: org.elasticsearch.index.engine.CompletionStatsCacheTests
421+
method: testCompletionStatsCache
422+
issue: https://github.com/elastic/elasticsearch/issues/126910
423+
- class: org.elasticsearch.xpack.ml.integration.ClassificationHousePricingIT
424+
method: testFeatureImportanceValues
425+
issue: https://github.com/elastic/elasticsearch/issues/124341
411426

412427
# Examples:
413428
#

x-pack/plugin/async-search/src/internalClusterTest/java/org/elasticsearch/xpack/search/CCSUsageTelemetryAsyncSearchIT.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ public void resetSearchListenerPlugin() {
8787
}
8888

8989
private SubmitAsyncSearchRequest makeSearchRequest(String... indices) {
90-
CrossClusterAsyncSearchIT.SearchListenerPlugin.blockQueryPhase();
90+
CrossClusterAsyncSearchIT.SearchListenerPlugin.blockLocalQueryPhase();
9191

9292
SubmitAsyncSearchRequest request = new SubmitAsyncSearchRequest(indices);
9393
request.setCcsMinimizeRoundtrips(randomBoolean());
@@ -220,7 +220,8 @@ public void testCancelledSearch() throws Exception {
220220
String remoteIndex = (String) testClusterInfo.get("remote.index");
221221

222222
SubmitAsyncSearchRequest searchRequest = makeSearchRequest(localIndex, REMOTE1 + ":" + remoteIndex);
223-
CrossClusterAsyncSearchIT.SearchListenerPlugin.blockQueryPhase();
223+
CrossClusterAsyncSearchIT.SearchListenerPlugin.blockLocalQueryPhase();
224+
CrossClusterAsyncSearchIT.SearchListenerPlugin.blockRemoteQueryPhase();
224225

225226
String nodeName = cluster(LOCAL_CLUSTER).getRandomNodeName();
226227
final AsyncSearchResponse response = cluster(LOCAL_CLUSTER).client(nodeName)
@@ -232,7 +233,8 @@ public void testCancelledSearch() throws Exception {
232233
response.decRef();
233234
assertTrue(response.isRunning());
234235
}
235-
CrossClusterAsyncSearchIT.SearchListenerPlugin.waitSearchStarted();
236+
CrossClusterAsyncSearchIT.SearchListenerPlugin.waitLocalSearchStarted();
237+
CrossClusterAsyncSearchIT.SearchListenerPlugin.waitRemoteSearchStarted();
236238

237239
ActionFuture<ListTasksResponse> cancelFuture;
238240
try {
@@ -290,7 +292,8 @@ public void testCancelledSearch() throws Exception {
290292
assertTrue(taskInfo.description(), taskInfo.cancelled());
291293
}
292294
} finally {
293-
CrossClusterAsyncSearchIT.SearchListenerPlugin.allowQueryPhase();
295+
CrossClusterAsyncSearchIT.SearchListenerPlugin.allowLocalQueryPhase();
296+
CrossClusterAsyncSearchIT.SearchListenerPlugin.allowRemoteQueryPhase();
294297
}
295298

296299
assertBusy(() -> assertTrue(cancelFuture.isDone()));
@@ -314,7 +317,7 @@ private CCSTelemetrySnapshot getTelemetrySnapshot(String nodeName) {
314317
}
315318

316319
private Map<String, Object> setupClusters() {
317-
String localIndex = "demo";
320+
String localIndex = "local";
318321
int numShardsLocal = randomIntBetween(2, 10);
319322
Settings localSettings = indexSettings(numShardsLocal, randomIntBetween(0, 1)).build();
320323
assertAcked(
@@ -326,7 +329,7 @@ private Map<String, Object> setupClusters() {
326329
);
327330
indexDocs(client(LOCAL_CLUSTER), localIndex);
328331

329-
String remoteIndex = "prod";
332+
String remoteIndex = "remote";
330333
int numShardsRemote = randomIntBetween(2, 10);
331334
for (String clusterAlias : remoteClusterAlias()) {
332335
final InternalTestCluster remoteCluster = cluster(clusterAlias);

0 commit comments

Comments
 (0)