diff --git a/pageserver/src/http/routes.rs b/pageserver/src/http/routes.rs index be2d785c53..e0f09134ff 100644 --- a/pageserver/src/http/routes.rs +++ b/pageserver/src/http/routes.rs @@ -1203,7 +1203,7 @@ async fn handle_tenant_break(r: Request) -> Result, ApiErro async fn disk_usage_eviction_run(mut r: Request) -> Result, ApiError> { check_permission(&r, None)?; - #[derive(serde::Deserialize)] + #[derive(Debug, Clone, Copy, serde::Serialize, serde::Deserialize)] struct Config { /// How many bytes to evict before reporting that pressure is relieved. evict_bytes: u64, @@ -1211,13 +1211,15 @@ async fn disk_usage_eviction_run(mut r: Request) -> Result, #[derive(Debug, Clone, Copy, serde::Serialize)] struct Usage { - evict_bytes: u64, + // remains unchanged after instantiation of the struct + config: Config, + // updated by `add_available_bytes` freed_bytes: u64, } impl crate::disk_usage_eviction_task::Usage for Usage { fn has_pressure(&self) -> bool { - self.evict_bytes > self.freed_bytes + self.config.evict_bytes > self.freed_bytes } fn add_available_bytes(&mut self, bytes: u64) { @@ -1230,7 +1232,7 @@ async fn disk_usage_eviction_run(mut r: Request) -> Result, .map_err(|_| ApiError::BadRequest(anyhow::anyhow!("invalid JSON body")))?; let usage = Usage { - evict_bytes: config.evict_bytes, + config, freed_bytes: 0, };