Skip to content

Commit 6cd76fc

Browse files
authored
[DLM]Use default lifecycle instance instead of default constructor (#126461) (#126485)
When creating the an empty lifecycle we used to use the default constructor. This is not just for efficiency but it will allow us to separate the default data and failures lifecycle in the future. (cherry picked from commit 060a9b7) # Conflicts: # server/src/test/java/org/elasticsearch/cluster/metadata/DataStreamLifecycleWithRetentionWarningsTests.java # server/src/test/java/org/elasticsearch/cluster/metadata/MetadataCreateDataStreamServiceTests.java # server/src/test/java/org/elasticsearch/cluster/metadata/MetadataIndexTemplateServiceTests.java
1 parent 4960600 commit 6cd76fc

File tree

23 files changed

+83
-66
lines changed

23 files changed

+83
-66
lines changed

modules/data-streams/src/internalClusterTest/java/org/elasticsearch/datastreams/lifecycle/DataStreamLifecycleServiceIT.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ public void cleanup() {
146146

147147
public void testRolloverLifecycle() throws Exception {
148148
// empty lifecycle contains the default rollover
149-
DataStreamLifecycle.Template lifecycle = DataStreamLifecycle.Template.DEFAULT;
149+
DataStreamLifecycle.Template lifecycle = DataStreamLifecycle.Template.DATA_DEFAULT;
150150

151151
putComposableIndexTemplate("id1", null, List.of("metrics-foo*"), null, null, lifecycle, false);
152152
String dataStreamName = "metrics-foo";
@@ -393,7 +393,7 @@ public void testOriginationDate() throws Exception {
393393
}
394394

395395
public void testUpdatingLifecycleAppliesToAllBackingIndices() throws Exception {
396-
DataStreamLifecycle.Template lifecycle = DataStreamLifecycle.Template.DEFAULT;
396+
DataStreamLifecycle.Template lifecycle = DataStreamLifecycle.Template.DATA_DEFAULT;
397397

398398
putComposableIndexTemplate("id1", null, List.of("metrics-foo*"), null, null, lifecycle, false);
399399

@@ -437,7 +437,7 @@ public void testAutomaticForceMerge() throws Exception {
437437
* because all necessary merging has already happened automatically. So in order to detect whether forcemerge has been called, we
438438
* use a SendRequestBehavior in the MockTransportService to detect it.
439439
*/
440-
DataStreamLifecycle.Template lifecycle = DataStreamLifecycle.Template.DEFAULT;
440+
DataStreamLifecycle.Template lifecycle = DataStreamLifecycle.Template.DATA_DEFAULT;
441441
disableDataStreamLifecycle();
442442
String dataStreamName = "metrics-foo";
443443
putComposableIndexTemplate(
@@ -539,7 +539,7 @@ private static void disableDataStreamLifecycle() {
539539

540540
public void testErrorRecordingOnRollover() throws Exception {
541541
// empty lifecycle contains the default rollover
542-
DataStreamLifecycle.Template lifecycle = DataStreamLifecycle.Template.DEFAULT;
542+
DataStreamLifecycle.Template lifecycle = DataStreamLifecycle.Template.DATA_DEFAULT;
543543
/*
544544
* We set index.auto_expand_replicas to 0-1 so that if we get a single-node cluster it is not yellow. The cluster being yellow
545545
* could result in data stream lifecycle's automatic forcemerge failing, which would result in an unexpected error in the error
@@ -697,7 +697,7 @@ public void testErrorRecordingOnRollover() throws Exception {
697697
public void testErrorRecordingOnRetention() throws Exception {
698698
// starting with a lifecycle without retention so we can rollover the data stream and manipulate the second generation index such
699699
// that its retention execution fails
700-
DataStreamLifecycle.Template lifecycle = DataStreamLifecycle.Template.DEFAULT;
700+
DataStreamLifecycle.Template lifecycle = DataStreamLifecycle.Template.DATA_DEFAULT;
701701

702702
/*
703703
* We set index.auto_expand_replicas to 0-1 so that if we get a single-node cluster it is not yellow. The cluster being yellow
@@ -871,7 +871,7 @@ public void testErrorRecordingOnRetention() throws Exception {
871871
}
872872

873873
public void testDataLifecycleServiceConfiguresTheMergePolicy() throws Exception {
874-
DataStreamLifecycle.Template lifecycle = DataStreamLifecycle.Template.DEFAULT;
874+
DataStreamLifecycle.Template lifecycle = DataStreamLifecycle.Template.DATA_DEFAULT;
875875

876876
putComposableIndexTemplate(
877877
"id1",

modules/data-streams/src/internalClusterTest/java/org/elasticsearch/datastreams/lifecycle/ExplainDataStreamLifecycleIT.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ public void cleanup() {
9292

9393
public void testExplainLifecycle() throws Exception {
9494
// empty lifecycle contains the default rollover
95-
DataStreamLifecycle.Template lifecycle = DataStreamLifecycle.Template.DEFAULT;
95+
DataStreamLifecycle.Template lifecycle = DataStreamLifecycle.Template.DATA_DEFAULT;
9696

9797
putComposableIndexTemplate("id1", null, List.of("metrics-foo*"), null, null, lifecycle);
9898
String dataStreamName = "metrics-foo";
@@ -264,7 +264,7 @@ public void testExplainFailuresLifecycle() throws Exception {
264264
List.of("metrics-foo*"),
265265
null,
266266
null,
267-
DataStreamLifecycle.Template.DEFAULT,
267+
DataStreamLifecycle.Template.DATA_DEFAULT,
268268
new DataStreamOptions.Template(new DataStreamFailureStore.Template(true))
269269
);
270270
String dataStreamName = "metrics-foo";
@@ -381,7 +381,7 @@ public void testExplainFailuresLifecycle() throws Exception {
381381

382382
public void testExplainLifecycleForIndicesWithErrors() throws Exception {
383383
// empty lifecycle contains the default rollover
384-
DataStreamLifecycle.Template lifecycle = DataStreamLifecycle.Template.DEFAULT;
384+
DataStreamLifecycle.Template lifecycle = DataStreamLifecycle.Template.DATA_DEFAULT;
385385

386386
putComposableIndexTemplate(
387387
"id1",

modules/data-streams/src/test/java/org/elasticsearch/datastreams/MetadataIndexTemplateServiceTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ public void testLifecycleComposition() {
157157
// Enabled is always true unless it's explicitly set to false
158158
{
159159
DataStreamLifecycle.Template lifecycle = new DataStreamLifecycle.Template(false, randomPositiveTimeValue(), randomRounds());
160-
List<DataStreamLifecycle.Template> lifecycles = List.of(lifecycle, DataStreamLifecycle.Template.DEFAULT);
160+
List<DataStreamLifecycle.Template> lifecycles = List.of(lifecycle, DataStreamLifecycle.Template.DATA_DEFAULT);
161161
DataStreamLifecycle result = composeDataLifecycles(lifecycles).build();
162162
assertThat(result.enabled(), equalTo(true));
163163
assertThat(result.dataRetention(), equalTo(lifecycle.dataRetention().get()));

modules/data-streams/src/test/java/org/elasticsearch/datastreams/action/GetDataStreamsResponseTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ public void testResponseIlmAndDataStreamLifecycleRepresentation() throws Excepti
8383
.setGeneration(3)
8484
.setAllowCustomRouting(true)
8585
.setIndexMode(IndexMode.STANDARD)
86-
.setLifecycle(new DataStreamLifecycle())
86+
.setLifecycle(DataStreamLifecycle.DEFAULT_DATA_LIFECYCLE)
8787
.setDataStreamOptions(DataStreamOptions.FAILURE_STORE_ENABLED)
8888
.setFailureIndices(DataStream.DataStreamIndices.failureIndicesBuilder(failureStores).build())
8989
.build();

modules/data-streams/src/test/java/org/elasticsearch/datastreams/lifecycle/DataStreamLifecycleServiceTests.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ public void testRetentionNotConfigured() {
254254
dataStreamName,
255255
numBackingIndices,
256256
settings(IndexVersion.current()),
257-
new DataStreamLifecycle(),
257+
DataStreamLifecycle.DEFAULT_DATA_LIFECYCLE,
258258
now
259259
);
260260
builder.put(dataStream);
@@ -498,7 +498,7 @@ public void testDeletedIndicesAreRemovedFromTheErrorStore() throws IOException {
498498
dataStreamName,
499499
numBackingIndices,
500500
Settings.builder().put(IndexMetadata.SETTING_VERSION_CREATED, IndexVersion.current()),
501-
new DataStreamLifecycle(),
501+
DataStreamLifecycle.DEFAULT_DATA_LIFECYCLE,
502502
now
503503
);
504504
builder.put(dataStream);
@@ -1496,7 +1496,7 @@ public void testTargetIndices() {
14961496
numBackingIndices,
14971497
numFailureIndices,
14981498
settings(IndexVersion.current()),
1499-
new DataStreamLifecycle(),
1499+
DataStreamLifecycle.DEFAULT_DATA_LIFECYCLE,
15001500
now
15011501
).copy().setDataStreamOptions(dataStreamOptions).build(); // failure store is managed even when disabled
15021502
builder.put(dataStream);

server/src/main/java/org/elasticsearch/action/admin/indices/template/post/TransportSimulateIndexTemplateAction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -346,7 +346,7 @@ public static Template resolveTemplate(
346346
DataStreamLifecycle.Builder lifecycleBuilder = resolveLifecycle(simulatedState.metadata(), matchingTemplate);
347347
DataStreamLifecycle.Template lifecycle = lifecycleBuilder == null ? null : lifecycleBuilder.buildTemplate();
348348
if (template.getDataStreamTemplate() != null && lifecycle == null && isDslOnlyMode) {
349-
lifecycle = DataStreamLifecycle.Template.DEFAULT;
349+
lifecycle = DataStreamLifecycle.Template.DATA_DEFAULT;
350350
}
351351
DataStreamOptions.Builder optionsBuilder = resolveDataStreamOptions(simulatedState.metadata(), matchingTemplate);
352352
return new Template(

server/src/main/java/org/elasticsearch/cluster/metadata/DataStreamLifecycle.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ public static boolean isDataStreamsLifecycleOnlyMode(final Settings settings) {
8686
Setting.Property.NodeScope
8787
);
8888

89-
public static final DataStreamLifecycle DEFAULT = new DataStreamLifecycle();
89+
public static final DataStreamLifecycle DEFAULT_DATA_LIFECYCLE = new DataStreamLifecycle(null, null, null);
9090

9191
public static final String DATA_STREAM_LIFECYCLE_ORIGIN = "data_stream_lifecycle";
9292

@@ -132,10 +132,6 @@ public static boolean isDataStreamsLifecycleOnlyMode(final Settings settings) {
132132
@Nullable
133133
private final List<DownsamplingRound> downsampling;
134134

135-
public DataStreamLifecycle() {
136-
this(null, null, null);
137-
}
138-
139135
public DataStreamLifecycle(
140136
@Nullable Boolean enabled,
141137
@Nullable TimeValue dataRetention,
@@ -562,7 +558,7 @@ public Template(boolean enabled, TimeValue dataRetention, List<DataStreamLifecyc
562558
}
563559
}
564560

565-
public static final DataStreamLifecycle.Template DEFAULT = new DataStreamLifecycle.Template(
561+
public static final DataStreamLifecycle.Template DATA_DEFAULT = new DataStreamLifecycle.Template(
566562
true,
567563
ResettableValue.undefined(),
568564
ResettableValue.undefined()

server/src/main/java/org/elasticsearch/cluster/metadata/MetadataCreateDataStreamService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -329,7 +329,7 @@ static ClusterState createDataStream(
329329
System::currentTimeMillis,
330330
template.getDataStreamTemplate().isAllowCustomRouting(),
331331
indexMode,
332-
lifecycle == null && isDslOnlyMode ? DataStreamLifecycle.DEFAULT : lifecycle,
332+
lifecycle == null && isDslOnlyMode ? DataStreamLifecycle.DEFAULT_DATA_LIFECYCLE : lifecycle,
333333
dataStreamOptions,
334334
new DataStream.DataStreamIndices(DataStream.BACKING_INDEX_PREFIX, dsBackingIndices, false, null),
335335
// If the failure store shouldn't be initialized on data stream creation, we're marking it for "lazy rollover", which will

server/src/test/java/org/elasticsearch/action/admin/indices/template/get/GetComponentTemplateResponseTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ public void testXContentSerializationWithRolloverAndEffectiveRetention() throws
6666
Settings settings = null;
6767
CompressedXContent mappings = null;
6868
Map<String, AliasMetadata> aliases = null;
69-
DataStreamLifecycle.Template lifecycle = DataStreamLifecycle.Template.DEFAULT;
69+
DataStreamLifecycle.Template lifecycle = DataStreamLifecycle.Template.DATA_DEFAULT;
7070
ResettableValue<DataStreamOptions.Template> dataStreamOptions = ResettableValue.undefined();
7171
if (randomBoolean()) {
7272
settings = randomSettings();

server/src/test/java/org/elasticsearch/action/datastreams/lifecycle/ExplainDataStreamLifecycleResponseTests.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ protected NamedWriteableRegistry getNamedWriteableRegistry() {
6363
@SuppressWarnings("unchecked")
6464
public void testToXContent() throws IOException {
6565
long now = System.currentTimeMillis();
66-
DataStreamLifecycle lifecycle = new DataStreamLifecycle();
66+
DataStreamLifecycle lifecycle = DataStreamLifecycle.DEFAULT_DATA_LIFECYCLE;
6767
ExplainIndexDataStreamLifecycle explainIndex = createRandomIndexDataStreamLifecycleExplanation(now, lifecycle);
6868
explainIndex.setNowSupplier(() -> now);
6969
{
@@ -241,7 +241,7 @@ public void testToXContent() throws IOException {
241241

242242
public void testChunkCount() {
243243
long now = System.currentTimeMillis();
244-
DataStreamLifecycle lifecycle = new DataStreamLifecycle();
244+
DataStreamLifecycle lifecycle = DataStreamLifecycle.DEFAULT_DATA_LIFECYCLE;
245245
Response response = new Response(
246246
List.of(
247247
createRandomIndexDataStreamLifecycleExplanation(now, lifecycle),
@@ -298,7 +298,12 @@ protected Response mutateInstance(Response instance) {
298298

299299
private Response randomResponse() {
300300
return new Response(
301-
List.of(createRandomIndexDataStreamLifecycleExplanation(System.nanoTime(), randomBoolean() ? new DataStreamLifecycle() : null)),
301+
List.of(
302+
createRandomIndexDataStreamLifecycleExplanation(
303+
System.nanoTime(),
304+
randomBoolean() ? DataStreamLifecycle.DEFAULT_DATA_LIFECYCLE : null
305+
)
306+
),
302307
randomBoolean()
303308
? new RolloverConfiguration(
304309
new RolloverConditions(

0 commit comments

Comments
 (0)