Skip to content

Commit 02bf170

Browse files
Revert "ccs_minimize_roundtrips should default to true for async search f…" (#136198)
This reverts commit 391e78d.
1 parent b7237d3 commit 02bf170

File tree

6 files changed

+15
-90
lines changed

6 files changed

+15
-90
lines changed

modules/lang-mustache/src/main/java/org/elasticsearch/script/mustache/RestSearchTemplateAction.java

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323

2424
import java.io.IOException;
2525
import java.util.List;
26-
import java.util.Optional;
2726
import java.util.Set;
2827
import java.util.function.Predicate;
2928

@@ -39,12 +38,10 @@ public class RestSearchTemplateAction extends BaseRestHandler {
3938

4039
private final Predicate<NodeFeature> clusterSupportsFeature;
4140
private final Settings settings;
42-
private final boolean inCpsContext;
4341

4442
public RestSearchTemplateAction(Predicate<NodeFeature> clusterSupportsFeature, Settings settings) {
4543
this.clusterSupportsFeature = clusterSupportsFeature;
4644
this.settings = settings;
47-
this.inCpsContext = settings != null && settings.getAsBoolean("serverless.cross_project.enabled", false);
4845
}
4946

5047
@Override
@@ -64,7 +61,7 @@ public String getName() {
6461

6562
@Override
6663
public RestChannelConsumer prepareRequest(RestRequest request, NodeClient client) throws IOException {
67-
if (inCpsContext) {
64+
if (settings != null && settings.getAsBoolean("serverless.cross_project.enabled", false)) {
6865
// accept but drop project_routing param until fully supported
6966
request.param("project_routing");
7067
}
@@ -76,9 +73,7 @@ public RestChannelConsumer prepareRequest(RestRequest request, NodeClient client
7673
request,
7774
null,
7875
clusterSupportsFeature,
79-
size -> searchRequest.source().size(size),
80-
// This endpoint is CPS-enabled so propagate the right value.
81-
Optional.of(inCpsContext)
76+
size -> searchRequest.source().size(size)
8277
);
8378

8479
// Creates the search template request

modules/reindex/src/main/java/org/elasticsearch/reindex/AbstractBulkByQueryRestHandler.java

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626

2727
import java.io.IOException;
2828
import java.util.Map;
29-
import java.util.Optional;
3029
import java.util.function.Consumer;
3130
import java.util.function.Predicate;
3231

@@ -53,14 +52,7 @@ protected void parseInternalRequest(
5352
SearchRequest searchRequest = internal.getSearchRequest();
5453

5554
try (XContentParser parser = extractRequestSpecificFields(restRequest, bodyConsumers)) {
56-
RestSearchAction.parseSearchRequest(
57-
searchRequest,
58-
restRequest,
59-
parser,
60-
clusterSupportsFeature,
61-
size -> failOnSizeSpecified(),
62-
Optional.empty()
63-
);
55+
RestSearchAction.parseSearchRequest(searchRequest, restRequest, parser, clusterSupportsFeature, size -> failOnSizeSpecified());
6456
}
6557

6658
searchRequest.source().size(restRequest.paramAsInt("scroll_size", searchRequest.source().size()));

server/src/main/java/org/elasticsearch/rest/action/search/RestSearchAction.java

Lines changed: 8 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@
4343
import java.util.Arrays;
4444
import java.util.List;
4545
import java.util.Locale;
46-
import java.util.Optional;
4746
import java.util.Set;
4847
import java.util.function.IntConsumer;
4948
import java.util.function.Predicate;
@@ -69,7 +68,6 @@ public class RestSearchAction extends BaseRestHandler {
6968
private final SearchUsageHolder searchUsageHolder;
7069
private final Predicate<NodeFeature> clusterSupportsFeature;
7170
private final Settings settings;
72-
private final boolean inCpsContext;
7371

7472
public RestSearchAction(SearchUsageHolder searchUsageHolder, Predicate<NodeFeature> clusterSupportsFeature) {
7573
this(searchUsageHolder, clusterSupportsFeature, null);
@@ -79,7 +77,6 @@ public RestSearchAction(SearchUsageHolder searchUsageHolder, Predicate<NodeFeatu
7977
this.searchUsageHolder = searchUsageHolder;
8078
this.clusterSupportsFeature = clusterSupportsFeature;
8179
this.settings = settings;
82-
this.inCpsContext = settings != null && settings.getAsBoolean("serverless.cross_project.enabled", false);
8380
}
8481

8582
@Override
@@ -112,7 +109,7 @@ public RestChannelConsumer prepareRequest(final RestRequest request, final NodeC
112109
// this might be set by old clients
113110
request.param("min_compatible_shard_node");
114111

115-
if (inCpsContext) {
112+
if (settings != null && settings.getAsBoolean("serverless.cross_project.enabled", false)) {
116113
// accept but drop project_routing param until fully supported
117114
request.param("project_routing");
118115
}
@@ -131,16 +128,7 @@ public RestChannelConsumer prepareRequest(final RestRequest request, final NodeC
131128
*/
132129
IntConsumer setSize = size -> searchRequest.source().size(size);
133130
request.withContentOrSourceParamParserOrNull(
134-
parser -> parseSearchRequest(
135-
searchRequest,
136-
request,
137-
parser,
138-
clusterSupportsFeature,
139-
setSize,
140-
searchUsageHolder,
141-
// This endpoint is CPS-enabled so propagate the right value.
142-
Optional.of(inCpsContext)
143-
)
131+
parser -> parseSearchRequest(searchRequest, request, parser, clusterSupportsFeature, setSize, searchUsageHolder)
144132
);
145133

146134
return channel -> {
@@ -158,23 +146,15 @@ public RestChannelConsumer prepareRequest(final RestRequest request, final NodeC
158146
* parameter
159147
* @param clusterSupportsFeature used to check if certain features are available in this cluster
160148
* @param setSize how the size url parameter is handled. {@code udpate_by_query} and regular search differ here.
161-
* @param inCpsContext specifies if we're in CPS context.
162-
* <br>
163-
* true - the endpoint that's invoking this method is CPS-enabled and in a CPS/Serverless context.
164-
* <br>
165-
* false - the endpoint that's invoking this method is CPS-enabled but not in a CPS/Serverless context.
166-
* <br>
167-
* Optional.empty - the endpoint is not CPS-enabled irrespective of the environment.
168149
*/
169150
public static void parseSearchRequest(
170151
SearchRequest searchRequest,
171152
RestRequest request,
172153
XContentParser requestContentParser,
173154
Predicate<NodeFeature> clusterSupportsFeature,
174-
IntConsumer setSize,
175-
Optional<Boolean> inCpsContext
155+
IntConsumer setSize
176156
) throws IOException {
177-
parseSearchRequest(searchRequest, request, requestContentParser, clusterSupportsFeature, setSize, null, inCpsContext);
157+
parseSearchRequest(searchRequest, request, requestContentParser, clusterSupportsFeature, setSize, null);
178158
}
179159

180160
/**
@@ -187,22 +167,14 @@ public static void parseSearchRequest(
187167
* @param clusterSupportsFeature used to check if certain features are available in this cluster
188168
* @param setSize how the size url parameter is handled. {@code udpate_by_query} and regular search differ here.
189169
* @param searchUsageHolder the holder of search usage stats
190-
* @param inCpsContext specifies if we're in CPS context.
191-
* <br>
192-
* true - the endpoint that's invoking this method is CPS-enabled and in a CPS/Serverless context.
193-
* <br>
194-
* false - the endpoint that's invoking this method is CPS-enabled but not in a CPS/Serverless context.
195-
* <br>
196-
* Optional.empty - the endpoint is not CPS-enabled irrespective of the environment.
197170
*/
198171
public static void parseSearchRequest(
199172
SearchRequest searchRequest,
200173
RestRequest request,
201174
@Nullable XContentParser requestContentParser,
202175
Predicate<NodeFeature> clusterSupportsFeature,
203176
IntConsumer setSize,
204-
@Nullable SearchUsageHolder searchUsageHolder,
205-
Optional<Boolean> inCpsContext
177+
@Nullable SearchUsageHolder searchUsageHolder
206178
) throws IOException {
207179
if (searchRequest.source() == null) {
208180
searchRequest.source(new SearchSourceBuilder());
@@ -257,17 +229,9 @@ public static void parseSearchRequest(
257229
if (searchRequest.pointInTimeBuilder() != null) {
258230
preparePointInTime(searchRequest, request);
259231
} else {
260-
if (inCpsContext.orElse(false)) {
261-
// We're in CPS environment. MRT should not be settable by the user.
262-
if (request.hasParam("ccs_minimize_roundtrips")) {
263-
throw new IllegalArgumentException("Setting ccs_minimize_roundtrips is not supported in cross-project search context");
264-
}
265-
} else {
266-
// Either we're in non-CPS environment or the endpoint isn't CPS enabled, so parse what's in the request.
267-
searchRequest.setCcsMinimizeRoundtrips(
268-
request.paramAsBoolean("ccs_minimize_roundtrips", searchRequest.isCcsMinimizeRoundtrips())
269-
);
270-
}
232+
searchRequest.setCcsMinimizeRoundtrips(
233+
request.paramAsBoolean("ccs_minimize_roundtrips", searchRequest.isCcsMinimizeRoundtrips())
234+
);
271235
}
272236
if (request.paramAsBoolean("force_synthetic_source", false)) {
273237
searchRequest.setForceSyntheticSource(true);

x-pack/plugin/async-search/src/main/java/org/elasticsearch/xpack/search/RestSubmitAsyncSearchAction.java

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import java.io.IOException;
2525
import java.util.Collections;
2626
import java.util.List;
27-
import java.util.Optional;
2827
import java.util.Set;
2928
import java.util.function.IntConsumer;
3029
import java.util.function.Predicate;
@@ -40,7 +39,6 @@ public final class RestSubmitAsyncSearchAction extends BaseRestHandler {
4039
private final SearchUsageHolder searchUsageHolder;
4140
private final Predicate<NodeFeature> clusterSupportsFeature;
4241
private final Settings settings;
43-
private final boolean inCpsContext;
4442

4543
public RestSubmitAsyncSearchAction(SearchUsageHolder searchUsageHolder, Predicate<NodeFeature> clusterSupportsFeature) {
4644
this(searchUsageHolder, clusterSupportsFeature, null);
@@ -54,7 +52,6 @@ public RestSubmitAsyncSearchAction(
5452
this.searchUsageHolder = searchUsageHolder;
5553
this.clusterSupportsFeature = clusterSupportsFeature;
5654
this.settings = settings;
57-
this.inCpsContext = settings != null && settings.getAsBoolean("serverless.cross_project.enabled", false);
5855
}
5956

6057
@Override
@@ -74,10 +71,9 @@ protected RestChannelConsumer prepareRequest(RestRequest request, NodeClient cli
7471
}
7572
SubmitAsyncSearchRequest submit = new SubmitAsyncSearchRequest();
7673

77-
if (inCpsContext) {
74+
if (settings != null && settings.getAsBoolean("serverless.cross_project.enabled", false)) {
7875
// accept but drop project_routing param until fully supported
7976
request.param("project_routing");
80-
submit.getSearchRequest().setCcsMinimizeRoundtrips(true);
8177
}
8278

8379
IntConsumer setSize = size -> submit.getSearchRequest().source().size(size);
@@ -86,16 +82,7 @@ protected RestChannelConsumer prepareRequest(RestRequest request, NodeClient cli
8682
// them as supported. We rely on SubmitAsyncSearchRequest#validate to fail in case they are set.
8783
// Note that ccs_minimize_roundtrips is also set this way, which is a supported option.
8884
request.withContentOrSourceParamParserOrNull(
89-
parser -> parseSearchRequest(
90-
submit.getSearchRequest(),
91-
request,
92-
parser,
93-
clusterSupportsFeature,
94-
setSize,
95-
searchUsageHolder,
96-
// This endpoint is CPS-enabled so propagate the right value.
97-
Optional.of(inCpsContext)
98-
)
85+
parser -> parseSearchRequest(submit.getSearchRequest(), request, parser, clusterSupportsFeature, setSize, searchUsageHolder)
9986
);
10087

10188
if (request.hasParam("wait_for_completion_timeout")) {

x-pack/plugin/fleet/src/main/java/org/elasticsearch/xpack/fleet/rest/RestFleetSearchAction.java

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
import java.util.Arrays;
2727
import java.util.Collections;
2828
import java.util.List;
29-
import java.util.Optional;
3029
import java.util.Set;
3130
import java.util.function.IntConsumer;
3231
import java.util.function.Predicate;
@@ -71,16 +70,7 @@ protected RestChannelConsumer prepareRequest(RestRequest request, NodeClient cli
7170

7271
IntConsumer setSize = size -> searchRequest.source().size(size);
7372
request.withContentOrSourceParamParserOrNull(parser -> {
74-
RestSearchAction.parseSearchRequest(
75-
searchRequest,
76-
request,
77-
parser,
78-
clusterSupportsFeature,
79-
setSize,
80-
searchUsageHolder,
81-
// This endpoint is not CPS-enabled.
82-
Optional.empty()
83-
);
73+
RestSearchAction.parseSearchRequest(searchRequest, request, parser, clusterSupportsFeature, setSize, searchUsageHolder);
8474
String[] stringWaitForCheckpoints = request.paramAsStringArray("wait_for_checkpoints", Strings.EMPTY_ARRAY);
8575
final long[] waitForCheckpoints = new long[stringWaitForCheckpoints.length];
8676
for (int i = 0; i < stringWaitForCheckpoints.length; ++i) {

x-pack/plugin/rollup/src/main/java/org/elasticsearch/xpack/rollup/rest/RestRollupSearchAction.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717

1818
import java.io.IOException;
1919
import java.util.List;
20-
import java.util.Optional;
2120
import java.util.Set;
2221
import java.util.function.Predicate;
2322

@@ -53,9 +52,7 @@ protected RestChannelConsumer prepareRequest(RestRequest restRequest, NodeClient
5352
restRequest,
5453
parser,
5554
clusterSupportsFeature,
56-
size -> searchRequest.source().size(size),
57-
// This endpoint is not CPS-enabled.
58-
Optional.empty()
55+
size -> searchRequest.source().size(size)
5956
)
6057
);
6158
RestSearchAction.validateSearchRequest(restRequest, searchRequest);

0 commit comments

Comments
 (0)