Skip to content

Commit 6181ba3

Browse files
Remove Redundant Cluster State Update Response Classes (#63646) (#64870)
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 d7697b4 commit 6181ba3

File tree

54 files changed

+231
-538
lines changed

Some content is hidden

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

54 files changed

+231
-538
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
@@ -149,7 +149,7 @@ private void submitStateUpdate(final ClusterRerouteRequest request, final Action
149149
})));
150150
}
151151

152-
static class ClusterRerouteResponseAckedClusterStateUpdateTask extends AckedClusterStateUpdateTask<ClusterRerouteResponse> {
152+
static class ClusterRerouteResponseAckedClusterStateUpdateTask extends AckedClusterStateUpdateTask {
153153

154154
private final ClusterRerouteRequest request;
155155
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
@@ -82,7 +82,7 @@ protected void masterOperation(final ClusterUpdateSettingsRequest request, final
8282
final ActionListener<ClusterUpdateSettingsResponse> listener) {
8383
final SettingsUpdater updater = new SettingsUpdater(clusterSettings);
8484
clusterService.submitStateUpdateTask("cluster_update_settings",
85-
new AckedClusterStateUpdateTask<ClusterUpdateSettingsResponse>(Priority.IMMEDIATE, request, listener) {
85+
new AckedClusterStateUpdateTask(Priority.IMMEDIATE, request, listener) {
8686

8787
private volatile boolean changed = false;
8888

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

130130
@Override
131131
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;
@@ -146,10 +145,10 @@ protected void masterOperation(final IndicesAliasesRequest request, final Cluste
146145
IndicesAliasesClusterStateUpdateRequest updateRequest = new IndicesAliasesClusterStateUpdateRequest(unmodifiableList(finalActions))
147146
.ackTimeout(request.timeout()).masterNodeTimeout(request.masterNodeTimeout());
148147

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

155154
@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;
@@ -84,7 +84,7 @@ protected void masterOperation(CreateIndexRequest request,
8484
ClusterState state,
8585
ActionListener<CreateIndexResponse> finalListener) {
8686
AtomicReference<String> indexNameRef = new AtomicReference<>();
87-
ActionListener<ClusterStateUpdateResponse> listener = ActionListener.wrap(
87+
ActionListener<AcknowledgedResponse> listener = ActionListener.wrap(
8888
response -> {
8989
String indexName = indexNameRef.get();
9090
assert indexName != null;
@@ -105,12 +105,7 @@ protected void masterOperation(CreateIndexRequest request,
105105
finalListener::onFailure
106106
);
107107
clusterService.submitStateUpdateTask("auto create [" + request.index() + "]",
108-
new AckedClusterStateUpdateTask<ClusterStateUpdateResponse>(Priority.URGENT, request, listener) {
109-
110-
@Override
111-
protected ClusterStateUpdateResponse newResponse(boolean acknowledged) {
112-
return new ClusterStateUpdateResponse(acknowledged);
113-
}
108+
new AckedClusterStateUpdateTask(Priority.URGENT, request, listener) {
114109

115110
@Override
116111
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
@@ -121,14 +121,7 @@ public void onFailure(Exception e) {
121121
final String taskSource = "delete-dangling-index [" + indexName + "] [" + indexUUID + "]";
122122

123123
clusterService.submitStateUpdateTask(
124-
taskSource,
125-
new AckedClusterStateUpdateTask<AcknowledgedResponse>(deleteRequest, clusterStateUpdatedListener) {
126-
127-
@Override
128-
protected AcknowledgedResponse newResponse(boolean acknowledged) {
129-
return AcknowledgedResponse.of(acknowledged);
130-
}
131-
124+
taskSource, new AckedClusterStateUpdateTask(deleteRequest, clusterStateUpdatedListener) {
132125
@Override
133126
public ClusterState execute(final ClusterState currentState) {
134127
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(final DeleteIndexRequest request, final ClusterSt
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<AcknowledgedResponse>() {
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: 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.block.ClusterBlockLevel;
3433
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
@@ -127,11 +126,11 @@ static void performMappingUpdate(Index[] concreteIndices,
127126
.indices(concreteIndices).type(request.type())
128127
.source(request.source());
129128

130-
metadataMappingService.putMapping(updateRequest, new ActionListener<ClusterStateUpdateResponse>() {
129+
metadataMappingService.putMapping(updateRequest, new ActionListener<AcknowledgedResponse>() {
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(final OpenIndexRequest request, final ClusterStat
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<ShardsAcknowledgedResponse>() {
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: 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.IndexMetadata;
@@ -82,10 +81,10 @@ protected void masterOperation(final UpdateSettingsRequest request, final Cluste
8281
.ackTimeout(request.timeout())
8382
.masterNodeTimeout(request.masterNodeTimeout());
8483

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

9190
@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
@@ -67,8 +67,8 @@ protected void masterOperation(final DeleteIndexTemplateRequest request, final C
6767
.masterTimeout(request.masterNodeTimeout()),
6868
new MetadataIndexTemplateService.RemoveListener() {
6969
@Override
70-
public void onResponse(MetadataIndexTemplateService.RemoveResponse response) {
71-
listener.onResponse(AcknowledgedResponse.of(response.acknowledged()));
70+
public void onResponse(AcknowledgedResponse response) {
71+
listener.onResponse(response);
7272
}
7373

7474
@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;
@@ -65,10 +64,10 @@ protected void masterOperation(final UpgradeSettingsRequest request, final Clust
6564
.versions(request.versions())
6665
.masterNodeTimeout(request.masterNodeTimeout());
6766

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

7473
@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, boolean readAcknowledged) 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)