)]}'
{
  "commit": "e30f2184aa84c7d0097b0476dc82b54bafbfe6a0",
  "tree": "50ffc28805e7f4d6087167e83ddff43ec1399576",
  "parents": [
    "dd52ea1e4465ba2183998667deb5ad87aabcde70"
  ],
  "author": {
    "name": "Adithya Chakilam",
    "email": "achakilam@nvidia.com",
    "time": "Tue May 12 17:14:12 2026 -0500"
  },
  "committer": {
    "name": "Adithya Chakilam",
    "email": "achakilam@nvidia.com",
    "time": "Sat Jun 06 22:49:55 2026 -0500"
  },
  "message": "H2Cache: Open persistent caches in parallel during startup\n\nEach persistent disk cache builds its BloomFilter on open by scanning\nevery key from its H2 database. With the single-threaded\nCacheStoreExecutor, caches are opened sequentially and cold startup time\ngrows linearly with the size of caches.\n\nIntroduce a cache.startupThreads option. When set above 1, cache opening\nruns on a dedicated DiskCache-Startup pool. This shortens the window in\nwhich the BloomFilter is not yet available, during which every cache\nmiss requires a full SQL SELECT against H2 instead of being rejected by\nthe BloomFilter in constant time.\n\nOn a procduction instance, using 5 threads, reduced the cache startup\ntime from ~70 minutes to ~22 minutes.\n\nRelease-Notes: persistent disk caches can be loaded in parallel during startup.\nChange-Id: I1e3b58d9cd62ae93352bf18f12e2595222e7abaf\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "42b4c10db358dc42471136f7b4f3c502f1a250c4",
      "old_mode": 33188,
      "old_path": "Documentation/config-gerrit.txt",
      "new_id": "d5b8fe819cb44a6105e8887d778dd30cc7267fbc",
      "new_mode": 33188,
      "new_path": "Documentation/config-gerrit.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "903173c7c1b30772c06c25782678069f8cc5eaf9",
      "new_mode": 33188,
      "new_path": "java/com/google/gerrit/server/cache/h2/CacheStoreStartupExecutor.java"
    },
    {
      "type": "modify",
      "old_id": "691c3c624139ba08cec89b5ca522c1eefaa025d5",
      "old_mode": 33188,
      "old_path": "java/com/google/gerrit/server/cache/h2/H2CacheFactory.java",
      "new_id": "a0534cade76079de5981ae95ca5d142b6240d424",
      "new_mode": 33188,
      "new_path": "java/com/google/gerrit/server/cache/h2/H2CacheFactory.java"
    },
    {
      "type": "modify",
      "old_id": "39afb3888cad6372b87d68c96715a2d9b037542e",
      "old_mode": 33188,
      "old_path": "java/com/google/gerrit/server/cache/h2/H2CacheImpl.java",
      "new_id": "7dada27c766cbdd90585d8cf1d567b7d4ba49823",
      "new_mode": 33188,
      "new_path": "java/com/google/gerrit/server/cache/h2/H2CacheImpl.java"
    },
    {
      "type": "modify",
      "old_id": "baf08e6199954ee9dadfc3c7c9e6e09a0e629336",
      "old_mode": 33188,
      "old_path": "java/com/google/gerrit/server/cache/h2/H2CacheModule.java",
      "new_id": "0ac8123f40b44558d9ea26573631cbfbf2f53827",
      "new_mode": 33188,
      "new_path": "java/com/google/gerrit/server/cache/h2/H2CacheModule.java"
    },
    {
      "type": "modify",
      "old_id": "fbd5890810da5d7d9c7fa551b73f4b3b323835bc",
      "old_mode": 33188,
      "old_path": "javatests/com/google/gerrit/server/cache/h2/H2CacheFactoryTest.java",
      "new_id": "9f55711027781081254e07910e7d073b23f40c75",
      "new_mode": 33188,
      "new_path": "javatests/com/google/gerrit/server/cache/h2/H2CacheFactoryTest.java"
    }
  ]
}
