Skip to content

Commit a53dd2b

Browse files
authored
Merge branch 'main' into json-parser-exc
2 parents 9b1331b + 352db86 commit a53dd2b

File tree

59 files changed

+3266
-185
lines changed

Some content is hidden

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

59 files changed

+3266
-185
lines changed

docs/changelog/126091.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
pr: 126091
2+
summary: Allow balancing weights to be set per tier
3+
area: Allocation
4+
type: enhancement
5+
issues: []

docs/changelog/126286.yaml

Lines changed: 0 additions & 6 deletions
This file was deleted.

docs/changelog/127225.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
pr: 127225
2+
summary: Fix count optimization with pushable union types
3+
area: ES|QL
4+
type: bug
5+
issues:
6+
- 127200

docs/changelog/127351.yaml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
pr: 127351
2+
summary: Allow partial results by default in ES|QL
3+
area: ES|QL
4+
type: breaking
5+
issues: [122802]
6+
7+
breaking:
8+
title: Allow partial results by default in ES|QL
9+
area: ES|QL
10+
details: >-
11+
In earlier versions of {es}, ES|QL would fail the entire query if it encountered any error. ES|QL now returns partial results instead of failing when encountering errors.
12+
13+
impact: >-
14+
Callers should check the `is_partial` flag returned in the response to determine if the result is partial or complete. If returning partial results is not desired, this option can be overridden per request via an `allow_partial_results` parameter in the query URL or globally via the cluster setting `esql.query.allow_partial_results`.
15+
16+
notable: true

docs/release-notes/breaking-changes.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,11 @@ If you are migrating from a version prior to version 9.0, you must first upgrade
1212

1313
% ## Next version [elasticsearch-nextversion-breaking-changes]
1414

15+
## 9.1.0 [elasticsearch-910-breaking-changes]
16+
17+
ES|QL
18+
: * Allow partial results by default in ES|QL [#125060](https://github.com/elastic/elasticsearch/pull/125060)
19+
1520
## 9.0.0 [elasticsearch-900-breaking-changes]
1621

1722
Aggregations:

modules/data-streams/src/internalClusterTest/java/org/elasticsearch/datastreams/DataStreamSettingsIT.java

Lines changed: 355 additions & 0 deletions
Large diffs are not rendered by default.

modules/data-streams/src/main/java/org/elasticsearch/datastreams/DataStreamsPlugin.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,11 @@
1414
import org.elasticsearch.action.datastreams.DataStreamsStatsAction;
1515
import org.elasticsearch.action.datastreams.DeleteDataStreamAction;
1616
import org.elasticsearch.action.datastreams.GetDataStreamAction;
17+
import org.elasticsearch.action.datastreams.GetDataStreamSettingsAction;
1718
import org.elasticsearch.action.datastreams.MigrateToDataStreamAction;
1819
import org.elasticsearch.action.datastreams.ModifyDataStreamsAction;
1920
import org.elasticsearch.action.datastreams.PromoteDataStreamAction;
21+
import org.elasticsearch.action.datastreams.UpdateDataStreamSettingsAction;
2022
import org.elasticsearch.action.datastreams.lifecycle.ExplainDataStreamLifecycleAction;
2123
import org.elasticsearch.action.datastreams.lifecycle.GetDataStreamLifecycleAction;
2224
import org.elasticsearch.action.datastreams.lifecycle.PutDataStreamLifecycleAction;
@@ -34,10 +36,12 @@
3436
import org.elasticsearch.datastreams.action.TransportCreateDataStreamAction;
3537
import org.elasticsearch.datastreams.action.TransportDataStreamsStatsAction;
3638
import org.elasticsearch.datastreams.action.TransportDeleteDataStreamAction;
39+
import org.elasticsearch.datastreams.action.TransportGetDataStreamSettingsAction;
3740
import org.elasticsearch.datastreams.action.TransportGetDataStreamsAction;
3841
import org.elasticsearch.datastreams.action.TransportMigrateToDataStreamAction;
3942
import org.elasticsearch.datastreams.action.TransportModifyDataStreamsAction;
4043
import org.elasticsearch.datastreams.action.TransportPromoteDataStreamAction;
44+
import org.elasticsearch.datastreams.action.TransportUpdateDataStreamSettingsAction;
4145
import org.elasticsearch.datastreams.lifecycle.DataStreamLifecycleErrorStore;
4246
import org.elasticsearch.datastreams.lifecycle.DataStreamLifecycleService;
4347
import org.elasticsearch.datastreams.lifecycle.action.DeleteDataStreamLifecycleAction;
@@ -239,6 +243,8 @@ public List<ActionHandler> getActions() {
239243
actions.add(new ActionHandler(GetDataStreamOptionsAction.INSTANCE, TransportGetDataStreamOptionsAction.class));
240244
actions.add(new ActionHandler(PutDataStreamOptionsAction.INSTANCE, TransportPutDataStreamOptionsAction.class));
241245
actions.add(new ActionHandler(DeleteDataStreamOptionsAction.INSTANCE, TransportDeleteDataStreamOptionsAction.class));
246+
actions.add(new ActionHandler(GetDataStreamSettingsAction.INSTANCE, TransportGetDataStreamSettingsAction.class));
247+
actions.add(new ActionHandler(UpdateDataStreamSettingsAction.INSTANCE, TransportUpdateDataStreamSettingsAction.class));
242248
return actions;
243249
}
244250

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
/*
2+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3+
* or more contributor license agreements. Licensed under the "Elastic License
4+
* 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side
5+
* Public License v 1"; you may not use this file except in compliance with, at
6+
* your election, the "Elastic License 2.0", the "GNU Affero General Public
7+
* License v3.0 only", or the "Server Side Public License, v 1".
8+
*/
9+
10+
package org.elasticsearch.datastreams.action;
11+
12+
import org.elasticsearch.action.ActionListener;
13+
import org.elasticsearch.action.admin.indices.settings.get.GetSettingsAction;
14+
import org.elasticsearch.action.datastreams.GetDataStreamSettingsAction;
15+
import org.elasticsearch.action.support.ActionFilters;
16+
import org.elasticsearch.action.support.IndicesOptions;
17+
import org.elasticsearch.action.support.local.TransportLocalProjectMetadataAction;
18+
import org.elasticsearch.cluster.ProjectState;
19+
import org.elasticsearch.cluster.block.ClusterBlockException;
20+
import org.elasticsearch.cluster.block.ClusterBlockLevel;
21+
import org.elasticsearch.cluster.metadata.DataStream;
22+
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
23+
import org.elasticsearch.cluster.project.ProjectResolver;
24+
import org.elasticsearch.cluster.service.ClusterService;
25+
import org.elasticsearch.common.settings.Settings;
26+
import org.elasticsearch.common.settings.SettingsFilter;
27+
import org.elasticsearch.injection.guice.Inject;
28+
import org.elasticsearch.tasks.Task;
29+
import org.elasticsearch.threadpool.ThreadPool;
30+
import org.elasticsearch.transport.TransportService;
31+
32+
import java.util.ArrayList;
33+
import java.util.List;
34+
import java.util.Map;
35+
36+
public class TransportGetDataStreamSettingsAction extends TransportLocalProjectMetadataAction<
37+
GetDataStreamSettingsAction.Request,
38+
GetDataStreamSettingsAction.Response> {
39+
private final IndexNameExpressionResolver indexNameExpressionResolver;
40+
private final SettingsFilter settingsFilter;
41+
42+
@Inject
43+
public TransportGetDataStreamSettingsAction(
44+
TransportService transportService,
45+
ClusterService clusterService,
46+
ThreadPool threadPool,
47+
SettingsFilter settingsFilter,
48+
ActionFilters actionFilters,
49+
ProjectResolver projectResolver,
50+
IndexNameExpressionResolver indexNameExpressionResolver
51+
) {
52+
super(
53+
GetSettingsAction.NAME,
54+
actionFilters,
55+
transportService.getTaskManager(),
56+
clusterService,
57+
threadPool.executor(ThreadPool.Names.MANAGEMENT),
58+
projectResolver
59+
);
60+
this.indexNameExpressionResolver = indexNameExpressionResolver;
61+
this.settingsFilter = settingsFilter;
62+
}
63+
64+
@Override
65+
protected ClusterBlockException checkBlock(GetDataStreamSettingsAction.Request request, ProjectState state) {
66+
return state.blocks().globalBlockedException(ClusterBlockLevel.METADATA_WRITE);
67+
}
68+
69+
@Override
70+
protected void localClusterStateOperation(
71+
Task task,
72+
GetDataStreamSettingsAction.Request request,
73+
ProjectState project,
74+
ActionListener<GetDataStreamSettingsAction.Response> listener
75+
) throws Exception {
76+
List<String> dataStreamNames = indexNameExpressionResolver.dataStreamNames(
77+
clusterService.state(),
78+
IndicesOptions.DEFAULT,
79+
request.indices()
80+
);
81+
Map<String, DataStream> dataStreamMap = project.metadata().dataStreams();
82+
List<GetDataStreamSettingsAction.DataStreamSettingsResponse> responseList = new ArrayList<>(dataStreamNames.size());
83+
for (String dataStreamName : dataStreamNames) {
84+
DataStream dataStream = dataStreamMap.get(dataStreamName);
85+
Settings settings = settingsFilter.filter(dataStream.getSettings());
86+
Settings effectiveSettings = settingsFilter.filter(dataStream.getEffectiveSettings(project.metadata()));
87+
responseList.add(new GetDataStreamSettingsAction.DataStreamSettingsResponse(dataStreamName, settings, effectiveSettings));
88+
}
89+
listener.onResponse(new GetDataStreamSettingsAction.Response(responseList));
90+
}
91+
}

0 commit comments

Comments
 (0)