Skip to content

Commit a5bfc84

Browse files
committed
Revert "Revert "Allow subclasses to control whether primary action is forced""
This reverts commit 9f89af7.
1 parent 9f89af7 commit a5bfc84

File tree

2 files changed

+11
-21
lines changed

2 files changed

+11
-21
lines changed

server/src/main/java/org/elasticsearch/action/resync/TransportResyncReplicationAction.java

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@
4747
import org.elasticsearch.transport.TransportService;
4848

4949
import java.io.IOException;
50-
import java.util.function.Supplier;
5150

5251
public class TransportResyncReplicationAction extends TransportWriteAction<ResyncReplicationRequest,
5352
ResyncReplicationRequest, ResyncReplicationResponse> implements PrimaryReplicaSyncer.SyncAction {
@@ -64,18 +63,9 @@ public TransportResyncReplicationAction(Settings settings, TransportService tran
6463
}
6564

6665
@Override
67-
protected void registerRequestHandlers(String actionName, TransportService transportService, Supplier<ResyncReplicationRequest> request,
68-
Supplier<ResyncReplicationRequest> replicaRequest, String executor) {
69-
transportService.registerRequestHandler(actionName, request, ThreadPool.Names.SAME, this::handleOperationRequest);
66+
protected boolean forcePrimaryActionExecution() {
7067
// we should never reject resync because of thread pool capacity on primary
71-
transportService.registerRequestHandler(transportPrimaryAction,
72-
() -> new ConcreteShardRequest<>(request),
73-
executor, true, true,
74-
this::handlePrimaryRequest);
75-
transportService.registerRequestHandler(transportReplicaAction,
76-
() -> new ConcreteReplicaRequest<>(replicaRequest),
77-
executor, true, true,
78-
this::handleReplicaRequest);
68+
return true;
7969
}
8070

8171
@Override

server/src/main/java/org/elasticsearch/action/support/replication/TransportReplicationAction.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -144,21 +144,21 @@ protected TransportReplicationAction(Settings settings, String actionName, Trans
144144

145145
this.transportPrimaryAction = actionName + "[p]";
146146
this.transportReplicaAction = actionName + "[r]";
147-
registerRequestHandlers(actionName, transportService, request, replicaRequest, executor);
147+
148+
transportService.registerRequestHandler(actionName, request, ThreadPool.Names.SAME, this::handleOperationRequest);
149+
transportService.registerRequestHandler(transportPrimaryAction, () -> new ConcreteShardRequest<>(request), executor, true,
150+
forcePrimaryActionExecution(), this::handlePrimaryRequest);
151+
// we must never reject on because of thread pool capacity on replicas
152+
transportService.registerRequestHandler(
153+
transportReplicaAction, () -> new ConcreteReplicaRequest<>(replicaRequest), executor, true, true, this::handleReplicaRequest);
148154

149155
this.transportOptions = transportOptions(settings);
150156

151157
this.syncGlobalCheckpointAfterOperation = syncGlobalCheckpointAfterOperation;
152158
}
153159

154-
protected void registerRequestHandlers(String actionName, TransportService transportService, Supplier<Request> request,
155-
Supplier<ReplicaRequest> replicaRequest, String executor) {
156-
transportService.registerRequestHandler(actionName, request, ThreadPool.Names.SAME, this::handleOperationRequest);
157-
transportService.registerRequestHandler(transportPrimaryAction, () -> new ConcreteShardRequest<>(request), executor,
158-
this::handlePrimaryRequest);
159-
// we must never reject on because of thread pool capacity on replicas
160-
transportService.registerRequestHandler(
161-
transportReplicaAction, () -> new ConcreteReplicaRequest<>(replicaRequest), executor, true, true, this::handleReplicaRequest);
160+
protected boolean forcePrimaryActionExecution() {
161+
return false;
162162
}
163163

164164
@Override

0 commit comments

Comments
 (0)