From edd7742b093c5b1ae8f7fec74f2adc3574e0ce4f Mon Sep 17 00:00:00 2001 From: Jason Tedor Date: Thu, 11 Mar 2021 17:29:04 -0500 Subject: [PATCH 1/7] Deprecate setting shared cache on non-frozen nodes This commit deprecates the ability to set the shared cache to be positive on non-frozen nodes. --- .../cache/FrozenCacheService.java | 56 ++++++++++++++++++- .../plugin-metadata/plugin-security.codebases | 1 + .../cache/FrozenCacheServiceTests.java | 18 ++++++ 3 files changed, 73 insertions(+), 2 deletions(-) create mode 100644 x-pack/plugin/searchable-snapshots/src/main/plugin-metadata/plugin-security.codebases diff --git a/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/cache/FrozenCacheService.java b/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/cache/FrozenCacheService.java index 6366ba49f2726..b1af07799874a 100644 --- a/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/cache/FrozenCacheService.java +++ b/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/cache/FrozenCacheService.java @@ -11,13 +11,19 @@ import org.apache.logging.log4j.Logger; import org.apache.lucene.store.AlreadyClosedException; import org.elasticsearch.Assertions; +import org.elasticsearch.Version; import org.elasticsearch.action.ActionListener; import org.elasticsearch.action.StepListener; +import org.elasticsearch.cluster.node.DiscoveryNode; +import org.elasticsearch.cluster.node.DiscoveryNodeRole; import org.elasticsearch.common.Nullable; import org.elasticsearch.common.lease.Releasable; import org.elasticsearch.common.lease.Releasables; +import org.elasticsearch.common.logging.DeprecationCategory; +import org.elasticsearch.common.logging.DeprecationLogger; import org.elasticsearch.common.settings.Setting; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.common.transport.TransportAddress; import org.elasticsearch.common.unit.ByteSizeUnit; import org.elasticsearch.common.unit.ByteSizeValue; import org.elasticsearch.common.unit.TimeValue; @@ -30,13 +36,18 @@ import org.elasticsearch.index.shard.ShardId; import org.elasticsearch.index.store.cache.CacheKey; import org.elasticsearch.index.store.cache.SparseFileTracker; +import org.elasticsearch.node.NodeRoleSettings; import org.elasticsearch.threadpool.ThreadPool; +import org.elasticsearch.xpack.core.DataTier; import java.io.IOException; import java.io.UncheckedIOException; import java.util.ArrayList; +import java.util.Iterator; import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.Executor; @@ -45,6 +56,7 @@ import java.util.function.Consumer; import java.util.function.LongSupplier; import java.util.function.Predicate; +import java.util.stream.Collectors; import static org.elasticsearch.xpack.searchablesnapshots.SearchableSnapshotsUtils.toIntBytes; @@ -67,9 +79,48 @@ public class FrozenCacheService implements Releasable { Setting.Property.NodeScope ); - public static final Setting SNAPSHOT_CACHE_SIZE_SETTING = Setting.byteSizeSetting( + public static final Setting SNAPSHOT_CACHE_SIZE_SETTING = new Setting<>( SHARED_CACHE_SETTINGS_PREFIX + "size", - ByteSizeValue.ZERO, + ByteSizeValue.ZERO.getStringRep(), + s -> ByteSizeValue.parseBytesSizeValue(s, SHARED_CACHE_SETTINGS_PREFIX + "size"), + new Setting.Validator() { + + @Override + public void validate(final ByteSizeValue value) { + + } + + @Override + public void validate(final ByteSizeValue value, final Map, Object> settings) { + if (value.getBytes() > 0) { + @SuppressWarnings("unchecked") final List roles = + (List) settings.get(NodeRoleSettings.NODE_ROLES_SETTING); + final DiscoveryNode fake = new DiscoveryNode( + "fake", + new TransportAddress(TransportAddress.META_ADDRESS, 0), + Map.of(), + Set.of(roles.toArray(DiscoveryNodeRole[]::new)), Version.CURRENT + ); + if (DataTier.isFrozenNode(fake) == false) { + deprecationLogger.deprecate( + DeprecationCategory.SETTINGS, + "shared_cache", + "setting [{}] to be positive [{}] on node without the data_frozen role is deprecated, roles are [{}]", + SHARED_CACHE_SETTINGS_PREFIX + "size", + value.getStringRep(), + roles.stream().map(DiscoveryNodeRole::roleName).collect(Collectors.toUnmodifiableList()) + ); + } + } + } + + @Override + public Iterator> settings() { + final List> settings = List.of(NodeRoleSettings.NODE_ROLES_SETTING); + return settings.iterator(); + } + + }, Setting.Property.NodeScope ); @@ -105,6 +156,7 @@ public class FrozenCacheService implements Releasable { ); private static final Logger logger = LogManager.getLogger(FrozenCacheService.class); + private static final DeprecationLogger deprecationLogger = DeprecationLogger.getLogger(FrozenCacheService.class); private final ConcurrentHashMap> keyMapping; diff --git a/x-pack/plugin/searchable-snapshots/src/main/plugin-metadata/plugin-security.codebases b/x-pack/plugin/searchable-snapshots/src/main/plugin-metadata/plugin-security.codebases new file mode 100644 index 0000000000000..3e2c5e5dca726 --- /dev/null +++ b/x-pack/plugin/searchable-snapshots/src/main/plugin-metadata/plugin-security.codebases @@ -0,0 +1 @@ +preallocate: org.elasticsearch.xpack.searchablesnapshots.preallocate.Preallocate diff --git a/x-pack/plugin/searchable-snapshots/src/test/java/org/elasticsearch/xpack/searchablesnapshots/cache/FrozenCacheServiceTests.java b/x-pack/plugin/searchable-snapshots/src/test/java/org/elasticsearch/xpack/searchablesnapshots/cache/FrozenCacheServiceTests.java index 769b924a24238..62600cad2fad7 100644 --- a/x-pack/plugin/searchable-snapshots/src/test/java/org/elasticsearch/xpack/searchablesnapshots/cache/FrozenCacheServiceTests.java +++ b/x-pack/plugin/searchable-snapshots/src/test/java/org/elasticsearch/xpack/searchablesnapshots/cache/FrozenCacheServiceTests.java @@ -8,18 +8,23 @@ package org.elasticsearch.xpack.searchablesnapshots.cache; import org.elasticsearch.cluster.coordination.DeterministicTaskQueue; +import org.elasticsearch.cluster.node.DiscoveryNode; +import org.elasticsearch.cluster.node.DiscoveryNodeRole; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.env.Environment; import org.elasticsearch.env.TestEnvironment; import org.elasticsearch.index.shard.ShardId; import org.elasticsearch.index.store.cache.CacheKey; +import org.elasticsearch.node.NodeRoleSettings; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.threadpool.ThreadPool; +import org.elasticsearch.xpack.core.DataTier; import org.elasticsearch.xpack.searchablesnapshots.cache.FrozenCacheService.CacheFileRegion; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; +import java.util.Set; import static org.elasticsearch.node.Node.NODE_NAME_SETTING; @@ -192,6 +197,19 @@ public void testDecay() throws IOException { } } + public void testCacheSizeDeprecatedOnNonFrozenNodes() { + DiscoveryNode.setAdditionalRoles( + Set.of(DataTier.DATA_HOT_NODE_ROLE, DataTier.DATA_WARM_NODE_ROLE, DataTier.DATA_COLD_NODE_ROLE, DataTier.DATA_FROZEN_NODE_ROLE)); + final Settings settings = Settings.builder() + .put(FrozenCacheService.SNAPSHOT_CACHE_SIZE_SETTING.getKey(), "500b") + .put(FrozenCacheService.SNAPSHOT_CACHE_REGION_SIZE_SETTING.getKey(), "100b") + .putList(NodeRoleSettings.NODE_ROLES_SETTING.getKey(), DataTier.DATA_HOT_NODE_ROLE.roleName()) + .build(); + FrozenCacheService.SNAPSHOT_CACHE_SIZE_SETTING.get(settings); + assertWarnings("setting [" + FrozenCacheService.SNAPSHOT_CACHE_SIZE_SETTING.getKey() + + "] to be positive [500b] on node without the data_frozen role is deprecated, roles are [[data_hot]]"); + } + private static CacheKey generateCacheKey() { return new CacheKey( randomAlphaOfLength(10), From 6ca31f05deb6991d0099a88380f3051565051845 Mon Sep 17 00:00:00 2001 From: Jason Tedor Date: Thu, 11 Mar 2021 17:35:22 -0500 Subject: [PATCH 2/7] Checkstyle! --- .../searchablesnapshots/cache/FrozenCacheServiceTests.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/x-pack/plugin/searchable-snapshots/src/test/java/org/elasticsearch/xpack/searchablesnapshots/cache/FrozenCacheServiceTests.java b/x-pack/plugin/searchable-snapshots/src/test/java/org/elasticsearch/xpack/searchablesnapshots/cache/FrozenCacheServiceTests.java index 62600cad2fad7..e647887ed5271 100644 --- a/x-pack/plugin/searchable-snapshots/src/test/java/org/elasticsearch/xpack/searchablesnapshots/cache/FrozenCacheServiceTests.java +++ b/x-pack/plugin/searchable-snapshots/src/test/java/org/elasticsearch/xpack/searchablesnapshots/cache/FrozenCacheServiceTests.java @@ -198,8 +198,8 @@ public void testDecay() throws IOException { } public void testCacheSizeDeprecatedOnNonFrozenNodes() { - DiscoveryNode.setAdditionalRoles( - Set.of(DataTier.DATA_HOT_NODE_ROLE, DataTier.DATA_WARM_NODE_ROLE, DataTier.DATA_COLD_NODE_ROLE, DataTier.DATA_FROZEN_NODE_ROLE)); + DiscoveryNode.setAdditionalRoles(Set.of( + DataTier.DATA_HOT_NODE_ROLE, DataTier.DATA_WARM_NODE_ROLE, DataTier.DATA_COLD_NODE_ROLE, DataTier.DATA_FROZEN_NODE_ROLE)); final Settings settings = Settings.builder() .put(FrozenCacheService.SNAPSHOT_CACHE_SIZE_SETTING.getKey(), "500b") .put(FrozenCacheService.SNAPSHOT_CACHE_REGION_SIZE_SETTING.getKey(), "100b") From 97daaaf4775a9e5be319547025faef8f277c5418 Mon Sep 17 00:00:00 2001 From: Jason Tedor Date: Thu, 11 Mar 2021 17:46:34 -0500 Subject: [PATCH 3/7] Update x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/cache/FrozenCacheService.java Co-authored-by: Lee Hinman --- .../xpack/searchablesnapshots/cache/FrozenCacheService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/cache/FrozenCacheService.java b/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/cache/FrozenCacheService.java index b1af07799874a..8e450ee6ce2ab 100644 --- a/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/cache/FrozenCacheService.java +++ b/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/cache/FrozenCacheService.java @@ -108,7 +108,7 @@ public void validate(final ByteSizeValue value, final Map, Object> se "setting [{}] to be positive [{}] on node without the data_frozen role is deprecated, roles are [{}]", SHARED_CACHE_SETTINGS_PREFIX + "size", value.getStringRep(), - roles.stream().map(DiscoveryNodeRole::roleName).collect(Collectors.toUnmodifiableList()) + roles.stream().map(DiscoveryNodeRole::roleName).collect(Collectors.joining(",")) ); } } From 892f575e1234dc905cf67a1316ad24c738abca4e Mon Sep 17 00:00:00 2001 From: Jason Tedor Date: Thu, 11 Mar 2021 18:09:46 -0500 Subject: [PATCH 4/7] Add simple method --- .../main/java/org/elasticsearch/xpack/core/DataTier.java | 6 +++++- .../searchablesnapshots/cache/FrozenCacheService.java | 8 +------- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/DataTier.java b/x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/DataTier.java index 0fa2d5762b908..efe34f777b937 100644 --- a/x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/DataTier.java +++ b/x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/DataTier.java @@ -191,7 +191,11 @@ public static boolean isColdNode(DiscoveryNode discoveryNode) { } public static boolean isFrozenNode(DiscoveryNode discoveryNode) { - return discoveryNode.getRoles().contains(DATA_FROZEN_NODE_ROLE) || discoveryNode.getRoles().contains(DiscoveryNodeRole.DATA_ROLE); + return isFrozenNode(discoveryNode.getRoles()); + } + + public static boolean isFrozenNode(final Set roles) { + return roles.contains(DATA_FROZEN_NODE_ROLE) || roles.contains(DiscoveryNodeRole.DATA_ROLE); } /** diff --git a/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/cache/FrozenCacheService.java b/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/cache/FrozenCacheService.java index 8e450ee6ce2ab..807bb0894c6ea 100644 --- a/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/cache/FrozenCacheService.java +++ b/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/cache/FrozenCacheService.java @@ -95,13 +95,7 @@ public void validate(final ByteSizeValue value, final Map, Object> se if (value.getBytes() > 0) { @SuppressWarnings("unchecked") final List roles = (List) settings.get(NodeRoleSettings.NODE_ROLES_SETTING); - final DiscoveryNode fake = new DiscoveryNode( - "fake", - new TransportAddress(TransportAddress.META_ADDRESS, 0), - Map.of(), - Set.of(roles.toArray(DiscoveryNodeRole[]::new)), Version.CURRENT - ); - if (DataTier.isFrozenNode(fake) == false) { + if (DataTier.isFrozenNode(Set.of(roles.toArray(DiscoveryNodeRole[]::new))) == false) { deprecationLogger.deprecate( DeprecationCategory.SETTINGS, "shared_cache", From 3f023831460b08397e1e56f5d2d82ba131d832b6 Mon Sep 17 00:00:00 2001 From: Jason Tedor Date: Thu, 11 Mar 2021 18:12:20 -0500 Subject: [PATCH 5/7] Validation --- .../xpack/searchablesnapshots/cache/FrozenCacheService.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/cache/FrozenCacheService.java b/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/cache/FrozenCacheService.java index 807bb0894c6ea..3b184a059c9bb 100644 --- a/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/cache/FrozenCacheService.java +++ b/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/cache/FrozenCacheService.java @@ -23,6 +23,7 @@ import org.elasticsearch.common.logging.DeprecationLogger; import org.elasticsearch.common.settings.Setting; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.common.settings.SettingsException; import org.elasticsearch.common.transport.TransportAddress; import org.elasticsearch.common.unit.ByteSizeUnit; import org.elasticsearch.common.unit.ByteSizeValue; @@ -92,6 +93,9 @@ public void validate(final ByteSizeValue value) { @Override public void validate(final ByteSizeValue value, final Map, Object> settings) { + if (value.getBytes() == -1) { + throw new SettingsException("setting [{}] must be non-negative", SHARED_CACHE_SETTINGS_PREFIX + "size"); + } if (value.getBytes() > 0) { @SuppressWarnings("unchecked") final List roles = (List) settings.get(NodeRoleSettings.NODE_ROLES_SETTING); From 12a624c2227d742997b209c80598fd7709419299 Mon Sep 17 00:00:00 2001 From: Jason Tedor Date: Thu, 11 Mar 2021 18:19:09 -0500 Subject: [PATCH 6/7] Update x-pack/plugin/searchable-snapshots/src/test/java/org/elasticsearch/xpack/searchablesnapshots/cache/FrozenCacheServiceTests.java Co-authored-by: Lee Hinman --- .../searchablesnapshots/cache/FrozenCacheServiceTests.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x-pack/plugin/searchable-snapshots/src/test/java/org/elasticsearch/xpack/searchablesnapshots/cache/FrozenCacheServiceTests.java b/x-pack/plugin/searchable-snapshots/src/test/java/org/elasticsearch/xpack/searchablesnapshots/cache/FrozenCacheServiceTests.java index e647887ed5271..b43bb1fbd15d7 100644 --- a/x-pack/plugin/searchable-snapshots/src/test/java/org/elasticsearch/xpack/searchablesnapshots/cache/FrozenCacheServiceTests.java +++ b/x-pack/plugin/searchable-snapshots/src/test/java/org/elasticsearch/xpack/searchablesnapshots/cache/FrozenCacheServiceTests.java @@ -207,7 +207,7 @@ public void testCacheSizeDeprecatedOnNonFrozenNodes() { .build(); FrozenCacheService.SNAPSHOT_CACHE_SIZE_SETTING.get(settings); assertWarnings("setting [" + FrozenCacheService.SNAPSHOT_CACHE_SIZE_SETTING.getKey() - + "] to be positive [500b] on node without the data_frozen role is deprecated, roles are [[data_hot]]"); + + "] to be positive [500b] on node without the data_frozen role is deprecated, roles are [data_hot]"); } private static CacheKey generateCacheKey() { From 07928dee4b840877d4e16d14a422484ef6f4e7bd Mon Sep 17 00:00:00 2001 From: Jason Tedor Date: Thu, 11 Mar 2021 18:30:30 -0500 Subject: [PATCH 7/7] Fix formatting --- .../cache/FrozenCacheService.java | 7 ++----- .../cache/FrozenCacheServiceTests.java | 13 ++++++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/cache/FrozenCacheService.java b/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/cache/FrozenCacheService.java index 3b184a059c9bb..b1ebbaa5cdf1d 100644 --- a/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/cache/FrozenCacheService.java +++ b/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/cache/FrozenCacheService.java @@ -11,10 +11,8 @@ import org.apache.logging.log4j.Logger; import org.apache.lucene.store.AlreadyClosedException; import org.elasticsearch.Assertions; -import org.elasticsearch.Version; import org.elasticsearch.action.ActionListener; import org.elasticsearch.action.StepListener; -import org.elasticsearch.cluster.node.DiscoveryNode; import org.elasticsearch.cluster.node.DiscoveryNodeRole; import org.elasticsearch.common.Nullable; import org.elasticsearch.common.lease.Releasable; @@ -24,7 +22,6 @@ import org.elasticsearch.common.settings.Setting; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.settings.SettingsException; -import org.elasticsearch.common.transport.TransportAddress; import org.elasticsearch.common.unit.ByteSizeUnit; import org.elasticsearch.common.unit.ByteSizeValue; import org.elasticsearch.common.unit.TimeValue; @@ -97,8 +94,8 @@ public void validate(final ByteSizeValue value, final Map, Object> se throw new SettingsException("setting [{}] must be non-negative", SHARED_CACHE_SETTINGS_PREFIX + "size"); } if (value.getBytes() > 0) { - @SuppressWarnings("unchecked") final List roles = - (List) settings.get(NodeRoleSettings.NODE_ROLES_SETTING); + @SuppressWarnings("unchecked") + final List roles = (List) settings.get(NodeRoleSettings.NODE_ROLES_SETTING); if (DataTier.isFrozenNode(Set.of(roles.toArray(DiscoveryNodeRole[]::new))) == false) { deprecationLogger.deprecate( DeprecationCategory.SETTINGS, diff --git a/x-pack/plugin/searchable-snapshots/src/test/java/org/elasticsearch/xpack/searchablesnapshots/cache/FrozenCacheServiceTests.java b/x-pack/plugin/searchable-snapshots/src/test/java/org/elasticsearch/xpack/searchablesnapshots/cache/FrozenCacheServiceTests.java index b43bb1fbd15d7..499b0cf4fcef9 100644 --- a/x-pack/plugin/searchable-snapshots/src/test/java/org/elasticsearch/xpack/searchablesnapshots/cache/FrozenCacheServiceTests.java +++ b/x-pack/plugin/searchable-snapshots/src/test/java/org/elasticsearch/xpack/searchablesnapshots/cache/FrozenCacheServiceTests.java @@ -9,7 +9,6 @@ import org.elasticsearch.cluster.coordination.DeterministicTaskQueue; import org.elasticsearch.cluster.node.DiscoveryNode; -import org.elasticsearch.cluster.node.DiscoveryNodeRole; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.env.Environment; import org.elasticsearch.env.TestEnvironment; @@ -198,16 +197,20 @@ public void testDecay() throws IOException { } public void testCacheSizeDeprecatedOnNonFrozenNodes() { - DiscoveryNode.setAdditionalRoles(Set.of( - DataTier.DATA_HOT_NODE_ROLE, DataTier.DATA_WARM_NODE_ROLE, DataTier.DATA_COLD_NODE_ROLE, DataTier.DATA_FROZEN_NODE_ROLE)); + DiscoveryNode.setAdditionalRoles( + Set.of(DataTier.DATA_HOT_NODE_ROLE, DataTier.DATA_WARM_NODE_ROLE, DataTier.DATA_COLD_NODE_ROLE, DataTier.DATA_FROZEN_NODE_ROLE) + ); final Settings settings = Settings.builder() .put(FrozenCacheService.SNAPSHOT_CACHE_SIZE_SETTING.getKey(), "500b") .put(FrozenCacheService.SNAPSHOT_CACHE_REGION_SIZE_SETTING.getKey(), "100b") .putList(NodeRoleSettings.NODE_ROLES_SETTING.getKey(), DataTier.DATA_HOT_NODE_ROLE.roleName()) .build(); FrozenCacheService.SNAPSHOT_CACHE_SIZE_SETTING.get(settings); - assertWarnings("setting [" + FrozenCacheService.SNAPSHOT_CACHE_SIZE_SETTING.getKey() - + "] to be positive [500b] on node without the data_frozen role is deprecated, roles are [data_hot]"); + assertWarnings( + "setting [" + + FrozenCacheService.SNAPSHOT_CACHE_SIZE_SETTING.getKey() + + "] to be positive [500b] on node without the data_frozen role is deprecated, roles are [data_hot]" + ); } private static CacheKey generateCacheKey() {