Skip to content

Commit e4ea78f

Browse files
Revert "Delay creation of the next SearchPhase in executeNextPhase (#116061)"
This reverts commit a222e16.
1 parent a222e16 commit e4ea78f

File tree

7 files changed

+10
-17
lines changed

7 files changed

+10
-17
lines changed

server/src/main/java/org/elasticsearch/action/search/AbstractSearchAsyncAction.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@
5555
import java.util.concurrent.atomic.AtomicInteger;
5656
import java.util.function.BiFunction;
5757
import java.util.function.Consumer;
58-
import java.util.function.Supplier;
5958
import java.util.stream.Collectors;
6059

6160
import static org.elasticsearch.core.Strings.format;
@@ -344,7 +343,7 @@ protected abstract void executePhaseOnShard(
344343
);
345344

346345
@Override
347-
public final void executeNextPhase(SearchPhase currentPhase, Supplier<SearchPhase> nextPhaseSupplier) {
346+
public final void executeNextPhase(SearchPhase currentPhase, SearchPhase nextPhase) {
348347
/* This is the main search phase transition where we move to the next phase. If all shards
349348
* failed or if there was a failure and partial results are not allowed, then we immediately
350349
* fail. Otherwise we continue to the next phase.
@@ -388,7 +387,6 @@ public final void executeNextPhase(SearchPhase currentPhase, Supplier<SearchPhas
388387
}
389388
return;
390389
}
391-
var nextPhase = nextPhaseSupplier.get();
392390
if (logger.isTraceEnabled()) {
393391
final String resultsFrom = results.getSuccessfulResults()
394392
.map(r -> r.getSearchShardTarget().toString())
@@ -699,7 +697,7 @@ private void raisePhaseFailure(SearchPhaseExecutionException exception) {
699697
* @see #onShardResult(SearchPhaseResult, SearchShardIterator)
700698
*/
701699
final void onPhaseDone() { // as a tribute to @kimchy aka. finishHim()
702-
executeNextPhase(this, () -> getNextPhase(results, this));
700+
executeNextPhase(this, getNextPhase(results, this));
703701
}
704702

705703
@Override

server/src/main/java/org/elasticsearch/action/search/DfsQueryPhase.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ public void run() {
7878
final CountedCollector<SearchPhaseResult> counter = new CountedCollector<>(
7979
queryResult,
8080
searchResults.size(),
81-
() -> context.executeNextPhase(this, () -> nextPhaseFactory.apply(queryResult)),
81+
() -> context.executeNextPhase(this, nextPhaseFactory.apply(queryResult)),
8282
context
8383
);
8484

server/src/main/java/org/elasticsearch/action/search/ExpandSearchPhase.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,6 @@ private static SearchSourceBuilder buildExpandSearchSourceBuilder(InnerHitBuilde
164164
}
165165

166166
private void onPhaseDone() {
167-
context.executeNextPhase(this, nextPhase);
167+
context.executeNextPhase(this, nextPhase.get());
168168
}
169169
}

server/src/main/java/org/elasticsearch/action/search/FetchSearchPhase.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -269,11 +269,9 @@ private void moveToNextPhase(
269269
AtomicArray<? extends SearchPhaseResult> fetchResultsArr,
270270
SearchPhaseController.ReducedQueryPhase reducedQueryPhase
271271
) {
272-
context.executeNextPhase(this, () -> {
273-
var resp = SearchPhaseController.merge(context.getRequest().scroll() != null, reducedQueryPhase, fetchResultsArr);
274-
context.addReleasable(resp::decRef);
275-
return nextPhaseFactory.apply(resp, searchPhaseShardResults);
276-
});
272+
var resp = SearchPhaseController.merge(context.getRequest().scroll() != null, reducedQueryPhase, fetchResultsArr);
273+
context.addReleasable(resp::decRef);
274+
context.executeNextPhase(this, nextPhaseFactory.apply(resp, searchPhaseShardResults));
277275
}
278276

279277
private boolean shouldExplainRankScores(SearchRequest request) {

server/src/main/java/org/elasticsearch/action/search/RankFeaturePhase.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,6 @@ private float maxScore(ScoreDoc[] scoreDocs) {
236236
}
237237

238238
void moveToNextPhase(SearchPhaseResults<SearchPhaseResult> phaseResults, SearchPhaseController.ReducedQueryPhase reducedQueryPhase) {
239-
context.executeNextPhase(this, () -> new FetchSearchPhase(phaseResults, aggregatedDfs, context, reducedQueryPhase));
239+
context.executeNextPhase(this, new FetchSearchPhase(phaseResults, aggregatedDfs, context, reducedQueryPhase));
240240
}
241241
}

server/src/main/java/org/elasticsearch/action/search/SearchPhaseContext.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import org.elasticsearch.transport.Transport;
2020

2121
import java.util.concurrent.Executor;
22-
import java.util.function.Supplier;
2322

2423
/**
2524
* This class provide contextual state and access to resources across multiple search phases.
@@ -121,7 +120,7 @@ default void sendReleaseSearchContext(
121120
* of the next phase. If there are no successful operations in the context when this method is executed the search is aborted and
122121
* a response is returned to the user indicating that all shards have failed.
123122
*/
124-
void executeNextPhase(SearchPhase currentPhase, Supplier<SearchPhase> nextPhaseSupplier);
123+
void executeNextPhase(SearchPhase currentPhase, SearchPhase nextPhase);
125124

126125
/**
127126
* Registers a {@link Releasable} that will be closed when the search request finishes or fails.

server/src/test/java/org/elasticsearch/action/search/MockSearchPhaseContext.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
import java.util.Set;
3131
import java.util.concurrent.atomic.AtomicInteger;
3232
import java.util.concurrent.atomic.AtomicReference;
33-
import java.util.function.Supplier;
3433

3534
/**
3635
* SearchPhaseContext for tests
@@ -133,8 +132,7 @@ public SearchTransportService getSearchTransport() {
133132
}
134133

135134
@Override
136-
public void executeNextPhase(SearchPhase currentPhase, Supplier<SearchPhase> nextPhaseSupplier) {
137-
var nextPhase = nextPhaseSupplier.get();
135+
public void executeNextPhase(SearchPhase currentPhase, SearchPhase nextPhase) {
138136
try {
139137
nextPhase.run();
140138
} catch (Exception e) {

0 commit comments

Comments
 (0)