diff options
| author | mo khan <mo@mokhan.ca> | 2025-07-16 13:44:59 -0600 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2025-07-16 13:44:59 -0600 |
| commit | aadfbeb39d0ac5ccb1a19899d7680b1c96b1a6cf (patch) | |
| tree | 293cb102463ab1aeeac6aa899cedbbbf03ed6187 /src/rpc/envoy.extensions.http.cache.file_system_http_cache.v3.rs | |
| parent | e97b15bcb9581b895d8431f3f3eaf7a9dd1bcac6 (diff) | |
chore: add generated rpc code
Diffstat (limited to 'src/rpc/envoy.extensions.http.cache.file_system_http_cache.v3.rs')
| -rw-r--r-- | src/rpc/envoy.extensions.http.cache.file_system_http_cache.v3.rs | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/src/rpc/envoy.extensions.http.cache.file_system_http_cache.v3.rs b/src/rpc/envoy.extensions.http.cache.file_system_http_cache.v3.rs new file mode 100644 index 00000000..affaadd2 --- /dev/null +++ b/src/rpc/envoy.extensions.http.cache.file_system_http_cache.v3.rs @@ -0,0 +1,115 @@ +// @generated +// This file is @generated by prost-build. +// \[#protodoc-title: FileSystemHttpCacheConfig\] +// \[#extension: envoy.extensions.http.cache.file_system_http_cache\] + +/// Configuration for a cache implementation that caches in the local file system. +/// +/// By default this cache uses a least-recently-used eviction strategy. +/// +/// For implementation details, see `DESIGN.md <<https://github.com/envoyproxy/envoy/blob/main/source/extensions/http/cache/file_system_http_cache/DESIGN.md>`_.> +/// \[#next-free-field: 11\] +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FileSystemHttpCacheConfig { + /// Configuration of a manager for how the file system is used asynchronously. + #[prost(message, optional, tag="1")] + pub manager_config: ::core::option::Option<super::super::super::super::common::async_files::v3::AsyncFileManagerConfig>, + /// Path at which the cache files will be stored. + /// + /// This also doubles as the unique identifier for a cache, so a cache can be shared + /// between different routes, or separate paths can be used to specify separate caches. + /// + /// If the same ``cache_path`` is used in more than one ``CacheConfig``, the rest of the + /// ``FileSystemHttpCacheConfig`` must also match, and will refer to the same cache + /// instance. + #[prost(string, tag="2")] + pub cache_path: ::prost::alloc::string::String, + /// The maximum size of the cache in bytes - when reached, cache eviction is triggered. + /// + /// This is measured as the sum of file sizes, such that it includes headers, trailers, + /// and metadata, but does not include e.g. file system overhead and block size padding. + /// + /// If unset there is no limit except file system failure. + #[prost(message, optional, tag="3")] + pub max_cache_size_bytes: ::core::option::Option<super::super::super::super::super::super::google::protobuf::UInt64Value>, + /// The maximum size of a cache entry in bytes - larger responses will not be cached. + /// + /// This is measured as the file size for the cache entry, such that it includes + /// headers, trailers, and metadata. + /// + /// If unset there is no limit. + /// + /// \[#not-implemented-hide:\] + #[prost(message, optional, tag="4")] + pub max_individual_cache_entry_size_bytes: ::core::option::Option<super::super::super::super::super::super::google::protobuf::UInt64Value>, + /// The maximum number of cache entries - when reached, cache eviction is triggered. + /// + /// If unset there is no limit. + #[prost(message, optional, tag="5")] + pub max_cache_entry_count: ::core::option::Option<super::super::super::super::super::super::google::protobuf::UInt64Value>, + /// A number of folders into which to subdivide the cache. + /// + /// Setting this can help with performance in file systems where a large number of inodes + /// in a single branch degrades performance. The optimal value in that case would be + /// ``sqrt(expected_cache_entry_count)``. + /// + /// On file systems that perform well with many inodes, the default value of 1 should be used. + /// + /// \[#not-implemented-hide:\] + #[prost(uint32, tag="6")] + pub cache_subdivisions: u32, + /// The amount of the maximum cache size or count to evict when cache eviction is + /// triggered. For example, if ``max_cache_size_bytes`` is 10000000 and ``evict_fraction`` + /// is 0.2, then when the cache exceeds 10MB, entries will be evicted until the cache size is + /// less than or equal to 8MB. + /// + /// The default value of 0 means when the cache exceeds 10MB, entries will be evicted only + /// until the cache is less than or equal to 10MB. + /// + /// Evicting a larger fraction will mean the eviction thread will run less often (sparing + /// CPU load) at the cost of more cache misses due to the extra evicted entries. + /// + /// \[#not-implemented-hide:\] + #[prost(float, tag="7")] + pub evict_fraction: f32, + /// The longest amount of time to wait before running a cache eviction pass. An eviction + /// pass may not necessarily remove any files, but it will update the cache state to match + /// the on-disk state. This can be important if multiple instances are accessing the same + /// cache in parallel. (e.g. if two instances each independently added non-overlapping 10MB + /// of content to a cache with a 15MB limit, neither instance would be aware that the limit + /// was exceeded without this synchronizing pass.) + /// + /// If an eviction pass has not happened within this duration, the eviction thread will + /// be awoken and perform an eviction pass. + /// + /// If unset, there will be no eviction passes except those triggered by cache limits. + /// + /// \[#not-implemented-hide:\] + #[prost(message, optional, tag="8")] + pub max_eviction_period: ::core::option::Option<super::super::super::super::super::super::google::protobuf::Duration>, + /// The shortest amount of time between cache eviction passes. This can be used to reduce + /// eviction churn, if your cache max size can be flexible. If a cache eviction pass already + /// occurred more recently than this period when another would be triggered, that new + /// pass is cancelled. + /// + /// This means the cache can potentially grow beyond ``max_cache_size_bytes`` by as much as + /// can be written within the duration specified. + /// + /// Generally you would use *either* ``min_eviction_period`` *or* ``evict_fraction`` to + /// reduce churn. Both together will work but since they're both aiming for the same goal, + /// it's simpler not to. + /// + /// \[#not-implemented-hide:\] + #[prost(message, optional, tag="9")] + pub min_eviction_period: ::core::option::Option<super::super::super::super::super::super::google::protobuf::Duration>, + /// If true, and the cache path does not exist, attempt to create the cache path, including + /// any missing directories leading up to it. On failure, the config is rejected. + /// + /// If false, and the cache path does not exist, the config is rejected. + /// + /// \[#not-implemented-hide:\] + #[prost(bool, tag="10")] + pub create_cache_path: bool, +} +// @@protoc_insertion_point(module) |
