tree fb764b8d4393df775d017b2819f59ff2b47c052c
parent 69f0c5a445cfcd874d0289b282a6607c4c84a1b9
author Jacek Centkowski <geminica.programs@gmail.com> 1681563663 +0200
committer Jacek Centkowski <geminica.programs@gmail.com> 1685090855 +0200

Cache the OWNERS file's parsed content

The OWNERS file is rarely modified however it is being read and parsed
for every single change that gets evaluated. Introduce the cache (called
`owners-path_owners_entries`) that holds the PathOwnersEntry value for a
project, branch and path (typically `refs/meta/config`, development
branch and path). The path is especially important for projects with
deep directories structure (mono-repos) and cache size should be
carefully adjusted to adhere to it (1 dir level = 1 cache entry).

It gets invalidated when project's ref is updated.
As a result it reduces 2-3 times the configuration load latency which is
reflected in performance of prolog and submit requirements.

There are several constraints that influenced the implementation
* the `PathOwners` is a common class used by both owners and
  owners-autoassign plugins
* the `PathOwners`, in the owners plugin prolog's engine, is
  instantiated by the constructor call and injection is not possible
  there

The config.md was updated with the cache configuration.

Bug: Issue 16830
Change-Id: Ic7d61de07f3ec5169f0cf7c4ae8266351543e108
