CacheConfig in wasmtime - Rust (original) (raw)
pub struct CacheConfig { /* private fields */ }
Available on crate feature cache
only.
Expand description
Global configuration for how the cache is managed
Creates a new set of configuration which represents a disabled cache
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.
Returns worker_event_queue_size
.
Panics if the cache is disabled.
Returns baseline_compression_level
.
Panics if the cache is disabled.
Returns optimized_compression_level
.
Panics if the cache is disabled.
Returns optimized_compression_usage_counter_threshold
.
Panics if the cache is disabled.
Returns cleanup_interval
.
Panics if the cache is disabled.
Returns optimizing_compression_task_timeout
.
Panics if the cache is disabled.
Returns allowed_clock_drift_for_files_from_future
.
Panics if the cache is disabled.
Returns file_count_soft_limit
.
Panics if the cache is disabled.
Returns files_total_size_soft_limit
.
Panics if the cache is disabled.
Returns file_count_limit_percent_if_deleting
.
Panics if the cache is disabled.
Returns files_total_size_limit_percent_if_deleting
.
Panics if the cache is disabled.
Returns path to the cache directory.
Panics if the cache is disabled.
Specify where the cache directory is. Must be an absolute path.
Size of cache worker event queue. If the queue is full, incoming cache usage events will be dropped.
Compression level used when a new cache file is being written by the cache system. Wasmtime uses zstd compression.
Compression level used when the cache worker decides to recompress a cache file. Wasmtime uses zstd compression.
One of the conditions for the cache worker to recompress a cache file is to have usage count of the file exceeding this threshold.
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.
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.
§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.
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.
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.
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.
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.