Skip to content

Commit d904d48

Browse files
Remove Redundant Cluster State Update Response Classes (#63646)
These intermediary response types don't contain any information outside of what the shard acknowledged and acknowledged responses contain so this PR removes them. Also, it adds three constants for the three possible states of `ShardsAcknowledgedResponse`. Follow up to #63335
1 parent 607713f commit d904d48

File tree

55 files changed

+221
-530
lines changed

Some content is hidden

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

55 files changed

+221
-530
lines changed

client/rest-high-level/src/test/java/org/elasticsearch/client/indices/CloseIndexResponseTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ public final void testBwcFromXContent() throws IOException {
191191
{
192192
final boolean acknowledged = randomBoolean();
193193
final boolean shardsAcknowledged = acknowledged ? randomBoolean() : false;
194-
final ShardsAcknowledgedResponse expected = new ShardsAcknowledgedResponse(acknowledged, shardsAcknowledged){};
194+
final ShardsAcknowledgedResponse expected = ShardsAcknowledgedResponse.of(acknowledged, shardsAcknowledged);
195195

196196
final XContentType xContentType = randomFrom(XContentType.values());
197197
final BytesReference bytes = toShuffledXContent(expected, xContentType, getParams(), randomBoolean());

server/src/internalClusterTest/java/org/elasticsearch/cluster/service/ClusterServiceIT.java

Lines changed: 4 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -59,12 +59,7 @@ public void testAckedUpdateTask() throws Exception {
5959
final CountDownLatch latch = new CountDownLatch(1);
6060
final CountDownLatch processedLatch = new CountDownLatch(1);
6161
clusterService.submitStateUpdateTask("test",
62-
new AckedClusterStateUpdateTask<Void>(MasterServiceTests.ackedRequest(TEN_SECONDS, TEN_SECONDS), null) {
63-
@Override
64-
protected Void newResponse(boolean acknowledged) {
65-
return null;
66-
}
67-
62+
new AckedClusterStateUpdateTask(MasterServiceTests.ackedRequest(TEN_SECONDS, TEN_SECONDS), null) {
6863
@Override
6964
public boolean mustAck(DiscoveryNode discoveryNode) {
7065
return true;
@@ -123,12 +118,7 @@ public void testAckedUpdateTaskSameClusterState() throws Exception {
123118
final CountDownLatch latch = new CountDownLatch(1);
124119
final CountDownLatch processedLatch = new CountDownLatch(1);
125120
clusterService.submitStateUpdateTask("test",
126-
new AckedClusterStateUpdateTask<Void>(MasterServiceTests.ackedRequest(TEN_SECONDS, TEN_SECONDS), null) {
127-
@Override
128-
protected Void newResponse(boolean acknowledged) {
129-
return null;
130-
}
131-
121+
new AckedClusterStateUpdateTask(MasterServiceTests.ackedRequest(TEN_SECONDS, TEN_SECONDS), null) {
132122
@Override
133123
public void onAllNodesAcked(@Nullable Exception e) {
134124
allNodesAcked.set(true);
@@ -182,12 +172,7 @@ public void testAckedUpdateTaskNoAckExpected() throws Exception {
182172
final CountDownLatch latch = new CountDownLatch(1);
183173

184174
clusterService.submitStateUpdateTask(
185-
"test", new AckedClusterStateUpdateTask<Void>(MasterServiceTests.ackedRequest(TEN_SECONDS, TEN_SECONDS), null) {
186-
@Override
187-
protected Void newResponse(boolean acknowledged) {
188-
return null;
189-
}
190-
175+
"test", new AckedClusterStateUpdateTask(MasterServiceTests.ackedRequest(TEN_SECONDS, TEN_SECONDS), null) {
191176
@Override
192177
public boolean mustAck(DiscoveryNode discoveryNode) {
193178
return false;
@@ -243,12 +228,7 @@ public void testAckedUpdateTaskTimeoutZero() throws Exception {
243228
final CountDownLatch latch = new CountDownLatch(1);
244229
final CountDownLatch processedLatch = new CountDownLatch(1);
245230
clusterService.submitStateUpdateTask("test",
246-
new AckedClusterStateUpdateTask<Void>(MasterServiceTests.ackedRequest(TimeValue.ZERO, TEN_SECONDS), null) {
247-
@Override
248-
protected Void newResponse(boolean acknowledged) {
249-
return null;
250-
}
251-
231+
new AckedClusterStateUpdateTask(MasterServiceTests.ackedRequest(TimeValue.ZERO, TEN_SECONDS), null) {
252232
@Override
253233
public boolean mustAck(DiscoveryNode discoveryNode) {
254234
return false;

server/src/main/java/org/elasticsearch/action/admin/cluster/reroute/TransportClusterRerouteAction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ private void submitStateUpdate(final ClusterRerouteRequest request, final Action
150150
})));
151151
}
152152

153-
static class ClusterRerouteResponseAckedClusterStateUpdateTask extends AckedClusterStateUpdateTask<ClusterRerouteResponse> {
153+
static class ClusterRerouteResponseAckedClusterStateUpdateTask extends AckedClusterStateUpdateTask {
154154

155155
private final ClusterRerouteRequest request;
156156
private final ActionListener<ClusterRerouteResponse> listener;

server/src/main/java/org/elasticsearch/action/admin/cluster/settings/TransportClusterUpdateSettingsAction.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ protected void masterOperation(Task task, final ClusterUpdateSettingsRequest req
8383
final ActionListener<ClusterUpdateSettingsResponse> listener) {
8484
final SettingsUpdater updater = new SettingsUpdater(clusterSettings);
8585
clusterService.submitStateUpdateTask("cluster_update_settings",
86-
new AckedClusterStateUpdateTask<ClusterUpdateSettingsResponse>(Priority.IMMEDIATE, request, listener) {
86+
new AckedClusterStateUpdateTask(Priority.IMMEDIATE, request, listener) {
8787

8888
private volatile boolean changed = false;
8989

@@ -126,7 +126,7 @@ private void reroute(final boolean updateSettingsAcked) {
126126
// to the components until the ClusterStateListener instances have been invoked, but are visible after
127127
// the first update task has been completed.
128128
clusterService.submitStateUpdateTask("reroute_after_cluster_update_settings",
129-
new AckedClusterStateUpdateTask<ClusterUpdateSettingsResponse>(Priority.URGENT, request, listener) {
129+
new AckedClusterStateUpdateTask(Priority.URGENT, request, listener) {
130130

131131
@Override
132132
public boolean mustAck(DiscoveryNode discoveryNode) {

server/src/main/java/org/elasticsearch/action/admin/indices/alias/TransportIndicesAliasesAction.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
import org.elasticsearch.action.support.master.AcknowledgedResponse;
3030
import org.elasticsearch.action.support.master.AcknowledgedTransportMasterNodeAction;
3131
import org.elasticsearch.cluster.ClusterState;
32-
import org.elasticsearch.cluster.ack.ClusterStateUpdateResponse;
3332
import org.elasticsearch.cluster.block.ClusterBlockException;
3433
import org.elasticsearch.cluster.block.ClusterBlockLevel;
3534
import org.elasticsearch.cluster.metadata.AliasAction;
@@ -147,10 +146,10 @@ protected void masterOperation(Task task, final IndicesAliasesRequest request, f
147146
IndicesAliasesClusterStateUpdateRequest updateRequest = new IndicesAliasesClusterStateUpdateRequest(unmodifiableList(finalActions))
148147
.ackTimeout(request.timeout()).masterNodeTimeout(request.masterNodeTimeout());
149148

150-
indexAliasesService.indicesAliases(updateRequest, new ActionListener<ClusterStateUpdateResponse>() {
149+
indexAliasesService.indicesAliases(updateRequest, new ActionListener<>() {
151150
@Override
152-
public void onResponse(ClusterStateUpdateResponse response) {
153-
listener.onResponse(AcknowledgedResponse.of(response.isAcknowledged()));
151+
public void onResponse(AcknowledgedResponse response) {
152+
listener.onResponse(response);
154153
}
155154

156155
@Override

server/src/main/java/org/elasticsearch/action/admin/indices/create/AutoCreateAction.java

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,11 @@
2323
import org.elasticsearch.action.support.ActionFilters;
2424
import org.elasticsearch.action.support.ActiveShardCount;
2525
import org.elasticsearch.action.support.ActiveShardsObserver;
26+
import org.elasticsearch.action.support.master.AcknowledgedResponse;
2627
import org.elasticsearch.action.support.AutoCreateIndex;
2728
import org.elasticsearch.action.support.master.TransportMasterNodeAction;
2829
import org.elasticsearch.cluster.AckedClusterStateUpdateTask;
2930
import org.elasticsearch.cluster.ClusterState;
30-
import org.elasticsearch.cluster.ack.ClusterStateUpdateResponse;
3131
import org.elasticsearch.cluster.block.ClusterBlockException;
3232
import org.elasticsearch.cluster.block.ClusterBlockLevel;
3333
import org.elasticsearch.cluster.metadata.ComposableIndexTemplate;
@@ -86,7 +86,7 @@ protected void masterOperation(Task task,
8686
ClusterState state,
8787
ActionListener<CreateIndexResponse> finalListener) {
8888
AtomicReference<String> indexNameRef = new AtomicReference<>();
89-
ActionListener<ClusterStateUpdateResponse> listener = ActionListener.wrap(
89+
ActionListener<AcknowledgedResponse> listener = ActionListener.wrap(
9090
response -> {
9191
String indexName = indexNameRef.get();
9292
assert indexName != null;
@@ -107,12 +107,7 @@ protected void masterOperation(Task task,
107107
finalListener::onFailure
108108
);
109109
clusterService.submitStateUpdateTask("auto create [" + request.index() + "]",
110-
new AckedClusterStateUpdateTask<>(Priority.URGENT, request, listener) {
111-
112-
@Override
113-
protected ClusterStateUpdateResponse newResponse(boolean acknowledged) {
114-
return new ClusterStateUpdateResponse(acknowledged);
115-
}
110+
new AckedClusterStateUpdateTask(Priority.URGENT, request, listener) {
116111

117112
@Override
118113
public ClusterState execute(ClusterState currentState) throws Exception {

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

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -123,14 +123,7 @@ public void onFailure(Exception e) {
123123
final String taskSource = "delete-dangling-index [" + indexName + "] [" + indexUUID + "]";
124124

125125
clusterService.submitStateUpdateTask(
126-
taskSource,
127-
new AckedClusterStateUpdateTask<>(deleteRequest, clusterStateUpdatedListener) {
128-
129-
@Override
130-
protected AcknowledgedResponse newResponse(boolean acknowledged) {
131-
return AcknowledgedResponse.of(acknowledged);
132-
}
133-
126+
taskSource, new AckedClusterStateUpdateTask(deleteRequest, clusterStateUpdatedListener) {
134127
@Override
135128
public ClusterState execute(final ClusterState currentState) {
136129
return deleteDanglingIndex(currentState, indexToDelete);

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

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
import org.elasticsearch.action.support.master.AcknowledgedResponse;
2929
import org.elasticsearch.action.support.master.AcknowledgedTransportMasterNodeAction;
3030
import org.elasticsearch.cluster.ClusterState;
31-
import org.elasticsearch.cluster.ack.ClusterStateUpdateResponse;
3231
import org.elasticsearch.cluster.block.ClusterBlockException;
3332
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
3433
import org.elasticsearch.cluster.metadata.MetadataDeleteIndexService;
@@ -88,11 +87,11 @@ protected void masterOperation(Task task, final DeleteIndexRequest request, fina
8887
.ackTimeout(request.timeout()).masterNodeTimeout(request.masterNodeTimeout())
8988
.indices(concreteIndices.toArray(new Index[concreteIndices.size()]));
9089

91-
deleteIndexService.deleteIndices(deleteRequest, new ActionListener<ClusterStateUpdateResponse>() {
90+
deleteIndexService.deleteIndices(deleteRequest, new ActionListener<>() {
9291

9392
@Override
94-
public void onResponse(ClusterStateUpdateResponse response) {
95-
listener.onResponse(AcknowledgedResponse.of(response.isAcknowledged()));
93+
public void onResponse(AcknowledgedResponse response) {
94+
listener.onResponse(response);
9695
}
9796

9897
@Override

server/src/main/java/org/elasticsearch/action/admin/indices/mapping/put/TransportPutMappingAction.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
import org.elasticsearch.action.support.master.AcknowledgedResponse;
2929
import org.elasticsearch.action.support.master.AcknowledgedTransportMasterNodeAction;
3030
import org.elasticsearch.cluster.ClusterState;
31-
import org.elasticsearch.cluster.ack.ClusterStateUpdateResponse;
3231
import org.elasticsearch.cluster.block.ClusterBlockException;
3332
import org.elasticsearch.cluster.block.ClusterBlockLevel;
3433
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
@@ -130,8 +129,8 @@ static void performMappingUpdate(Index[] concreteIndices,
130129
metadataMappingService.putMapping(updateRequest, new ActionListener<>() {
131130

132131
@Override
133-
public void onResponse(ClusterStateUpdateResponse response) {
134-
listener.onResponse(AcknowledgedResponse.of(response.isAcknowledged()));
132+
public void onResponse(AcknowledgedResponse response) {
133+
listener.onResponse(response);
135134
}
136135

137136
@Override

server/src/main/java/org/elasticsearch/action/admin/indices/open/TransportOpenIndexAction.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@
2525
import org.elasticsearch.action.ActionListener;
2626
import org.elasticsearch.action.support.ActionFilters;
2727
import org.elasticsearch.action.support.DestructiveOperations;
28+
import org.elasticsearch.action.support.master.ShardsAcknowledgedResponse;
2829
import org.elasticsearch.action.support.master.TransportMasterNodeAction;
2930
import org.elasticsearch.cluster.ClusterState;
30-
import org.elasticsearch.cluster.ack.OpenIndexClusterStateUpdateResponse;
3131
import org.elasticsearch.cluster.block.ClusterBlockException;
3232
import org.elasticsearch.cluster.block.ClusterBlockLevel;
3333
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
@@ -84,10 +84,10 @@ protected void masterOperation(Task task, final OpenIndexRequest request, final
8484
.ackTimeout(request.timeout()).masterNodeTimeout(request.masterNodeTimeout())
8585
.indices(concreteIndices).waitForActiveShards(request.waitForActiveShards());
8686

87-
indexStateService.openIndex(updateRequest, new ActionListener<OpenIndexClusterStateUpdateResponse>() {
87+
indexStateService.openIndex(updateRequest, new ActionListener<>() {
8888

8989
@Override
90-
public void onResponse(OpenIndexClusterStateUpdateResponse response) {
90+
public void onResponse(ShardsAcknowledgedResponse response) {
9191
listener.onResponse(new OpenIndexResponse(response.isAcknowledged(), response.isShardsAcknowledged()));
9292
}
9393

server/src/main/java/org/elasticsearch/action/admin/indices/settings/put/TransportUpdateSettingsAction.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
import org.elasticsearch.action.support.master.AcknowledgedResponse;
2828
import org.elasticsearch.action.support.master.AcknowledgedTransportMasterNodeAction;
2929
import org.elasticsearch.cluster.ClusterState;
30-
import org.elasticsearch.cluster.ack.ClusterStateUpdateResponse;
3130
import org.elasticsearch.cluster.block.ClusterBlockException;
3231
import org.elasticsearch.cluster.block.ClusterBlockLevel;
3332
import org.elasticsearch.cluster.metadata.IndexMetadata;
@@ -85,8 +84,8 @@ protected void masterOperation(Task task, final UpdateSettingsRequest request, f
8584

8685
updateSettingsService.updateSettings(clusterStateUpdateRequest, new ActionListener<>() {
8786
@Override
88-
public void onResponse(ClusterStateUpdateResponse response) {
89-
listener.onResponse(AcknowledgedResponse.of(response.isAcknowledged()));
87+
public void onResponse(AcknowledgedResponse response) {
88+
listener.onResponse(response);
9089
}
9190

9291
@Override

server/src/main/java/org/elasticsearch/action/admin/indices/template/delete/TransportDeleteIndexTemplateAction.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,8 @@ protected void masterOperation(Task task, final DeleteIndexTemplateRequest reque
6868
.masterTimeout(request.masterNodeTimeout()),
6969
new MetadataIndexTemplateService.RemoveListener() {
7070
@Override
71-
public void onResponse(MetadataIndexTemplateService.RemoveResponse response) {
72-
listener.onResponse(AcknowledgedResponse.of(response.acknowledged()));
71+
public void onResponse(AcknowledgedResponse response) {
72+
listener.onResponse(response);
7373
}
7474

7575
@Override

server/src/main/java/org/elasticsearch/action/admin/indices/upgrade/post/TransportUpgradeSettingsAction.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
import org.elasticsearch.action.support.master.AcknowledgedResponse;
2828
import org.elasticsearch.action.support.master.AcknowledgedTransportMasterNodeAction;
2929
import org.elasticsearch.cluster.ClusterState;
30-
import org.elasticsearch.cluster.ack.ClusterStateUpdateResponse;
3130
import org.elasticsearch.cluster.block.ClusterBlockException;
3231
import org.elasticsearch.cluster.block.ClusterBlockLevel;
3332
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
@@ -66,10 +65,10 @@ protected void masterOperation(Task task, final UpgradeSettingsRequest request,
6665
.versions(request.versions())
6766
.masterNodeTimeout(request.masterNodeTimeout());
6867

69-
updateSettingsService.upgradeIndexSettings(clusterStateUpdateRequest, new ActionListener<ClusterStateUpdateResponse>() {
68+
updateSettingsService.upgradeIndexSettings(clusterStateUpdateRequest, new ActionListener<>() {
7069
@Override
71-
public void onResponse(ClusterStateUpdateResponse response) {
72-
listener.onResponse(AcknowledgedResponse.of(response.isAcknowledged()));
70+
public void onResponse(AcknowledgedResponse response) {
71+
listener.onResponse(response);
7372
}
7473

7574
@Override

server/src/main/java/org/elasticsearch/action/support/master/ShardsAcknowledgedResponse.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131

3232
import static org.elasticsearch.common.xcontent.ConstructingObjectParser.constructorArg;
3333

34-
public abstract class ShardsAcknowledgedResponse extends AcknowledgedResponse {
34+
public class ShardsAcknowledgedResponse extends AcknowledgedResponse {
3535

3636
protected static final ParseField SHARDS_ACKNOWLEDGED = new ParseField("shards_acknowledged");
3737

@@ -42,6 +42,10 @@ protected static <T extends ShardsAcknowledgedResponse> void declareAcknowledged
4242
ObjectParser.ValueType.BOOLEAN);
4343
}
4444

45+
public static final ShardsAcknowledgedResponse NOT_ACKNOWLEDGED = new ShardsAcknowledgedResponse(false, false);
46+
private static final ShardsAcknowledgedResponse SHARDS_NOT_ACKNOWLEDGED = new ShardsAcknowledgedResponse(true, false);
47+
private static final ShardsAcknowledgedResponse ACKNOWLEDGED = new ShardsAcknowledgedResponse(true, true);
48+
4549
private final boolean shardsAcknowledged;
4650

4751
protected ShardsAcknowledgedResponse(StreamInput in, boolean readShardsAcknowledged) throws IOException {
@@ -53,6 +57,15 @@ protected ShardsAcknowledgedResponse(StreamInput in, boolean readShardsAcknowled
5357
}
5458
}
5559

60+
public static ShardsAcknowledgedResponse of(boolean acknowledged, boolean shardsAcknowledged) {
61+
if (acknowledged) {
62+
return shardsAcknowledged ? ACKNOWLEDGED : SHARDS_NOT_ACKNOWLEDGED;
63+
} else {
64+
assert shardsAcknowledged == false;
65+
return NOT_ACKNOWLEDGED;
66+
}
67+
}
68+
5669
protected ShardsAcknowledgedResponse(boolean acknowledged, boolean shardsAcknowledged) {
5770
super(acknowledged);
5871
assert acknowledged || shardsAcknowledged == false; // if it's not acknowledged, then shards acked should be false too
@@ -90,5 +103,4 @@ public boolean equals(Object o) {
90103
public int hashCode() {
91104
return Objects.hash(super.hashCode(), isShardsAcknowledged());
92105
}
93-
94106
}

0 commit comments

Comments
 (0)