pub struct CacheConfig { /* private fields */ }
cache
only.Expand description
Global configuration for how the cache is managed
Implementations§
Source§impl CacheConfig
impl CacheConfig
Sourcepub fn new() -> CacheConfig
pub fn new() -> CacheConfig
Creates a new set of configuration which represents a disabled cache
Sourcepub fn from_file(config_file: Option<&Path>) -> Result<CacheConfig, Error>
pub fn from_file(config_file: Option<&Path>) -> Result<CacheConfig, Error>
Loads cache configuration specified at path
.
This method will read the file specified by path
on the filesystem and
attempt to load cache configuration from it. This method can also fail
due to I/O errors, misconfiguration, syntax errors, etc. For expected
syntax in the configuration file see the documentation online.
Passing in None
loads cache configuration from the system default path.
This is located, for example, on Unix at $HOME/.config/wasmtime/config.toml
and is typically created with the wasmtime config new
command.
§Errors
This method can fail due to any error that happens when loading the file
pointed to by path
and attempting to load the cache configuration.
Sourcepub fn worker_event_queue_size(&self) -> u64
pub fn worker_event_queue_size(&self) -> u64
Returns $setting
.
Panics if the cache is disabled.
Sourcepub fn baseline_compression_level(&self) -> i32
pub fn baseline_compression_level(&self) -> i32
Returns $setting
.
Panics if the cache is disabled.
Sourcepub fn optimized_compression_level(&self) -> i32
pub fn optimized_compression_level(&self) -> i32
Returns $setting
.
Panics if the cache is disabled.
Sourcepub fn optimized_compression_usage_counter_threshold(&self) -> u64
pub fn optimized_compression_usage_counter_threshold(&self) -> u64
Returns $setting
.
Panics if the cache is disabled.
Sourcepub fn cleanup_interval(&self) -> Duration
pub fn cleanup_interval(&self) -> Duration
Returns $setting
.
Panics if the cache is disabled.
Sourcepub fn optimizing_compression_task_timeout(&self) -> Duration
pub fn optimizing_compression_task_timeout(&self) -> Duration
Returns $setting
.
Panics if the cache is disabled.
Sourcepub fn allowed_clock_drift_for_files_from_future(&self) -> Duration
pub fn allowed_clock_drift_for_files_from_future(&self) -> Duration
Returns $setting
.
Panics if the cache is disabled.
Sourcepub fn file_count_soft_limit(&self) -> u64
pub fn file_count_soft_limit(&self) -> u64
Returns $setting
.
Panics if the cache is disabled.
Sourcepub fn files_total_size_soft_limit(&self) -> u64
pub fn files_total_size_soft_limit(&self) -> u64
Returns $setting
.
Panics if the cache is disabled.
Sourcepub fn file_count_limit_percent_if_deleting(&self) -> u8
pub fn file_count_limit_percent_if_deleting(&self) -> u8
Returns $setting
.
Panics if the cache is disabled.
Sourcepub fn files_total_size_limit_percent_if_deleting(&self) -> u8
pub fn files_total_size_limit_percent_if_deleting(&self) -> u8
Returns $setting
.
Panics if the cache is disabled.
Sourcepub fn directory(&self) -> &PathBuf
pub fn directory(&self) -> &PathBuf
Returns path to the cache directory.
Panics if the cache is disabled.
Sourcepub fn with_directory(
&mut self,
directory: impl Into<PathBuf>,
) -> &mut CacheConfig
pub fn with_directory( &mut self, directory: impl Into<PathBuf>, ) -> &mut CacheConfig
Specify where the cache directory is. Must be an absolute path.
Sourcepub fn with_worker_event_queue_size(&mut self, size: u64) -> &mut CacheConfig
pub fn with_worker_event_queue_size(&mut self, size: u64) -> &mut CacheConfig
Size of cache worker event queue. If the queue is full, incoming cache usage events will be dropped.
Sourcepub fn with_baseline_compression_level(
&mut self,
level: i32,
) -> &mut CacheConfig
pub fn with_baseline_compression_level( &mut self, level: i32, ) -> &mut CacheConfig
Compression level used when a new cache file is being written by the cache system. Wasmtime uses zstd compression.
Sourcepub fn with_optimized_compression_level(
&mut self,
level: i32,
) -> &mut CacheConfig
pub fn with_optimized_compression_level( &mut self, level: i32, ) -> &mut CacheConfig
Compression level used when the cache worker decides to recompress a cache file. Wasmtime uses zstd compression.
Sourcepub fn with_optimized_compression_usage_counter_threshold(
&mut self,
threshold: u64,
) -> &mut CacheConfig
pub fn with_optimized_compression_usage_counter_threshold( &mut self, threshold: u64, ) -> &mut CacheConfig
One of the conditions for the cache worker to recompress a cache file is to have usage count of the file exceeding this threshold.
Sourcepub fn with_cleanup_interval(&mut self, interval: Duration) -> &mut CacheConfig
pub fn with_cleanup_interval(&mut self, interval: Duration) -> &mut CacheConfig
When the cache worker is notified about a cache file being updated by the cache system and this interval has already passed since last cleaning up, the worker will attempt a new cleanup.
Sourcepub fn with_optimizing_compression_task_timeout(
&mut self,
timeout: Duration,
) -> &mut CacheConfig
pub fn with_optimizing_compression_task_timeout( &mut self, timeout: Duration, ) -> &mut CacheConfig
When the cache worker decides to recompress a cache file, it makes sure that no other worker has started the task for this file within the last optimizing-compression-task-timeout interval. If some worker has started working on it, other workers are skipping this task.
Sourcepub fn with_allowed_clock_drift_for_files_from_future(
&mut self,
drift: Duration,
) -> &mut CacheConfig
pub fn with_allowed_clock_drift_for_files_from_future( &mut self, drift: Duration, ) -> &mut CacheConfig
§Locks
When the cache worker attempts acquiring a lock for some task, it checks if some other worker has already acquired such a lock. To be fault tolerant and eventually execute every task, the locks expire after some interval. However, because of clock drifts and different timezones, it would happen that some lock was created in the future. This setting defines a tolerance limit for these locks. If the time has been changed in the system (i.e. two years backwards), the cache system should still work properly. Thus, these locks will be treated as expired (assuming the tolerance is not too big).
§Cache files
Similarly to the locks, the cache files or their metadata might have modification time in distant future. The cache system tries to keep these files as long as possible. If the limits are not reached, the cache files will not be deleted. Otherwise, they will be treated as the oldest files, so they might survive. If the user actually uses the cache file, the modification time will be updated.
Sourcepub fn with_file_count_soft_limit(&mut self, limit: u64) -> &mut CacheConfig
pub fn with_file_count_soft_limit(&mut self, limit: u64) -> &mut CacheConfig
Soft limit for the file count in the cache directory.
This doesn’t include files with metadata. To learn more, please refer to the cache system section.
Sourcepub fn with_files_total_size_soft_limit(
&mut self,
limit: u64,
) -> &mut CacheConfig
pub fn with_files_total_size_soft_limit( &mut self, limit: u64, ) -> &mut CacheConfig
Soft limit for the total size* of files in the cache directory.
This doesn’t include files with metadata. To learn more, please refer to the cache system section.
*this is the file size, not the space physically occupied on the disk.
Sourcepub fn with_file_count_limit_percent_if_deleting(
&mut self,
percent: u8,
) -> &mut CacheConfig
pub fn with_file_count_limit_percent_if_deleting( &mut self, percent: u8, ) -> &mut CacheConfig
If file-count-soft-limit is exceeded and the cache worker performs the cleanup task, then the worker will delete some cache files, so after the task, the file count should not exceed file-count-soft-limit * file-count-limit-percent-if-deleting.
This doesn’t include files with metadata. To learn more, please refer to the cache system section.
Sourcepub fn with_files_total_size_limit_percent_if_deleting(
&mut self,
percent: u8,
) -> &mut CacheConfig
pub fn with_files_total_size_limit_percent_if_deleting( &mut self, percent: u8, ) -> &mut CacheConfig
If files-total-size-soft-limit is exceeded and cache worker performs the cleanup task, then the worker will delete some cache files, so after the task, the files total size should not exceed files-total-size-soft-limit * files-total-size-limit-percent-if-deleting.
This doesn’t include files with metadata. To learn more, please refer to the cache system section.
Trait Implementations§
Source§impl Clone for CacheConfig
impl Clone for CacheConfig
Source§fn clone(&self) -> CacheConfig
fn clone(&self) -> CacheConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for CacheConfig
impl Debug for CacheConfig
Source§impl Default for CacheConfig
impl Default for CacheConfig
Source§fn default() -> CacheConfig
fn default() -> CacheConfig
Source§impl<'de> Deserialize<'de> for CacheConfig
impl<'de> Deserialize<'de> for CacheConfig
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<CacheConfig, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<CacheConfig, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for CacheConfig
impl RefUnwindSafe for CacheConfig
impl Send for CacheConfig
impl Sync for CacheConfig
impl Unpin for CacheConfig
impl UnwindSafe for CacheConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more