v0.24.7
This commit is contained in:
1 parent
5e23e9af02
commit
3883a21bc4
56 files changed
+1640
-403
No files matched your search
+36
-1
@@ -83,8 +83,23 @@ enum CacheInvalidation {
|
||||
/// Keeping it stable across logging/TLS/admin saves lets the persistent cold
|
||||
/// tier survive a restart after unrelated control-plane edits.
|
||||
fn cache_revision(config: &config::Config) -> u64 {
|
||||
// Preset fields are UI intent metadata. Persist them, but do not rotate the
|
||||
// cache compatibility identity (and purge HOT/COLD) when only the label
|
||||
// changes while the effective cache limits stay identical.
|
||||
let mut cache = config.cache.clone();
|
||||
cache.memory_preset = None;
|
||||
cache.cold_preset = None;
|
||||
// Resource-only transform controls decide how much optimization work may
|
||||
// happen concurrently, but do not change the transformed representation.
|
||||
// Keep those out of the cache identity while including representation and
|
||||
// eligibility controls such as enabled kinds, extensions and max body.
|
||||
let mut transform = config.transform.clone();
|
||||
transform.preset = None;
|
||||
transform.memory_budget_bytes = 0;
|
||||
transform.max_inflight = 0;
|
||||
let encoded = serde_json::to_vec(&(
|
||||
&config.cache,
|
||||
&cache,
|
||||
&transform,
|
||||
&config.headers,
|
||||
&config.forwarding,
|
||||
&config.vhosts,
|
||||
@@ -605,6 +620,26 @@ mod cache_revision_tests {
|
||||
});
|
||||
assert_eq!(cache_revision(&docker), identity);
|
||||
|
||||
let mut preset = base.clone();
|
||||
preset.cache.memory_preset = Some(crate::cache::MemoryPreset::Recommended);
|
||||
preset.cache.cold_preset = Some(crate::cache::ColdPreset::Recommended);
|
||||
preset.transform.preset = Some(crate::transform::Preset::Uber);
|
||||
preset.transform.memory_budget_bytes = 1024 * 1024 * 1024;
|
||||
preset.transform.max_inflight = 128;
|
||||
assert_eq!(cache_revision(&preset), identity);
|
||||
assert!(matches!(
|
||||
cache_invalidation(&base, &preset),
|
||||
CacheInvalidation::None
|
||||
));
|
||||
|
||||
let mut transform_policy = base.clone();
|
||||
transform_policy.transform.json = !transform_policy.transform.json;
|
||||
assert_ne!(cache_revision(&transform_policy), identity);
|
||||
|
||||
let mut transform_body_limit = base.clone();
|
||||
transform_body_limit.transform.max_body_bytes += 1024;
|
||||
assert_ne!(cache_revision(&transform_body_limit), identity);
|
||||
|
||||
let mut cache = base.clone();
|
||||
cache.cache.max_entries += 1;
|
||||
let cache_identity = cache_revision(&cache);
|
||||
|
||||
Reference in new issue
Block a user