Skip to content

Commit 5bdf41d

Browse files
committed
Updated awareness balance condition
Signed-off-by: Vinay Krishna Pudyodu <[email protected]>
1 parent 4d100fd commit 5bdf41d

File tree

4 files changed

+15
-29
lines changed

4 files changed

+15
-29
lines changed

server/src/main/java/org/opensearch/cluster/metadata/MetadataCreateIndexService.java

+1-4
Original file line numberDiff line numberDiff line change
@@ -1505,10 +1505,7 @@ List<String> getIndexSettingsValidationErrors(
15051505

15061506
Optional<String> replicaValidationError = awarenessReplicaBalance.validateReplicas(replicaCount, autoExpandReplica);
15071507
replicaValidationError.ifPresent(validationErrors::add);
1508-
Optional<String> searchReplicaValidationError = awarenessReplicaBalance.validateSearchReplicas(
1509-
searchReplicaCount,
1510-
autoExpandReplica
1511-
);
1508+
Optional<String> searchReplicaValidationError = awarenessReplicaBalance.validateSearchReplicas(searchReplicaCount);
15121509
searchReplicaValidationError.ifPresent(validationErrors::add);
15131510
}
15141511
return validationErrors;

server/src/main/java/org/opensearch/cluster/metadata/MetadataUpdateSettingsService.java

+1-4
Original file line numberDiff line numberDiff line change
@@ -304,10 +304,7 @@ public ClusterState execute(ClusterState currentState) {
304304
for (Index index : request.indices()) {
305305
if (index.getName().charAt(0) != '.') {
306306
// No replica count validation for system indices
307-
Optional<String> error = awarenessReplicaBalance.validateSearchReplicas(
308-
updatedNumberOfSearchReplicas,
309-
AutoExpandReplicas.SETTING.get(openSettings)
310-
);
307+
Optional<String> error = awarenessReplicaBalance.validateSearchReplicas(updatedNumberOfSearchReplicas);
311308

312309
if (error.isPresent()) {
313310
ValidationException ex = new ValidationException();

server/src/main/java/org/opensearch/cluster/routing/allocation/AwarenessReplicaBalance.java

+7-10
Original file line numberDiff line numberDiff line change
@@ -122,16 +122,13 @@ public Optional<String> validateReplicas(int replicaCount, AutoExpandReplicas au
122122
return Optional.empty();
123123
}
124124

125-
public Optional<String> validateSearchReplicas(int searchReplicaCount, AutoExpandReplicas autoExpandReplica) {
126-
if (autoExpandReplica.isEnabled()) {
127-
// TODO: For now Search replicas do not support auto expand, when we add support update this validation
128-
} else {
129-
if (searchReplicaCount > 0 && searchReplicaCount % maxAwarenessAttributes() != 0) {
130-
String errorMessage = "total search replicas needs to be a multiple of total awareness attributes ["
131-
+ maxAwarenessAttributes()
132-
+ "]";
133-
return Optional.of(errorMessage);
134-
}
125+
public Optional<String> validateSearchReplicas(int searchReplicaCount) {
126+
// TODO: For now Search replicas do not support auto expand, when we add support update this validation
127+
if (searchReplicaCount > 0 && searchReplicaCount % maxAwarenessAttributes() != 0) {
128+
String errorMessage = "total search replicas needs to be a multiple of total awareness attributes ["
129+
+ maxAwarenessAttributes()
130+
+ "]";
131+
return Optional.of(errorMessage);
135132
}
136133
return Optional.empty();
137134
}

server/src/test/java/org/opensearch/cluster/routing/allocation/AwarenessReplicaBalanceTests.java

+6-11
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ public void testNoForcedAwarenessAttribute() {
3838
assertEquals(awarenessReplicaBalance.validateReplicas(0, autoExpandReplica), Optional.empty());
3939
assertEquals(awarenessReplicaBalance.validateReplicas(1, autoExpandReplica), Optional.empty());
4040

41-
assertEquals(awarenessReplicaBalance.validateSearchReplicas(0, autoExpandReplica), Optional.empty());
42-
assertEquals(awarenessReplicaBalance.validateSearchReplicas(1, autoExpandReplica), Optional.empty());
41+
assertEquals(awarenessReplicaBalance.validateSearchReplicas(0), Optional.empty());
42+
assertEquals(awarenessReplicaBalance.validateSearchReplicas(1), Optional.empty());
4343
}
4444

4545
public void testForcedAwarenessAttribute() {
@@ -76,11 +76,6 @@ public void testForcedAwarenessAttribute() {
7676
assertEquals(awarenessReplicaBalance.validateReplicas(1, autoExpandReplica), Optional.empty());
7777
assertEquals(awarenessReplicaBalance.validateReplicas(0, autoExpandReplica), Optional.empty());
7878

79-
assertEquals(awarenessReplicaBalance.validateSearchReplicas(3, autoExpandReplica), Optional.empty());
80-
assertEquals(awarenessReplicaBalance.validateSearchReplicas(2, autoExpandReplica), Optional.empty());
81-
assertEquals(awarenessReplicaBalance.validateSearchReplicas(1, autoExpandReplica), Optional.empty());
82-
assertEquals(awarenessReplicaBalance.validateSearchReplicas(0, autoExpandReplica), Optional.empty());
83-
8479
// when auto expand is not valid set as per zone awareness
8580
settings = Settings.builder()
8681
.put(AwarenessAllocationDecider.CLUSTER_ROUTING_ALLOCATION_AWARENESS_ATTRIBUTE_SETTING.getKey(), "zone, rack")
@@ -123,14 +118,14 @@ public void testForcedAwarenessAttribute() {
123118
Optional.of("expected total copies needs to be a multiple of total awareness attributes [3]")
124119
);
125120

126-
assertEquals(awarenessReplicaBalance.validateSearchReplicas(3, autoExpandReplica), Optional.empty());
127-
assertEquals(awarenessReplicaBalance.validateSearchReplicas(0, autoExpandReplica), Optional.empty());
121+
assertEquals(awarenessReplicaBalance.validateSearchReplicas(3), Optional.empty());
122+
assertEquals(awarenessReplicaBalance.validateSearchReplicas(0), Optional.empty());
128123
assertEquals(
129-
awarenessReplicaBalance.validateSearchReplicas(2, autoExpandReplica),
124+
awarenessReplicaBalance.validateSearchReplicas(2),
130125
Optional.of("total search replicas needs to be a multiple of total awareness attributes [3]")
131126
);
132127
assertEquals(
133-
awarenessReplicaBalance.validateSearchReplicas(1, autoExpandReplica),
128+
awarenessReplicaBalance.validateSearchReplicas(1),
134129
Optional.of("total search replicas needs to be a multiple of total awareness attributes [3]")
135130
);
136131
}

0 commit comments

Comments
 (0)