Skip to content

Commit 4dd7f7d

Browse files
authored
[8.19] Disable downsampling force merge via mapping metadata (elastic#135694) (elastic#135720)
1 parent eb04edc commit 4dd7f7d

File tree

4 files changed

+527
-44
lines changed

4 files changed

+527
-44
lines changed

x-pack/plugin/downsample/src/internalClusterTest/java/org/elasticsearch/xpack/downsample/DownsampleIT.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import java.io.IOException;
2222
import java.time.Instant;
2323
import java.util.List;
24+
import java.util.Locale;
2425
import java.util.function.Supplier;
2526

2627
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked;
@@ -31,8 +32,9 @@ public class DownsampleIT extends DownsamplingIntegTestCase {
3132
public void testDownsamplingPassthroughDimensions() throws Exception {
3233
String dataStreamName = "metrics-foo";
3334
// Set up template
34-
putTSDBIndexTemplate("my-template", List.of("metrics-foo"), null, """
35+
putTSDBIndexTemplate("my-template", List.of("metrics-foo"), null, String.format(Locale.ROOT, """
3536
{
37+
%s
3638
"properties": {
3739
"attributes": {
3840
"type": "passthrough",
@@ -45,7 +47,7 @@ public void testDownsamplingPassthroughDimensions() throws Exception {
4547
}
4648
}
4749
}
48-
""", null, null);
50+
""", generateForceMergeMetadata()), null, null);
4951

5052
// Create data stream by indexing documents
5153
final Instant now = Instant.now();
@@ -96,4 +98,14 @@ public void testDownsamplingPassthroughDimensions() throws Exception {
9698

9799
assertDownsampleIndexFieldsAndDimensions(sourceIndex, targetIndex, downsampleConfig);
98100
}
101+
102+
private String generateForceMergeMetadata() {
103+
return switch (randomIntBetween(0, 4)) {
104+
case 0 -> "\"_meta\": { \"downsample.forcemerge.enabled\": false},";
105+
case 1 -> "\"_meta\": { \"downsample.forcemerge.enabled\": true},";
106+
case 2 -> "\"_meta\": { \"downsample.forcemerge.enabled\": 4},";
107+
case 3 -> "\"_meta\": { \"downsample.forcemerge.enabled\": null},";
108+
default -> "";
109+
};
110+
}
99111
}

x-pack/plugin/downsample/src/internalClusterTest/java/org/elasticsearch/xpack/downsample/DownsamplingIntegTestCase.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,8 @@ void assertDownsampleIndexFieldsAndDimensions(String sourceIndex, String downsam
254254
final CompressedXContent sourceIndexCompressedXContent = new CompressedXContent(sourceIndexMappings);
255255
mapperService.merge(MapperService.SINGLE_MAPPING_NAME, sourceIndexCompressedXContent, MapperService.MergeReason.INDEX_TEMPLATE);
256256

257+
assertThat(downsampleIndexMappings.get("_meta"), equalTo(sourceIndexMappings.get("_meta")));
258+
257259
// Collect expected mappings for fields and dimensions
258260
Map<String, TimeSeriesParams.MetricType> metricFields = new HashMap<>();
259261
Map<String, String> dimensionFields = new HashMap<>();

0 commit comments

Comments
 (0)