From f23f4e4940e44e67ff3fe94b23aa631544276118 Mon Sep 17 00:00:00 2001 From: Anatolii Popov Date: Mon, 5 Jan 2026 18:18:19 +0200 Subject: [PATCH] fix(cache): respect max-idle=-1 (disable idle eviction) --- .../io/aiven/inkless/cache/CaffeineCache.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/storage/inkless/src/main/java/io/aiven/inkless/cache/CaffeineCache.java b/storage/inkless/src/main/java/io/aiven/inkless/cache/CaffeineCache.java index e1c61c47fc..3e35d4c1c9 100644 --- a/storage/inkless/src/main/java/io/aiven/inkless/cache/CaffeineCache.java +++ b/storage/inkless/src/main/java/io/aiven/inkless/cache/CaffeineCache.java @@ -46,12 +46,16 @@ public CaffeineCache( final long lifespanSeconds, final int maxIdleSeconds ) { - cache = Caffeine.newBuilder() - .maximumSize(maxCacheSize) - .expireAfterWrite(Duration.ofSeconds(lifespanSeconds)) - .expireAfterAccess(Duration.ofSeconds(maxIdleSeconds != -1 ? maxIdleSeconds: 180)) - .recordStats() - .buildAsync(); + final Caffeine builder = Caffeine.newBuilder() + .maximumSize(maxCacheSize) + .expireAfterWrite(Duration.ofSeconds(lifespanSeconds)); + // -1 means disabled (see InklessConfig.CONSUME_CACHE_EXPIRATION_MAX_IDLE_SEC_CONFIG doc) + if (maxIdleSeconds != -1) { + builder.expireAfterAccess(Duration.ofSeconds(maxIdleSeconds)); + } + cache = builder + .recordStats() + .buildAsync(); metrics = new CaffeineCacheMetrics(cache.synchronous()); }