From 1c7d8a643b59d55ce7e0075e33212ee98d0b2318 Mon Sep 17 00:00:00 2001 From: Shane K Moore <41407272+shane-moore@users.noreply.github.com> Date: Tue, 6 May 2025 00:38:41 -0700 Subject: [PATCH] fix: eth cache memory usage (#16075) Co-authored-by: Matthias Seitz --- crates/rpc/rpc-eth-types/src/cache/multi_consumer.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/crates/rpc/rpc-eth-types/src/cache/multi_consumer.rs b/crates/rpc/rpc-eth-types/src/cache/multi_consumer.rs index 2f5a46125a..bae39c78f0 100644 --- a/crates/rpc/rpc-eth-types/src/cache/multi_consumer.rs +++ b/crates/rpc/rpc-eth-types/src/cache/multi_consumer.rs @@ -99,6 +99,14 @@ where V: InMemorySize, { let size = value.size(); + + if self.cache.limiter().is_over_the_limit(self.cache.len() + 1) { + if let Some((_, evicted)) = self.cache.pop_oldest() { + // update tracked memory with the evicted value + self.memory_usage = self.memory_usage.saturating_sub(evicted.size()); + } + } + if self.cache.insert(key, value) { self.memory_usage = self.memory_usage.saturating_add(size); true