Skip to content

Commit 5fe4928

Browse files
author
Aditya Khera
committed
Added version check to MergedSegmentWarmer
Added changelog Fixed tests Signed-off-by: Aditya Khera <kheraadi@amazon.com>
1 parent 9f7b6d6 commit 5fe4928

File tree

3 files changed

+12
-40
lines changed

3 files changed

+12
-40
lines changed

CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
2626
- Wrap checked exceptions in painless.DefBootstrap to support JDK-25 ([#19706](https://github.com/opensearch-project/OpenSearch/pull/19706))
2727
- Refactor the ThreadPoolStats.Stats class to use the Builder pattern instead of constructors ([#19317](https://github.com/opensearch-project/OpenSearch/pull/19317))
2828
- Refactor the IndexingStats.Stats class to use the Builder pattern instead of constructors ([#19306](https://github.com/opensearch-project/OpenSearch/pull/19306))
29-
29+
- Remove FeatureFlag.MERGED_SEGMENT_WARMER_EXPERIMENTAL_FLAG. ([#19715](https://github.com/opensearch-project/OpenSearch/pull/19715))
30+
-
3031
### Fixed
3132
- Fix Allocation and Rebalance Constraints of WeightFunction are incorrectly reset ([#19012](https://github.com/opensearch-project/OpenSearch/pull/19012))
3233
- Fix flaky test FieldDataLoadingIT.testIndicesFieldDataCacheSizeSetting ([#19571](https://github.com/opensearch-project/OpenSearch/pull/19571))

server/src/main/java/org/opensearch/index/engine/MergedSegmentWarmer.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import org.apache.lucene.index.LeafReader;
1515
import org.apache.lucene.index.SegmentCommitInfo;
1616
import org.apache.lucene.index.SegmentReader;
17+
import org.opensearch.Version;
1718
import org.opensearch.cluster.service.ClusterService;
1819
import org.opensearch.common.logging.Loggers;
1920
import org.opensearch.index.merge.MergedSegmentTransferTracker;
@@ -93,6 +94,12 @@ public void warm(LeafReader leafReader) throws IOException {
9394

9495
// package-private for tests
9596
boolean shouldWarm() {
97+
// Min node version check ensures that we only warm, when all nodes expect it
98+
Version minNodeVersion = clusterService.state().nodes().getMinNodeVersion();
99+
if (Version.V_3_4_0.compareTo(minNodeVersion) > 0) {
100+
return false;
101+
}
102+
96103
return indexShard.getRecoverySettings().isMergedSegmentReplicationWarmerEnabled() == true;
97104
}
98105
}

server/src/test/java/org/opensearch/index/engine/MergedSegmentWarmerFactoryTests.java

Lines changed: 3 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ public void tearDown() throws Exception {
5454
super.tearDown();
5555
}
5656

57-
public void testGetWithSegmentReplicationAndExperimentalFeatureFlagEnabled() {
57+
public void testGetWithSegmentReplication() {
5858
IndexSettings indexSettings = createIndexSettings(
5959
false,
6060
Settings.builder().put(IndexMetadata.INDEX_REPLICATION_TYPE_SETTING.getKey(), ReplicationType.SEGMENT).build()
@@ -66,18 +66,7 @@ public void testGetWithSegmentReplicationAndExperimentalFeatureFlagEnabled() {
6666
assertTrue(warmer instanceof MergedSegmentWarmer);
6767
}
6868

69-
public void testGetWithSegmentReplicationAndExperimentalFeatureFlagDisabled() {
70-
IndexSettings indexSettings = createIndexSettings(
71-
false,
72-
Settings.builder().put(IndexMetadata.INDEX_REPLICATION_TYPE_SETTING.getKey(), ReplicationType.SEGMENT).build()
73-
);
74-
when(indexShard.indexSettings()).thenReturn(indexSettings);
75-
IndexWriter.IndexReaderWarmer warmer = factory.get(indexShard);
76-
77-
assertNull(warmer);
78-
}
79-
80-
public void testGetWithRemoteStoreEnabledAndExperimentalFeatureFlagEnabled() {
69+
public void testGetWithRemoteStoreEnabled() {
8170
IndexSettings indexSettings = createIndexSettings(
8271
true,
8372
Settings.builder().put(IndexMetadata.INDEX_REPLICATION_TYPE_SETTING.getKey(), ReplicationType.SEGMENT).build()
@@ -90,39 +79,14 @@ public void testGetWithRemoteStoreEnabledAndExperimentalFeatureFlagEnabled() {
9079
assertTrue(warmer instanceof MergedSegmentWarmer);
9180
}
9281

93-
public void testGetWithRemoteStoreEnabledAndExperimentalFeatureFlagDisabled() {
94-
IndexSettings indexSettings = createIndexSettings(
95-
true,
96-
Settings.builder().put(IndexMetadata.INDEX_REPLICATION_TYPE_SETTING.getKey(), ReplicationType.SEGMENT).build()
97-
);
98-
when(indexShard.indexSettings()).thenReturn(indexSettings);
99-
100-
IndexWriter.IndexReaderWarmer warmer = factory.get(indexShard);
101-
102-
assertNull(warmer);
103-
}
104-
105-
public void testGetWithDocumentReplicationAndExperimentalFeatureFlagEnabled() {
106-
IndexSettings indexSettings = createIndexSettings(
107-
false,
108-
Settings.builder().put(IndexMetadata.INDEX_REPLICATION_TYPE_SETTING.getKey(), ReplicationType.DOCUMENT).build()
109-
);
110-
111-
when(indexShard.indexSettings()).thenReturn(indexSettings);
112-
IndexWriter.IndexReaderWarmer warmer = factory.get(indexShard);
113-
114-
assertNull(warmer);
115-
}
116-
117-
public void testGetWithDocumentReplicationAndExperimentalFeatureFlagDisabled() {
82+
public void testGetWithDocumentReplication() {
11883
IndexSettings indexSettings = createIndexSettings(
11984
false,
12085
Settings.builder().put(IndexMetadata.INDEX_REPLICATION_TYPE_SETTING.getKey(), ReplicationType.DOCUMENT).build()
12186
);
12287

12388
when(indexShard.indexSettings()).thenReturn(indexSettings);
12489
IndexWriter.IndexReaderWarmer warmer = factory.get(indexShard);
125-
12690
assertNull(warmer);
12791
}
12892

0 commit comments

Comments
 (0)