|
34 | 34 |
|
35 | 35 | import org.opensearch.action.admin.indices.get.GetIndexRequest; |
36 | 36 | import org.opensearch.action.admin.indices.get.GetIndexResponse; |
| 37 | +import org.opensearch.action.admin.indices.settings.put.UpdateSettingsRequestBuilder; |
37 | 38 | import org.opensearch.cluster.metadata.IndexMetadata; |
38 | 39 | import org.opensearch.common.settings.Settings; |
39 | 40 | import org.opensearch.core.index.Index; |
@@ -90,8 +91,44 @@ public void testClusterLevelDefaultUpdatesMergePolicy() throws ExecutionExceptio |
90 | 91 | getIndexResponse = client(clusterManagerName).admin().indices().getIndex(new GetIndexRequest()).get(); |
91 | 92 | indicesService = internalCluster().getInstance(IndicesService.class, randomFrom(dataNodes)); |
92 | 93 | uuid = getIndexResponse.getSettings().get(indexName).get(IndexMetadata.SETTING_INDEX_UUID); |
93 | | - IndexService newIndexService = indicesService.indexService(new Index(indexName, uuid)); |
| 94 | + IndexService secondIndexService = indicesService.indexService(new Index(indexName, uuid)); |
94 | 95 | assertEquals(20, ((OpenSearchTieredMergePolicy) indexService.getIndexSettings().getMergePolicy(true)).getMaxMergeAtOnce()); |
95 | | - assertEquals(20, ((OpenSearchTieredMergePolicy) newIndexService.getIndexSettings().getMergePolicy(true)).getMaxMergeAtOnce()); |
| 96 | + assertEquals(20, ((OpenSearchTieredMergePolicy) secondIndexService.getIndexSettings().getMergePolicy(true)).getMaxMergeAtOnce()); |
| 97 | + |
| 98 | + // Create index with index level override in settings |
| 99 | + indexName = "log-myindex-3"; |
| 100 | + createIndex( |
| 101 | + indexName, |
| 102 | + Settings.builder().put(TieredMergePolicyProvider.INDEX_MERGE_POLICY_MAX_MERGE_AT_ONCE_SETTING.getKey(), 15).build() |
| 103 | + ); |
| 104 | + ensureYellowAndNoInitializingShards(indexName); |
| 105 | + ensureGreen(indexName); |
| 106 | + getIndexResponse = client(clusterManagerName).admin().indices().getIndex(new GetIndexRequest()).get(); |
| 107 | + indicesService = internalCluster().getInstance(IndicesService.class, randomFrom(dataNodes)); |
| 108 | + uuid = getIndexResponse.getSettings().get(indexName).get(IndexMetadata.SETTING_INDEX_UUID); |
| 109 | + IndexService thirdIndexService = indicesService.indexService(new Index(indexName, uuid)); |
| 110 | + assertEquals(15, ((OpenSearchTieredMergePolicy) thirdIndexService.getIndexSettings().getMergePolicy(true)).getMaxMergeAtOnce()); |
| 111 | + |
| 112 | + // changing cluster level default should only affect indices without index level override |
| 113 | + client(clusterManagerName).admin() |
| 114 | + .cluster() |
| 115 | + .prepareUpdateSettings() |
| 116 | + .setTransientSettings(Settings.builder().put(CLUSTER_DEFAULT_INDEX_MAX_MERGE_AT_ONCE_SETTING.getKey(), 35)) |
| 117 | + .get(); |
| 118 | + assertEquals(35, ((OpenSearchTieredMergePolicy) indexService.getIndexSettings().getMergePolicy(true)).getMaxMergeAtOnce()); |
| 119 | + assertEquals(35, ((OpenSearchTieredMergePolicy) secondIndexService.getIndexSettings().getMergePolicy(true)).getMaxMergeAtOnce()); |
| 120 | + assertEquals(15, ((OpenSearchTieredMergePolicy) thirdIndexService.getIndexSettings().getMergePolicy(true)).getMaxMergeAtOnce()); |
| 121 | + |
| 122 | + // removing index level override should pick up the cluster level default |
| 123 | + final UpdateSettingsRequestBuilder builder = client().admin().indices().prepareUpdateSettings(indexName); |
| 124 | + builder.setSettings( |
| 125 | + Settings.builder().putNull(TieredMergePolicyProvider.INDEX_MERGE_POLICY_MAX_MERGE_AT_ONCE_SETTING.getKey()).build() |
| 126 | + ); |
| 127 | + builder.execute().actionGet(); |
| 128 | + |
| 129 | + assertEquals(35, ((OpenSearchTieredMergePolicy) indexService.getIndexSettings().getMergePolicy(true)).getMaxMergeAtOnce()); |
| 130 | + assertEquals(35, ((OpenSearchTieredMergePolicy) secondIndexService.getIndexSettings().getMergePolicy(true)).getMaxMergeAtOnce()); |
| 131 | + assertEquals(35, ((OpenSearchTieredMergePolicy) thirdIndexService.getIndexSettings().getMergePolicy(true)).getMaxMergeAtOnce()); |
| 132 | + |
96 | 133 | } |
97 | 134 | } |
0 commit comments