Merge branch 'stable-3.6' * stable-3.6: Provide default configuration for Gerrit persistent caches Introduce metric for caches that fall back to default config Add test that detects persistent caches without defaults Remove metrics when cache gets closed Use static, per-thread buffers for (de)serialization Add read/write metrics to TimedValueMarshaller ChronicleMapCacheIT: remove Truth8 qualifier from assertThat *Marshaller: get CacheSerilizer only once Persist caches keys index at configurable pace Add restore/persist operations related metrics Persist cache keys index to a file Add cache keys index metrics Avoid full cache scanning for pruning Change-Id: Ia4e5a3c513f2c3a17a92bbded6b77811cd04415c
diff --git a/external_plugin_deps.bzl b/external_plugin_deps.bzl index 90174bc..38814dc 100644 --- a/external_plugin_deps.bzl +++ b/external_plugin_deps.bzl
@@ -1,48 +1,48 @@ load("//tools/bzl:maven_jar.bzl", "maven_jar") # Ensure artifacts compatibility by selecting them from the Bill Of Materials -# https://search.maven.org/artifact/net.openhft/chronicle-bom/2.20.191/pom +# https://search.maven.org/artifact/net.openhft/chronicle-bom/2.22.150/pom def external_plugin_deps(): maven_jar( name = "chronicle-map", - artifact = "net.openhft:chronicle-map:3.20.84", - sha1 = "a4549f64d41e7f379d48cfee432f210c0ed563e1", + artifact = "net.openhft:chronicle-map:3.22.8", + sha1 = "8fcedc5fdefb925fb9f5d955bc0998d6adb973b2", ) maven_jar( name = "chronicle-core", - artifact = "net.openhft:chronicle-core:2.20.122", - sha1 = "aa9dcde008938f5c845b98a6b8f74b25a4689c7c", + artifact = "net.openhft:chronicle-core:2.22.34", + sha1 = "c8832c23dd3524838bce9b699fb5db396a5ea1b5", ) maven_jar( name = "chronicle-wire", - artifact = "net.openhft:chronicle-wire:2.20.111", - sha1 = "4002820daefe5694ecd73b640afd26fa32534959", + artifact = "net.openhft:chronicle-wire:2.22.21", + sha1 = "181187a617c8cee763a930e666b0406f0f48ddb9", ) maven_jar( name = "chronicle-bytes", - artifact = "net.openhft:chronicle-bytes:2.20.106", - sha1 = "6e4c01ea06ec005ca79ee694efa0a90634b6169e", + artifact = "net.openhft:chronicle-bytes:2.22.24", + sha1 = "0869cc065566e2072c07d6afeff0e9e04ebb8bb8", ) maven_jar( name = "chronicle-algo", - artifact = "net.openhft:chronicle-algorithms:2.20.80", - sha1 = "60b86a584d272aae6b7a80f6c7859c689a7199be", + artifact = "net.openhft:chronicle-algorithms:2.22.3", + sha1 = "046a64262fa2ded35160e4ae36a3b7cdb6bd2e04", ) maven_jar( name = "chronicle-values", - artifact = "net.openhft:chronicle-values:2.20.80", - sha1 = "2cd2bceaa3f0bcdd4470311c05daafbc188b57e2", + artifact = "net.openhft:chronicle-values:2.22.2", + sha1 = "cce7f3d9b7c7f5d87b4d1bfd9a4b8183b598637d", ) maven_jar( name = "chronicle-threads", - artifact = "net.openhft:chronicle-threads:2.20.104", - sha1 = "53295d10b1eb63c1f6bb1a8a58e6889567ae6355", + artifact = "net.openhft:chronicle-threads:2.22.15", + sha1 = "f475b5a414c8010d187e6f1e4570fa566dbc0067", ) maven_jar( @@ -53,12 +53,13 @@ maven_jar( name = "jna-platform", - artifact = "net.java.dev.jna:jna-platform:5.6.0", - sha1 = "d18424ffb8bbfd036d71bcaab9b546858f2ef986", + artifact = "net.java.dev.jna:jna-platform:5.12.1", + sha1 = "097406a297c852f4a41e688a176ec675f72e8329", ) maven_jar( name = "dev-jna", - artifact = "net.java.dev.jna:jna:5.6.0", - sha1 = "330f2244e9030119ab3030fc3fededc86713d9cc", + artifact = "net.java.dev.jna:jna:5.12.1", + sha1 = "b1e93a735caea94f503e95e6fe79bf9cdc1e985d", ) +
diff --git a/src/main/java/com/googlesource/gerrit/modules/cache/chroniclemap/H2MigrationServlet.java b/src/main/java/com/googlesource/gerrit/modules/cache/chroniclemap/H2MigrationServlet.java index 287fe72..58a34e1 100644 --- a/src/main/java/com/googlesource/gerrit/modules/cache/chroniclemap/H2MigrationServlet.java +++ b/src/main/java/com/googlesource/gerrit/modules/cache/chroniclemap/H2MigrationServlet.java
@@ -171,8 +171,8 @@ } logger.atInfo().log("Migrating H2 caches to Chronicle-Map..."); - logger.atInfo().log("* Size multiplier: " + sizeMultiplier); - logger.atInfo().log("* Max Bloat Factor: " + maxBloatFactor); + logger.atInfo().log("* Size multiplier: %s", sizeMultiplier); + logger.atInfo().log("* Max Bloat Factor: %s", maxBloatFactor); Config outputChronicleMapConfig = new Config(); @@ -332,7 +332,7 @@ } catch (Exception e) { String message = String.format("FATAL: error migrating %s H2 cache", in.name()); - logger.atSevere().withCause(e).log(message); + logger.atSevere().withCause(e).log("%s", message); throw RestApiException.wrap(message, e); } }
diff --git a/src/test/java/com/googlesource/gerrit/modules/cache/chroniclemap/ChronicleMapCacheTest.java b/src/test/java/com/googlesource/gerrit/modules/cache/chroniclemap/ChronicleMapCacheTest.java index ab6ee14..480b654 100644 --- a/src/test/java/com/googlesource/gerrit/modules/cache/chroniclemap/ChronicleMapCacheTest.java +++ b/src/test/java/com/googlesource/gerrit/modules/cache/chroniclemap/ChronicleMapCacheTest.java
@@ -345,9 +345,10 @@ @Test public void shouldEvictEntriesUntilFreeSpaceIsRecovered() throws Exception { final int uuidSize = valueSize(UUID.randomUUID().toString()); - gerritConfig.setInt("cache", "foo", "maxEntries", 50); - gerritConfig.setInt("cache", "foo", "avgKeySize", uuidSize); - gerritConfig.setInt("cache", "foo", "avgValueSize", uuidSize); + gerritConfig.setInt("cache", testCacheName, "maxEntries", 50); + gerritConfig.setInt("cache", testCacheName, "percentageHotKeys", 10); + gerritConfig.setInt("cache", testCacheName, "avgKeySize", uuidSize); + gerritConfig.setInt("cache", testCacheName, "avgValueSize", uuidSize); gerritConfig.save(); ChronicleMapCacheImpl<String, String> cache = newCacheWithLoader();