From 7471e20850e6bfd4f555df28be1aed3cfaea8420 Mon Sep 17 00:00:00 2001
From: Jorge Esteban Quilcate Otoya
Date: Thu, 20 Nov 2025 14:12:49 +0200
Subject: [PATCH 1/4] refactor(inkless): reuse storage metrics instance on
cache
Instead of creating yet another metrics instance, reuse the storage
metrics instance used by storage layer, as caching is a related module.
This will change the metric name prefix from:
`io.aiven.inkless.cache.caffeine` to `io.aiven.inkless.storage`
---
.../io/aiven/inkless/cache/CaffeineCache.java | 31 +++++-----
.../inkless/cache/CaffeineCacheMetrics.java | 28 +--------
.../cache/CaffeineCacheMetricsRegistry.java | 1 -
.../io/aiven/inkless/common/SharedState.java | 21 ++++---
.../delete/DeleteRecordsInterceptorTest.java | 57 ++++++++++---------
.../inkless/produce/AppendHandlerTest.java | 39 ++++++++-----
6 files changed, 87 insertions(+), 90 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 78ed51100dc..c9ef26f7ced 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
@@ -1,5 +1,7 @@
package io.aiven.inkless.cache;
+import org.apache.kafka.common.metrics.Metrics;
+
import com.github.benmanes.caffeine.cache.AsyncCache;
import com.github.benmanes.caffeine.cache.Caffeine;
import com.github.benmanes.caffeine.cache.stats.CacheStats;
@@ -21,32 +23,33 @@ public final class CaffeineCache implements ObjectCache {
*/
private final AsyncCache cache;
- private final CaffeineCacheMetrics metrics;
-
public CaffeineCache(
final long maxCacheSize,
final long lifespanSeconds,
- final int maxIdleSeconds) {
- cache = Caffeine.newBuilder()
- .maximumSize(maxCacheSize)
- .expireAfterWrite(Duration.ofSeconds(lifespanSeconds))
- .expireAfterAccess(Duration.ofSeconds(maxIdleSeconds != -1 ? maxIdleSeconds: 180))
- .recordStats()
- .buildAsync();
- metrics = new CaffeineCacheMetrics(cache.synchronous());
+ final int maxIdleSeconds,
+ final Metrics storageMetrics
+ ) {
+ final Caffeine