Cache data on available config updates

Created on 9 March 2021, almost 4 years ago
Updated 6 January 2025, 15 days ago

Problem/Motivation

The operation to generate data on available config updates is resource intensive and currently the results are not cached.

For example, this issue is particularly acute when reviewing diffs. The operation is very slow as the whole set of data needs to be recalculated each time.

Proposed resolution

Follow a caching strategy similar to that used for the core Update module, where the recalc can be manually triggered.

Remaining tasks

User interface changes

API changes

Data model changes

πŸ“Œ Task
Status

Active

Version

3.0

Component

Code

Created by

πŸ‡¨πŸ‡¦Canada nedjo

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

Not all content is available!

It's likely this issue predates Contrib.social: some issue and comment data are missing.

  • First commit to issue fork.
  • πŸ‡ΊπŸ‡ΈUnited States trackleft2 Tucson, AZ πŸ‡ΊπŸ‡Έ

    What do you propose we actually cache?

    In ConfigSyncLister, we could cache:

    Configuration Comparisons:
    Precomputed differences between active and target configurations (e.g., added, updated, deleted items).

    Changelists:
    Detailed lists of configuration changes, including metadata like labels, types, and dependencies.

    Extension Lists:
    Precomputed lists of extensions with configuration to synchronize.

    These items are computationally expensive but can be invalidated and recomputed as needed when the underlying data or context changes.

    I am not sure if we will be able to detect changes in order to invalidate the cache once we have it, but I could be missing something.

  • πŸ‡ΊπŸ‡ΈUnited States joegraduate Arizona, USA

    I like the idea of caching the config comparisons and changelists.

    I think we might just need to add a "refresh" button to the config distro form so make manual cache invalidation possible.

  • πŸ‡ΊπŸ‡ΈUnited States trackleft2 Tucson, AZ πŸ‡ΊπŸ‡Έ

    Do you think a custom cache bin is in order to do all of this, or do you recommend a specific cache bin? https://api.drupal.org/api/drupal/core%21core.api.php/group/cache/11.x

    The main concern I have about invalidating the cache is during automated processes, like site updates for example, how do we ensure the module continues to function the same way (not needing a cache rebuild before drush cd-update) and also cache the comparisons and lists.

  • πŸ‡ΊπŸ‡ΈUnited States joegraduate Arizona, USA
  • πŸ‡ΊπŸ‡ΈUnited States joegraduate Arizona, USA
Production build 0.71.5 2024