|  | @@ -46,19 +46,35 @@ import java.util.function.Consumer;
 | 
	
		
			
				|  |  |  import java.util.function.LongSupplier;
 | 
	
		
			
				|  |  |  import java.util.function.Predicate;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -import static org.elasticsearch.snapshots.SnapshotsService.SHARED_CACHE_RANGE_SIZE_SETTING;
 | 
	
		
			
				|  |  | -import static org.elasticsearch.snapshots.SnapshotsService.SHARED_CACHE_SETTINGS_PREFIX;
 | 
	
		
			
				|  |  | -import static org.elasticsearch.snapshots.SnapshotsService.SNAPSHOT_CACHE_REGION_SIZE_SETTING;
 | 
	
		
			
				|  |  | -import static org.elasticsearch.snapshots.SnapshotsService.SNAPSHOT_CACHE_SIZE_SETTING;
 | 
	
		
			
				|  |  |  import static org.elasticsearch.xpack.searchablesnapshots.SearchableSnapshotsUtils.toIntBytes;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  public class FrozenCacheService implements Releasable {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    private static final String SETTINGS_PREFIX = "xpack.searchable.snapshot.shared_cache.";
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    public static final Setting<ByteSizeValue> SNAPSHOT_CACHE_SIZE_SETTING = Setting.byteSizeSetting(
 | 
	
		
			
				|  |  | +        SETTINGS_PREFIX + "size",
 | 
	
		
			
				|  |  | +        ByteSizeValue.ZERO,
 | 
	
		
			
				|  |  | +        Setting.Property.NodeScope
 | 
	
		
			
				|  |  | +    );
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      public static final ByteSizeValue MIN_SNAPSHOT_CACHE_RANGE_SIZE = new ByteSizeValue(4, ByteSizeUnit.KB);
 | 
	
		
			
				|  |  |      public static final ByteSizeValue MAX_SNAPSHOT_CACHE_RANGE_SIZE = new ByteSizeValue(Integer.MAX_VALUE, ByteSizeUnit.BYTES);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    public static final Setting<ByteSizeValue> FROZEN_CACHE_RANGE_SIZE_SETTING = Setting.byteSizeSetting(
 | 
	
		
			
				|  |  | +        SETTINGS_PREFIX + "range_size",
 | 
	
		
			
				|  |  | +        ByteSizeValue.ofMb(16),                                 // default
 | 
	
		
			
				|  |  | +        Setting.Property.NodeScope
 | 
	
		
			
				|  |  | +    );
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    public static final Setting<ByteSizeValue> SNAPSHOT_CACHE_REGION_SIZE_SETTING = Setting.byteSizeSetting(
 | 
	
		
			
				|  |  | +        SETTINGS_PREFIX + "region_size",
 | 
	
		
			
				|  |  | +        FROZEN_CACHE_RANGE_SIZE_SETTING,
 | 
	
		
			
				|  |  | +        Setting.Property.NodeScope
 | 
	
		
			
				|  |  | +    );
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      public static final Setting<ByteSizeValue> FROZEN_CACHE_RECOVERY_RANGE_SIZE_SETTING = Setting.byteSizeSetting(
 | 
	
		
			
				|  |  | -        SHARED_CACHE_SETTINGS_PREFIX + "recovery_range_size",
 | 
	
		
			
				|  |  | +        SETTINGS_PREFIX + "recovery_range_size",
 | 
	
		
			
				|  |  |          new ByteSizeValue(128, ByteSizeUnit.KB),                // default
 | 
	
		
			
				|  |  |          MIN_SNAPSHOT_CACHE_RANGE_SIZE,                          // min
 | 
	
		
			
				|  |  |          MAX_SNAPSHOT_CACHE_RANGE_SIZE,                          // max
 | 
	
	
		
			
				|  | @@ -67,7 +83,7 @@ public class FrozenCacheService implements Releasable {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      public static final TimeValue MIN_SNAPSHOT_CACHE_DECAY_INTERVAL = TimeValue.timeValueSeconds(1L);
 | 
	
		
			
				|  |  |      public static final Setting<TimeValue> SNAPSHOT_CACHE_DECAY_INTERVAL_SETTING = Setting.timeSetting(
 | 
	
		
			
				|  |  | -        SHARED_CACHE_SETTINGS_PREFIX + "decay.interval",
 | 
	
		
			
				|  |  | +        SETTINGS_PREFIX + "decay.interval",
 | 
	
		
			
				|  |  |          TimeValue.timeValueSeconds(60L),                        // default
 | 
	
		
			
				|  |  |          MIN_SNAPSHOT_CACHE_DECAY_INTERVAL,                      // min
 | 
	
		
			
				|  |  |          Setting.Property.NodeScope,
 | 
	
	
		
			
				|  | @@ -75,14 +91,14 @@ public class FrozenCacheService implements Releasable {
 | 
	
		
			
				|  |  |      );
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      public static final Setting<Integer> SNAPSHOT_CACHE_MAX_FREQ_SETTING = Setting.intSetting(
 | 
	
		
			
				|  |  | -        SHARED_CACHE_SETTINGS_PREFIX + "max_freq",
 | 
	
		
			
				|  |  | +        SETTINGS_PREFIX + "max_freq",
 | 
	
		
			
				|  |  |          100,                       // default
 | 
	
		
			
				|  |  |          1,                            // min
 | 
	
		
			
				|  |  |          Setting.Property.NodeScope
 | 
	
		
			
				|  |  |      );
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      public static final Setting<TimeValue> SNAPSHOT_CACHE_MIN_TIME_DELTA_SETTING = Setting.timeSetting(
 | 
	
		
			
				|  |  | -        SHARED_CACHE_SETTINGS_PREFIX + "min_time_delta",
 | 
	
		
			
				|  |  | +        SETTINGS_PREFIX + "min_time_delta",
 | 
	
		
			
				|  |  |          TimeValue.timeValueSeconds(60L),                        // default
 | 
	
		
			
				|  |  |          TimeValue.timeValueSeconds(0L),                         // min
 | 
	
		
			
				|  |  |          Setting.Property.NodeScope
 | 
	
	
		
			
				|  | @@ -141,7 +157,7 @@ public class FrozenCacheService implements Releasable {
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          decayTask = new CacheDecayTask(threadPool, SNAPSHOT_CACHE_DECAY_INTERVAL_SETTING.get(settings));
 | 
	
		
			
				|  |  |          decayTask.rescheduleIfNecessary();
 | 
	
		
			
				|  |  | -        this.rangeSize = SHARED_CACHE_RANGE_SIZE_SETTING.get(settings);
 | 
	
		
			
				|  |  | +        this.rangeSize = FROZEN_CACHE_RANGE_SIZE_SETTING.get(settings);
 | 
	
		
			
				|  |  |          this.recoveryRangeSize = FROZEN_CACHE_RECOVERY_RANGE_SIZE_SETTING.get(settings);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 |