From f91bfb82f8bc1fd1527cc3f663f39f74e5ad53e9 Mon Sep 17 00:00:00 2001 From: Tanguy Leroux Date: Tue, 22 Jun 2021 17:22:07 +0200 Subject: [PATCH] Shared cache's recovery range should be aligned with page size --- .../BaseSearchableSnapshotsIntegTestCase.java | 4 +++- .../cache/shared/FrozenCacheService.java | 16 ++++++++-------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/x-pack/plugin/searchable-snapshots/src/internalClusterTest/java/org/elasticsearch/xpack/searchablesnapshots/BaseSearchableSnapshotsIntegTestCase.java b/x-pack/plugin/searchable-snapshots/src/internalClusterTest/java/org/elasticsearch/xpack/searchablesnapshots/BaseSearchableSnapshotsIntegTestCase.java index 0cea30ee9d1c3..a926f4c5f80c1 100644 --- a/x-pack/plugin/searchable-snapshots/src/internalClusterTest/java/org/elasticsearch/xpack/searchablesnapshots/BaseSearchableSnapshotsIntegTestCase.java +++ b/x-pack/plugin/searchable-snapshots/src/internalClusterTest/java/org/elasticsearch/xpack/searchablesnapshots/BaseSearchableSnapshotsIntegTestCase.java @@ -126,7 +126,9 @@ protected Settings nodeSettings(int nodeOrdinal, Settings otherSettings) { if (randomBoolean()) { builder.put( FrozenCacheService.FROZEN_CACHE_RECOVERY_RANGE_SIZE_SETTING.getKey(), - new ByteSizeValue(randomIntBetween(4, 1024), ByteSizeUnit.KB) + rarely() + ? pageAligned(new ByteSizeValue(randomIntBetween(4, 1024), ByteSizeUnit.KB)) + : pageAligned(new ByteSizeValue(randomIntBetween(1, 10), ByteSizeUnit.MB)) ); } return builder.build(); diff --git a/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/cache/shared/FrozenCacheService.java b/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/cache/shared/FrozenCacheService.java index 90188d56e78bb..751b349e32eb8 100644 --- a/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/cache/shared/FrozenCacheService.java +++ b/x-pack/plugin/searchable-snapshots/src/main/java/org/elasticsearch/xpack/searchablesnapshots/cache/shared/FrozenCacheService.java @@ -76,6 +76,14 @@ public class FrozenCacheService implements Releasable { Setting.Property.NodeScope ); + public static final Setting FROZEN_CACHE_RECOVERY_RANGE_SIZE_SETTING = new Setting<>( + SHARED_CACHE_SETTINGS_PREFIX + "recovery_range_size", + ByteSizeValue.ofKb(128L).getStringRep(), + s -> ByteSizeValue.parseBytesSizeValue(s, SHARED_CACHE_SETTINGS_PREFIX + "recovery_range_size"), + getPageSizeAlignedByteSizeValueValidator(SHARED_CACHE_SETTINGS_PREFIX + "recovery_range_size"), + Setting.Property.NodeScope + ); + public static final Setting SNAPSHOT_CACHE_REGION_SIZE_SETTING = new Setting<>( SHARED_CACHE_SETTINGS_PREFIX + "region_size", SHARED_CACHE_RANGE_SIZE_SETTING, @@ -182,14 +190,6 @@ public void validate(ByteSizeValue value, Map, Object> settings, bool Setting.Property.NodeScope ); - public static final Setting FROZEN_CACHE_RECOVERY_RANGE_SIZE_SETTING = Setting.byteSizeSetting( - SHARED_CACHE_SETTINGS_PREFIX + "recovery_range_size", - new ByteSizeValue(128, ByteSizeUnit.KB), // default - MIN_SNAPSHOT_CACHE_RANGE_SIZE, // min - MAX_SNAPSHOT_CACHE_RANGE_SIZE, // max - Setting.Property.NodeScope - ); - public static final TimeValue MIN_SNAPSHOT_CACHE_DECAY_INTERVAL = TimeValue.timeValueSeconds(1L); public static final Setting SNAPSHOT_CACHE_DECAY_INTERVAL_SETTING = Setting.timeSetting( SHARED_CACHE_SETTINGS_PREFIX + "decay.interval",