diff options
author | Nasser Grainawi <nasser.grainawi@linaro.org> | 2023-11-16 09:49:55 -0700 |
---|---|---|
committer | Nasser Grainawi <nasser.grainawi@linaro.org> | 2023-11-17 17:13:01 -0700 |
commit | 4858d3daf77c3f8e9d8a12452289eb826af4deac (patch) | |
tree | b8d6d541fe46753ceea8d4c4f2ab302f9634c01d | |
parent | 9193fa58f83446f35439c39786eaf354da9a190e (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.java | 2 | ||||
-rw-r--r-- | java/com/google/gerrit/server/cache/h2/H2CacheImpl.java | 11 |
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) { |