summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNasser Grainawi <nasser.grainawi@linaro.org>2023-11-16 09:49:55 -0700
committerNasser Grainawi <nasser.grainawi@linaro.org>2023-11-17 17:13:01 -0700
commit4858d3daf77c3f8e9d8a12452289eb826af4deac (patch)
treeb8d6d541fe46753ceea8d4c4f2ab302f9634c01d
parent9193fa58f83446f35439c39786eaf354da9a190e (diff)
H2CacheImpl: Log when disk cache pruning runs
It can be helpful for admins to see when disk cache pruning is running and what work it's doing. Change-Id: I7802387b71f03029f246385080e4b976b7972359 Release-Notes: skip
-rw-r--r--java/com/google/gerrit/server/cache/CacheInfo.java2
-rw-r--r--java/com/google/gerrit/server/cache/h2/H2CacheImpl.java11
2 files changed, 12 insertions, 1 deletions
diff --git a/java/com/google/gerrit/server/cache/CacheInfo.java b/java/com/google/gerrit/server/cache/CacheInfo.java
index d6eb065339..832ca047f3 100644
--- a/java/com/google/gerrit/server/cache/CacheInfo.java
+++ b/java/com/google/gerrit/server/cache/CacheInfo.java
@@ -90,7 +90,7 @@ public class CacheInfo {
space = bytes(value);
}
- private static String bytes(double value) {
+ public static String bytes(double value) {
value /= 1024;
String suffix = "k";
diff --git a/java/com/google/gerrit/server/cache/h2/H2CacheImpl.java b/java/com/google/gerrit/server/cache/h2/H2CacheImpl.java
index d5e5c7f739..f2f984315c 100644
--- a/java/com/google/gerrit/server/cache/h2/H2CacheImpl.java
+++ b/java/com/google/gerrit/server/cache/h2/H2CacheImpl.java
@@ -28,6 +28,7 @@ import com.google.common.util.concurrent.FutureCallback;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
import com.google.gerrit.common.Nullable;
+import com.google.gerrit.server.cache.CacheInfo;
import com.google.gerrit.server.cache.PersistentCache;
import com.google.gerrit.server.cache.serialize.CacheSerializer;
import com.google.gerrit.server.logging.Metadata;
@@ -660,12 +661,19 @@ public class H2CacheImpl<K, V> extends AbstractLoadingCache<K, V> implements Per
try (ResultSet r = s.executeQuery("SELECT SUM(space) FROM data")) {
used = r.next() ? r.getLong(1) : 0;
}
+ String formattedMaxSize = CacheInfo.EntriesInfo.bytes(maxSize);
if (used <= maxSize) {
+ logger.atInfo().log(
+ "Cache %s size (%s) is less than maxSize (%s), not pruning",
+ url, CacheInfo.EntriesInfo.bytes(used), formattedMaxSize);
return;
}
try (ResultSet r =
s.executeQuery("SELECT k, space, created FROM data ORDER BY accessed")) {
+ logger.atInfo().log(
+ "Cache %s size (%s) is greater than maxSize (%s), pruning",
+ url, CacheInfo.EntriesInfo.bytes(used), formattedMaxSize);
while (maxSize < used && r.next()) {
K key = keyType.get(r, 1);
Timestamp created = r.getTimestamp(3);
@@ -676,6 +684,9 @@ public class H2CacheImpl<K, V> extends AbstractLoadingCache<K, V> implements Per
used -= r.getLong(2);
}
}
+ logger.atInfo().log(
+ "Done pruning cache %s, size (%s) is now less than maxSize (%s)",
+ url, CacheInfo.EntriesInfo.bytes(used), formattedMaxSize);
}
}
} catch (IOException | SQLException e) {