Skip to content

Commit 9d593a4

Browse files
authored
Merge branch 'main' into checkNumNestedClauses
2 parents 1b7cce8 + 778b868 commit 9d593a4

File tree

52 files changed

+766
-210
lines changed

Some content is hidden

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

52 files changed

+766
-210
lines changed

build-tools-internal/src/main/resources/changelog-schema.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@
8686
"Rollup",
8787
"SQL",
8888
"Search",
89+
"Searchable Snapshots",
8990
"Security",
9091
"Snapshot/Restore",
9192
"Stats",

docs/changelog/128910.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
pr: 128910
2+
summary: Fix `FieldAttribute` name usage in `InferNonNullAggConstraint`
3+
area: ES|QL
4+
type: bug
5+
issues: []

docs/reference/query-languages/esql/_snippets/lists/search-functions.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,4 @@
22
* [preview] [`MATCH`](../../functions-operators/search-functions.md#esql-match)
33
* [preview] [`MATCH_PHRASE`](../../functions-operators/search-functions.md#esql-match_phrase)
44
* [preview] [`QSTR`](../../functions-operators/search-functions.md#esql-qstr)
5-
% * [preview] [
6-
`TERM`](../../functions-operators/search-functions.md#esql-term)
5+
% * [preview] [`TERM`](../../functions-operators/search-functions.md#esql-term)

muted-tests.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -520,6 +520,9 @@ tests:
520520
- class: org.elasticsearch.xpack.esql.qa.single_node.GenerativeForkIT
521521
method: test {lookup-join.MultipleBatches*
522522
issue: https://github.com/elastic/elasticsearch/issues/129210
523+
- class: org.elasticsearch.compute.data.sort.LongTopNSetTests
524+
method: testCrankyBreaker
525+
issue: https://github.com/elastic/elasticsearch/issues/129257
523526

524527
# Examples:
525528
#
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
---
2+
setup:
3+
- requires:
4+
cluster_features: ["mapper.search_load_per_shard"]
5+
reason: Shard search load stats were introduced in 9.1
6+
---
7+
"Search load is tracked at shard level":
8+
- do:
9+
indices.create:
10+
index: index
11+
body:
12+
mappings:
13+
properties:
14+
name:
15+
type: text
16+
description:
17+
type: text
18+
price:
19+
type: double
20+
21+
- do:
22+
indices.stats:
23+
index: "index"
24+
level: shards
25+
metric: [ search ]
26+
27+
- match: { _all.total.search.recent_search_load: 0.0 }
28+
- match: { indices.index.total.search.recent_search_load: 0.0 }
29+
- match: { indices.index.shards.0.0.search.recent_search_load: 0.0 }
30+
31+
- do:
32+
index:
33+
index: index
34+
body: { "name": "specialty coffee", "description": "arabica coffee beans", "price": 100 }
35+
36+
- do:
37+
search:
38+
index: index
39+
body:
40+
query:
41+
match: { name: "specialty coffee" }
42+
size: 1
43+
44+
- do:
45+
indices.stats:
46+
index: "index"
47+
level: shards
48+
metric: [ search ]
49+
50+
- gte: { _all.total.search.recent_search_load: 0.0 }
51+
- gte: { indices.index.total.search.recent_search_load: 0.0 }
52+
- gte: { indices.index.shards.0.0.search.recent_search_load: 0.0 }

server/src/internalClusterTest/java/org/elasticsearch/index/shard/IndexShardIT.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@
5353
import org.elasticsearch.index.flush.FlushStats;
5454
import org.elasticsearch.index.mapper.MapperMetrics;
5555
import org.elasticsearch.index.mapper.SourceToParse;
56+
import org.elasticsearch.index.search.stats.SearchStatsSettings;
5657
import org.elasticsearch.index.seqno.RetentionLeaseSyncer;
5758
import org.elasticsearch.index.seqno.SequenceNumbers;
5859
import org.elasticsearch.index.translog.TestTranslog;
@@ -638,7 +639,8 @@ public static final IndexShard newIndexShard(
638639
System::nanoTime,
639640
null,
640641
MapperMetrics.NOOP,
641-
new IndexingStatsSettings(ClusterSettings.createBuiltInClusterSettings())
642+
new IndexingStatsSettings(ClusterSettings.createBuiltInClusterSettings()),
643+
new SearchStatsSettings(ClusterSettings.createBuiltInClusterSettings())
642644
);
643645
}
644646

server/src/main/java/org/elasticsearch/TransportVersions.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,7 @@ static TransportVersion def(int id) {
292292
public static final TransportVersion SEARCH_SOURCE_EXCLUDE_VECTORS_PARAM = def(9_092_0_00);
293293
public static final TransportVersion SNAPSHOT_INDEX_SHARD_STATUS_MISSING_STATS = def(9_093_0_00);
294294
public static final TransportVersion ML_INFERENCE_ELASTIC_RERANK = def(9_094_0_00);
295+
public static final TransportVersion SEARCH_LOAD_PER_INDEX_STATS = def(9_095_0_00);
295296

296297
/*
297298
* STOP! READ THIS FIRST! No, really,

server/src/main/java/org/elasticsearch/action/admin/indices/dangling/delete/TransportDeleteDanglingIndexAction.java

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
import org.elasticsearch.cluster.block.ClusterBlockException;
3030
import org.elasticsearch.cluster.metadata.IndexGraveyard;
3131
import org.elasticsearch.cluster.metadata.IndexMetadata;
32-
import org.elasticsearch.cluster.metadata.Metadata;
32+
import org.elasticsearch.cluster.metadata.ProjectMetadata;
3333
import org.elasticsearch.cluster.service.ClusterService;
3434
import org.elasticsearch.common.settings.Settings;
3535
import org.elasticsearch.core.SuppressForbidden;
@@ -126,9 +126,9 @@ private void submitUnbatchedTask(@SuppressWarnings("SameParameterValue") String
126126
}
127127

128128
private ClusterState deleteDanglingIndex(ClusterState currentState, Index indexToDelete) {
129-
final Metadata metaData = currentState.getMetadata();
129+
final var project = currentState.metadata().getProject();
130130

131-
for (Map.Entry<String, IndexMetadata> each : metaData.getProject().indices().entrySet()) {
131+
for (Map.Entry<String, IndexMetadata> each : project.indices().entrySet()) {
132132
if (indexToDelete.getUUID().equals(each.getValue().getIndexUUID())) {
133133
throw new IllegalArgumentException(
134134
"Refusing to delete dangling index "
@@ -143,18 +143,13 @@ private ClusterState deleteDanglingIndex(ClusterState currentState, Index indexT
143143
// By definition, a dangling index is an index not present in the cluster state and with no tombstone,
144144
// so we shouldn't reach this point if these conditions aren't met. For super-safety, however, check
145145
// that a tombstone doesn't already exist for this index.
146-
if (metaData.getProject().indexGraveyard().containsIndex(indexToDelete)) {
146+
if (project.indexGraveyard().containsIndex(indexToDelete)) {
147147
return currentState;
148148
}
149149

150-
Metadata.Builder metaDataBuilder = Metadata.builder(metaData);
151-
152-
final IndexGraveyard newGraveyard = IndexGraveyard.builder(metaDataBuilder.indexGraveyard())
153-
.addTombstone(indexToDelete)
154-
.build(settings);
155-
metaDataBuilder.indexGraveyard(newGraveyard);
156-
157-
return ClusterState.builder(currentState).metadata(metaDataBuilder.build()).build();
150+
final IndexGraveyard newGraveyard = IndexGraveyard.builder(project.indexGraveyard()).addTombstone(indexToDelete).build(settings);
151+
final ProjectMetadata updatedProject = ProjectMetadata.builder(project).indexGraveyard(newGraveyard).build();
152+
return ClusterState.builder(currentState).putProjectMetadata(updatedProject).build();
158153
}
159154

160155
@Override

server/src/main/java/org/elasticsearch/cluster/metadata/Metadata.java

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1780,17 +1780,6 @@ public Builder removeReservedState(ReservedStateMetadata metadata) {
17801780
return this;
17811781
}
17821782

1783-
@Deprecated(forRemoval = true)
1784-
public Builder indexGraveyard(final IndexGraveyard indexGraveyard) {
1785-
getSingleProject().indexGraveyard(indexGraveyard);
1786-
return this;
1787-
}
1788-
1789-
@Deprecated(forRemoval = true)
1790-
public IndexGraveyard indexGraveyard() {
1791-
return getSingleProject().indexGraveyard();
1792-
}
1793-
17941783
@Deprecated(forRemoval = true)
17951784
public Builder updateSettings(Settings settings, String... indices) {
17961785
getSingleProject().updateSettings(settings, indices);

server/src/main/java/org/elasticsearch/common/settings/ClusterSettings.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@
9090
import org.elasticsearch.index.MergePolicyConfig;
9191
import org.elasticsearch.index.engine.ThreadPoolMergeExecutorService;
9292
import org.elasticsearch.index.engine.ThreadPoolMergeScheduler;
93+
import org.elasticsearch.index.search.stats.SearchStatsSettings;
9394
import org.elasticsearch.index.shard.IndexingStatsSettings;
9495
import org.elasticsearch.indices.IndexingMemoryController;
9596
import org.elasticsearch.indices.IndicesQueryCache;
@@ -640,6 +641,7 @@ public void apply(Settings value, Settings current, Settings previous) {
640641
ShardsAvailabilityHealthIndicatorService.REPLICA_UNASSIGNED_BUFFER_TIME,
641642
DataStreamFailureStoreSettings.DATA_STREAM_FAILURE_STORED_ENABLED_SETTING,
642643
IndexingStatsSettings.RECENT_WRITE_LOAD_HALF_LIFE_SETTING,
644+
SearchStatsSettings.RECENT_READ_LOAD_HALF_LIFE_SETTING,
643645
TransportGetAllocationStatsAction.CACHE_TTL_SETTING
644646
);
645647
}

0 commit comments

Comments
 (0)