Documentation ¶
Index ¶
- Variables
- type FileSystemHttpCacheConfig
- func (*FileSystemHttpCacheConfig) Descriptor() ([]byte, []int)deprecated
- func (x *FileSystemHttpCacheConfig) GetCachePath() string
- func (x *FileSystemHttpCacheConfig) GetCacheSubdivisions() uint32
- func (x *FileSystemHttpCacheConfig) GetCreateCachePath() bool
- func (x *FileSystemHttpCacheConfig) GetEvictFraction() float32
- func (x *FileSystemHttpCacheConfig) GetManagerConfig() *v3.AsyncFileManagerConfig
- func (x *FileSystemHttpCacheConfig) GetMaxCacheEntryCount() *wrappers.UInt64Value
- func (x *FileSystemHttpCacheConfig) GetMaxCacheSizeBytes() *wrappers.UInt64Value
- func (x *FileSystemHttpCacheConfig) GetMaxEvictionPeriod() *duration.Duration
- func (x *FileSystemHttpCacheConfig) GetMaxIndividualCacheEntrySizeBytes() *wrappers.UInt64Value
- func (x *FileSystemHttpCacheConfig) GetMinEvictionPeriod() *duration.Duration
- func (*FileSystemHttpCacheConfig) ProtoMessage()
- func (x *FileSystemHttpCacheConfig) ProtoReflect() protoreflect.Message
- func (x *FileSystemHttpCacheConfig) Reset()
- func (x *FileSystemHttpCacheConfig) String() string
- func (m *FileSystemHttpCacheConfig) Validate() error
- func (m *FileSystemHttpCacheConfig) ValidateAll() error
- type FileSystemHttpCacheConfigMultiError
- type FileSystemHttpCacheConfigValidationError
- func (e FileSystemHttpCacheConfigValidationError) Cause() error
- func (e FileSystemHttpCacheConfigValidationError) Error() string
- func (e FileSystemHttpCacheConfigValidationError) ErrorName() string
- func (e FileSystemHttpCacheConfigValidationError) Field() string
- func (e FileSystemHttpCacheConfigValidationError) Key() bool
- func (e FileSystemHttpCacheConfigValidationError) Reason() string
Constants ¶
This section is empty.
Variables ¶
var File_envoy_extensions_http_cache_file_system_http_cache_v3_file_system_http_cache_proto protoreflect.FileDescriptor
Functions ¶
This section is empty.
Types ¶
type FileSystemHttpCacheConfig ¶
type FileSystemHttpCacheConfig struct { // Configuration of a manager for how the file system is used asynchronously. ManagerConfig *v3.AsyncFileManagerConfig `protobuf:"bytes,1,opt,name=manager_config,json=managerConfig,proto3" json:"manager_config,omitempty"` // 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. CachePath string `protobuf:"bytes,2,opt,name=cache_path,json=cachePath,proto3" json:"cache_path,omitempty"` // 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. MaxCacheSizeBytes *wrappers.UInt64Value `protobuf:"bytes,3,opt,name=max_cache_size_bytes,json=maxCacheSizeBytes,proto3" json:"max_cache_size_bytes,omitempty"` // 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:] MaxIndividualCacheEntrySizeBytes *wrappers.UInt64Value `` /* 165-byte string literal not displayed */ // The maximum number of cache entries - when reached, cache eviction is triggered. // // If unset there is no limit. MaxCacheEntryCount *wrappers.UInt64Value `protobuf:"bytes,5,opt,name=max_cache_entry_count,json=maxCacheEntryCount,proto3" json:"max_cache_entry_count,omitempty"` // 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:] CacheSubdivisions uint32 `protobuf:"varint,6,opt,name=cache_subdivisions,json=cacheSubdivisions,proto3" json:"cache_subdivisions,omitempty"` // 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:] EvictFraction float32 `protobuf:"fixed32,7,opt,name=evict_fraction,json=evictFraction,proto3" json:"evict_fraction,omitempty"` // 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:] MaxEvictionPeriod *duration.Duration `protobuf:"bytes,8,opt,name=max_eviction_period,json=maxEvictionPeriod,proto3" json:"max_eviction_period,omitempty"` // 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:] MinEvictionPeriod *duration.Duration `protobuf:"bytes,9,opt,name=min_eviction_period,json=minEvictionPeriod,proto3" json:"min_eviction_period,omitempty"` // 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:] CreateCachePath bool `protobuf:"varint,10,opt,name=create_cache_path,json=createCachePath,proto3" json:"create_cache_path,omitempty"` // contains filtered or unexported fields }
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]
func (*FileSystemHttpCacheConfig) Descriptor
deprecated
func (*FileSystemHttpCacheConfig) Descriptor() ([]byte, []int)
Deprecated: Use FileSystemHttpCacheConfig.ProtoReflect.Descriptor instead.
func (*FileSystemHttpCacheConfig) GetCachePath ¶
func (x *FileSystemHttpCacheConfig) GetCachePath() string
func (*FileSystemHttpCacheConfig) GetCacheSubdivisions ¶
func (x *FileSystemHttpCacheConfig) GetCacheSubdivisions() uint32
func (*FileSystemHttpCacheConfig) GetCreateCachePath ¶
func (x *FileSystemHttpCacheConfig) GetCreateCachePath() bool
func (*FileSystemHttpCacheConfig) GetEvictFraction ¶
func (x *FileSystemHttpCacheConfig) GetEvictFraction() float32
func (*FileSystemHttpCacheConfig) GetManagerConfig ¶
func (x *FileSystemHttpCacheConfig) GetManagerConfig() *v3.AsyncFileManagerConfig
func (*FileSystemHttpCacheConfig) GetMaxCacheEntryCount ¶
func (x *FileSystemHttpCacheConfig) GetMaxCacheEntryCount() *wrappers.UInt64Value
func (*FileSystemHttpCacheConfig) GetMaxCacheSizeBytes ¶
func (x *FileSystemHttpCacheConfig) GetMaxCacheSizeBytes() *wrappers.UInt64Value
func (*FileSystemHttpCacheConfig) GetMaxEvictionPeriod ¶
func (x *FileSystemHttpCacheConfig) GetMaxEvictionPeriod() *duration.Duration
func (*FileSystemHttpCacheConfig) GetMaxIndividualCacheEntrySizeBytes ¶
func (x *FileSystemHttpCacheConfig) GetMaxIndividualCacheEntrySizeBytes() *wrappers.UInt64Value
func (*FileSystemHttpCacheConfig) GetMinEvictionPeriod ¶
func (x *FileSystemHttpCacheConfig) GetMinEvictionPeriod() *duration.Duration
func (*FileSystemHttpCacheConfig) ProtoMessage ¶
func (*FileSystemHttpCacheConfig) ProtoMessage()
func (*FileSystemHttpCacheConfig) ProtoReflect ¶
func (x *FileSystemHttpCacheConfig) ProtoReflect() protoreflect.Message
func (*FileSystemHttpCacheConfig) Reset ¶
func (x *FileSystemHttpCacheConfig) Reset()
func (*FileSystemHttpCacheConfig) String ¶
func (x *FileSystemHttpCacheConfig) String() string
func (*FileSystemHttpCacheConfig) Validate ¶
func (m *FileSystemHttpCacheConfig) Validate() error
Validate checks the field values on FileSystemHttpCacheConfig with the rules defined in the proto definition for this message. If any rules are violated, the first error encountered is returned, or nil if there are no violations.
func (*FileSystemHttpCacheConfig) ValidateAll ¶
func (m *FileSystemHttpCacheConfig) ValidateAll() error
ValidateAll checks the field values on FileSystemHttpCacheConfig with the rules defined in the proto definition for this message. If any rules are violated, the result is a list of violation errors wrapped in FileSystemHttpCacheConfigMultiError, or nil if none found.
type FileSystemHttpCacheConfigMultiError ¶
type FileSystemHttpCacheConfigMultiError []error
FileSystemHttpCacheConfigMultiError is an error wrapping multiple validation errors returned by FileSystemHttpCacheConfig.ValidateAll() if the designated constraints aren't met.
func (FileSystemHttpCacheConfigMultiError) AllErrors ¶
func (m FileSystemHttpCacheConfigMultiError) AllErrors() []error
AllErrors returns a list of validation violation errors.
func (FileSystemHttpCacheConfigMultiError) Error ¶
func (m FileSystemHttpCacheConfigMultiError) Error() string
Error returns a concatenation of all the error messages it wraps.
type FileSystemHttpCacheConfigValidationError ¶
type FileSystemHttpCacheConfigValidationError struct {
// contains filtered or unexported fields
}
FileSystemHttpCacheConfigValidationError is the validation error returned by FileSystemHttpCacheConfig.Validate if the designated constraints aren't met.
func (FileSystemHttpCacheConfigValidationError) Cause ¶
func (e FileSystemHttpCacheConfigValidationError) Cause() error
Cause function returns cause value.
func (FileSystemHttpCacheConfigValidationError) Error ¶
func (e FileSystemHttpCacheConfigValidationError) Error() string
Error satisfies the builtin error interface
func (FileSystemHttpCacheConfigValidationError) ErrorName ¶
func (e FileSystemHttpCacheConfigValidationError) ErrorName() string
ErrorName returns error name.
func (FileSystemHttpCacheConfigValidationError) Field ¶
func (e FileSystemHttpCacheConfigValidationError) Field() string
Field function returns field value.
func (FileSystemHttpCacheConfigValidationError) Key ¶
func (e FileSystemHttpCacheConfigValidationError) Key() bool
Key function returns key value.
func (FileSystemHttpCacheConfigValidationError) Reason ¶
func (e FileSystemHttpCacheConfigValidationError) Reason() string
Reason function returns reason value.