)]}'
{
  "commit": "6a90f9fd5f2f620affcd9116cd148fcfd5fffcf6",
  "tree": "9eb0cf6d8aed7cfcde391aeed394f2d24f187c4b",
  "parents": [
    "c0ccaf143d12d1000443217f5d9a2efdaa3e849f"
  ],
  "author": {
    "name": "Luca Milanesio",
    "email": "luca.milanesio@gmail.com",
    "time": "Thu Sep 16 21:04:17 2021 +0100"
  },
  "committer": {
    "name": "Luca Milanesio",
    "email": "luca.milanesio@gmail.com",
    "time": "Fri Oct 01 00:13:10 2021 +0100"
  },
  "message": "Front CacheChronicleMap with a Guava cache\n\nThe initial implementation of persistent caches using\nChronicleMap did not use any Guava cache front-end, relying\non the speed of accessing data on disk and memory.\n\nUnfortunately, the deserialisation of some entities\n(e.g. change_notes) is very expensive in terms of CPU\nand ChronicleMap does not store the binary objects as-is\nbut relies on in-memory serialisation of keys and values.\nThere are two problems caused by this:\n- delay in reading the cache from memory\n- high system load when accessing the cache\n\nUse the same structure of the H2 persistent cache where\nthe loader is delegated to the retrieval and deserialisation\nof the entities from ChronicleMap.\n\nAmend the cache statistics and return the in-memory elements\nand the ones stored on disk as separate values.\n\nBug: Issue 15036\nChange-Id: I8dd602c20fcd621972b562fc2163fefc7240484a\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "612cb3d1f0c873f4ce869026949801e025b53e22",
      "old_mode": 33188,
      "old_path": "BUILD",
      "new_id": "1f813d46cadd2c3f6823abe87cd29e1644aa814c",
      "new_mode": 33188,
      "new_path": "BUILD"
    },
    {
      "type": "modify",
      "old_id": "d10ffc81ad18e0058dcdc185e592715cbac00305",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/modules/cache/chroniclemap/AutoAdjustCaches.java",
      "new_id": "4298a810093472e1bd94d242d894c16db828aa53",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/modules/cache/chroniclemap/AutoAdjustCaches.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3bbb9a858b1085b9c254bbbda1e3ff1c33bd1c59",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/modules/cache/chroniclemap/ChronicleMapCacheDefProxy.java"
    },
    {
      "type": "modify",
      "old_id": "33fdd1b4782d849ef432bd3317661087c17eb6c1",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/modules/cache/chroniclemap/ChronicleMapCacheFactory.java",
      "new_id": "58e2ff5dc7e2ce2bf5e051f558c14717a0e11179",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/modules/cache/chroniclemap/ChronicleMapCacheFactory.java"
    },
    {
      "type": "modify",
      "old_id": "77d38872fedf0c0f62182a7c2eddc09dd1f594ca",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/modules/cache/chroniclemap/ChronicleMapCacheImpl.java",
      "new_id": "af35c88a3f553922d28c7e9961726ed2b1cd74d5",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/modules/cache/chroniclemap/ChronicleMapCacheImpl.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1da32577383021b46ca6a9a4104a59f21d83caf5",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/modules/cache/chroniclemap/ChronicleMapCacheLoader.java"
    },
    {
      "type": "modify",
      "old_id": "f35f0ee0b4498cb6c1c5d6704eaee82bffe81b59",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/modules/cache/chroniclemap/H2MigrationServlet.java",
      "new_id": "f96786d3d261027996abdad908945afde37f501d",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/modules/cache/chroniclemap/H2MigrationServlet.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d1601f8b81080ab586bba49a78e4f91f0fb34181",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/modules/cache/chroniclemap/InMemoryCache.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "96b75da56096c01efb706b5484f3cdb694b5092f",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/modules/cache/chroniclemap/InMemoryCacheLoadingFromStoreImpl.java"
    },
    {
      "type": "modify",
      "old_id": "6f53dea8b833e05d632cb851163406ce48ffb5ae",
      "old_mode": 33188,
      "old_path": "src/test/java/com/googlesource/gerrit/modules/cache/chroniclemap/ChronicleMapCacheIT.java",
      "new_id": "444762b3c1905e54bf7588dee764c65b78bb3c7d",
      "new_mode": 33188,
      "new_path": "src/test/java/com/googlesource/gerrit/modules/cache/chroniclemap/ChronicleMapCacheIT.java"
    },
    {
      "type": "modify",
      "old_id": "739c688cf32746d7ea0e6c3ca4fdffe7eddca42f",
      "old_mode": 33188,
      "old_path": "src/test/java/com/googlesource/gerrit/modules/cache/chroniclemap/ChronicleMapCacheTest.java",
      "new_id": "91ddbe3d8c809ad72a3b41d1ef18a5cd3f50a23b",
      "new_mode": 33188,
      "new_path": "src/test/java/com/googlesource/gerrit/modules/cache/chroniclemap/ChronicleMapCacheTest.java"
    },
    {
      "type": "modify",
      "old_id": "360f4cdcff771e0e0457b191d185c9ac641f8d98",
      "old_mode": 33188,
      "old_path": "src/test/java/com/googlesource/gerrit/modules/cache/chroniclemap/MigrateH2CachesLocalDiskIT.java",
      "new_id": "77ae477e1d49f1ff654d69da16dde50dd4a3b840",
      "new_mode": 33188,
      "new_path": "src/test/java/com/googlesource/gerrit/modules/cache/chroniclemap/MigrateH2CachesLocalDiskIT.java"
    },
    {
      "type": "modify",
      "old_id": "0e52f1d3ac0373662e533d7d0914dcd30f586b8c",
      "old_mode": 33188,
      "old_path": "src/test/java/com/googlesource/gerrit/modules/cache/chroniclemap/TestPersistentCacheDef.java",
      "new_id": "1ebb9e30e3a48977182b9850913d71595201119c",
      "new_mode": 33188,
      "new_path": "src/test/java/com/googlesource/gerrit/modules/cache/chroniclemap/TestPersistentCacheDef.java"
    }
  ]
}
