Use class level @UseLocalDisk annotation

Repeated usage of @UseLocalDisk causes the sandboxing of the tests,
which in turn starts and stops gerrit instances, consuming more memory
and potentially leading to OOM as identified by [1].

Use a class level @UseLocalDisk annotation to avoid such behavior.

Using  @UseLocalDisk however irrevocably set the cache.directory in
configuration, without possibility to override it via a
@GerritConfiguration annotation. For this reason, H2MigrationIT tests
have been split into two suites, one that runs tests that require local
disk (and cache.directory set) and one that runs tests that do not
require so.

[1] https://bugs.chromium.org/p/gerrit/issues/detail?id=14678

Bug: Issue 14687
Change-Id: I6692438895035501cedb5b383b0c7e022840df70
3 files changed
tree: 9e441fadf8d6837dacabba278616961a79e602f8
  1. src/
  2. .gitignore
  3. BUILD
  4. external_plugin_deps.bzl
  5. Jenkinsfile
  6. LICENSE
  7. README.md
README.md

Persistent cache for Gerrit, based on ChronicleMap

Non-blocking and super-fast on-disk cache libModule for Gerrit Code Review based on ChronicleMap on-disk implementation.

How to build

This libModule is built like a Gerrit in-tree plugin, using Bazelisk. See the build instructions for more details.

Setup

  • Install cache-chronicalmap module

Install the chronicle-map module into the $GERRIT_SITE/lib directory.

Add the cache-chroniclemap module to $GERRIT_SITE/etc/gerrit.config as follows:

[gerrit]
  installModule = com.googlesource.gerrit.modules.cache.chroniclemap.ChronicleMapCacheModule

For further information and supported options, refer to config documentation.

Migration from H2 caches

You can check how to migrate from H2 to chronicle-map here.