Skip to content

Commit

Permalink
[Backport 2.x] Add support for randomizing Remote Store enabled testi…
Browse files Browse the repository at this point in the history
…ng (#13845)

* backport #12488 to 2.x branch.

Signed-off-by: Rishikesh1159 <rishireddy1159@gmail.com>

* Fix indentation.

Signed-off-by: Rishikesh1159 <rishireddy1159@gmail.com>

---------

Signed-off-by: Rishikesh1159 <rishireddy1159@gmail.com>
Signed-off-by: Rishikesh <62345295+Rishikesh1159@users.noreply.github.com>
  • Loading branch information
Rishikesh1159 authored Sep 5, 2024
1 parent bb0a497 commit f85ff03
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,11 @@ protected int numberOfReplicas() {
return 1;
}

@Override
public boolean useRandomReplicationStrategy() {
return true;
}

public void testPromoteReplicaToPrimary() throws Exception {
final String indexName = randomAlphaOfLength(5).toLowerCase(Locale.ROOT);
createIndex(indexName);
Expand All @@ -65,7 +70,7 @@ public void testPromoteReplicaToPrimary() throws Exception {
try (BackgroundIndexer indexer = new BackgroundIndexer(indexName, "_doc", client(), numOfDocs)) {
waitForDocs(numOfDocs, indexer);
}
refresh(indexName);
refreshAndWaitForReplication(indexName);
}

assertHitCount(client().prepareSearch(indexName).setSize(0).get(), numOfDocs);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -391,6 +391,14 @@ public abstract class OpenSearchIntegTestCase extends OpenSearchTestCase {
*/
public static final String TESTS_CLUSTER_NAME = "tests.clustername";

protected static final String REMOTE_BACKED_STORAGE_REPOSITORY_NAME = "test-remote-store-repo";

private Path remoteStoreRepositoryPath;

private ReplicationType randomReplicationType;

private String randomStorageType;

/**
* The lucene_default {@link Codec} is not added to the list as it internally maps to Asserting {@link Codec}.
* The override to fetch the {@link CompletionFieldMapper.CompletionFieldType} postings format is not available for this codec.
Expand Down Expand Up @@ -1985,11 +1993,19 @@ protected Settings nodeSettings(int nodeOrdinal) {
builder.put(TelemetrySettings.TRACER_ENABLED_SETTING.getKey(), true);
}

// Randomly set a replication strategy for the node. Replication Strategy can still be manually overridden by subclass if needed.
// Randomly set a Replication Strategy and storage type for the node. Both Replication Strategy and Storage Type can still be
// manually overridden by subclass if needed.
if (useRandomReplicationStrategy()) {
ReplicationType replicationType = randomBoolean() ? ReplicationType.DOCUMENT : ReplicationType.SEGMENT;
logger.info("Randomly using Replication Strategy as {}.", replicationType.toString());
builder.put(CLUSTER_REPLICATION_TYPE_SETTING.getKey(), replicationType);
if (randomReplicationType.equals(ReplicationType.SEGMENT) && randomStorageType.equals("REMOTE_STORE")) {
logger.info("Randomly using Replication Strategy as {} and Storage Type as {}.", randomReplicationType, randomStorageType);
if (remoteStoreRepositoryPath == null) {
remoteStoreRepositoryPath = randomRepoPath().toAbsolutePath();
}
builder.put(remoteStoreClusterSettings(REMOTE_BACKED_STORAGE_REPOSITORY_NAME, remoteStoreRepositoryPath));
} else {
logger.info("Randomly using Replication Strategy as {} and Storage Type as {}.", randomReplicationType, randomStorageType);
builder.put(CLUSTER_REPLICATION_TYPE_SETTING.getKey(), randomReplicationType);
}
}
return builder.build();
}
Expand Down Expand Up @@ -2042,6 +2058,14 @@ protected boolean ignoreExternalCluster() {
}

protected TestCluster buildTestCluster(Scope scope, long seed) throws IOException {
if (useRandomReplicationStrategy()) {
randomReplicationType = randomBoolean() ? ReplicationType.DOCUMENT : ReplicationType.SEGMENT;
if (randomReplicationType.equals(ReplicationType.SEGMENT)) {
randomStorageType = randomBoolean() ? "REMOTE_STORE" : "LOCAL";
} else {
randomStorageType = "LOCAL";
}
}
String clusterAddresses = System.getProperty(TESTS_CLUSTER);
if (Strings.hasLength(clusterAddresses) && ignoreExternalCluster() == false) {
if (scope == Scope.TEST) {
Expand Down

0 comments on commit f85ff03

Please sign in to comment.