Initial version of evict-cache plugin

This plugin allows to synchronize the eviction of caches between two
Gerrit instances sharing the same repositories and database.

The plugin needs to be installed in both instances and every time a
cache eviction occurs in one of the instances, the other instance's
cache is updated. This way, both caches are kept synchronized.

Synchronized caches are:
  - accounts
  - accounts_byemail
  - accounts_byname
  - adv_bases
  - groups
  - groups_byinclude
  - groups_byname
  - groups_byuuid
  - groups_external
  - groups_members
  - ldap_groups
  - ldap_usernames
  - project_list
  - projects
  - sshkeys
  - web_sessions

Other caches are not synchronized because their cached objects are
immutable.

Change-Id: I4f5c1dc5c705854ae6af798f392c681078355a6c
35 files changed
tree: 88b43ac2db9d9255904bb3a9391bc1ffa0e10154
  1. .buckconfig
  2. .gitignore
  3. BUCK
  4. lib/
  5. src/