all lists on lists.proxmox.com
 help / color / mirror / Atom feed
From: Lukas Wagner <l.wagner@proxmox.com>
To: pdm-devel@lists.proxmox.com
Subject: [PATCH datacenter-manager v2 0/4] add generic, per-remote (and global) cache for remote API responses
Date: Fri, 15 May 2026 10:28:51 +0200	[thread overview]
Message-ID: <20260515082855.85698-1-l.wagner@proxmox.com> (raw)

The main intention is to avoid a sprawl of different caching approaches by
establishing a simple, easy to use cache implementation that can be used to
persistently cache API responses from remotes (and derived aggregations).

The `namespaced_cache` module is pretty generic and can be moved to proxmox.git
(maybe in proxmox-shared-cache) once it has sufficiently stabilized.

Changes since the RFC:
  - change storage location to /run/proxmox-datacenter-manager/api-cache
  - change name of pdm_cache to api_cache
  - use freestanding functions in api_cache
  - add async interface
  - minor code style improments
  - improve test coverage and documentation
  - add basic sanity checks for namespaces and keys (e.g. prohibiting ../)
  - add cleanup code for the old remote-updates cachefile

Thanks to Dominik C. and Wolfgang for their reviews of the RFC, highly appreciated!

Changes since v1:
  - The only changes happened in the last two patches:
     - Improved behavior in case the cache entry could not be read,
       mostly to ensure a self-healing behavior
     - Slightly restructured code to avoid some clone calls
     - When requesting the list of updates for a single remote, update the
       global summary cache asynchronously


proxmox-datacenter-manager:

Lukas Wagner (4):
  add persistent, generic, namespaced key-value cache implementation
  add api_cache as a specialized wrapper around the namespaced cache
  api: resources: subscriptions: switch over to api_cache
  remote-updates: switch over to new api_cache

 Cargo.toml                                    |   1 +
 debian/control                                |   1 +
 server/Cargo.toml                             |   4 +
 server/src/api/pve/mod.rs                     |   4 +-
 server/src/api/remotes/updates.rs             |   6 +-
 server/src/api/resources.rs                   |  84 +-
 server/src/api_cache.rs                       | 126 +++
 .../bin/proxmox-datacenter-privileged-api.rs  |   9 +-
 server/src/lib.rs                             |   2 +
 server/src/namespaced_cache.rs                | 742 ++++++++++++++++++
 server/src/remote_updates.rs                  | 120 +--
 11 files changed, 994 insertions(+), 105 deletions(-)
 create mode 100644 server/src/api_cache.rs
 create mode 100644 server/src/namespaced_cache.rs


Summary over all repositories:
  11 files changed, 994 insertions(+), 105 deletions(-)

-- 
Generated by murpp 0.12.0




             reply	other threads:[~2026-05-15  8:29 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-15  8:28 Lukas Wagner [this message]
2026-05-15  8:28 ` [PATCH datacenter-manager v2 1/4] add persistent, generic, namespaced key-value cache implementation Lukas Wagner
2026-05-15  8:28 ` [PATCH datacenter-manager v2 2/4] add api_cache as a specialized wrapper around the namespaced cache Lukas Wagner
2026-05-15  8:28 ` [PATCH datacenter-manager v2 3/4] api: resources: subscriptions: switch over to api_cache Lukas Wagner
2026-05-15  8:28 ` [PATCH datacenter-manager v2 4/4] remote-updates: switch over to new api_cache Lukas Wagner
2026-05-15  9:31 ` [PATCH datacenter-manager v2 0/4] add generic, per-remote (and global) cache for remote API responses Thomas Lamprecht
2026-05-15 14:50 ` superseded: " Lukas Wagner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260515082855.85698-1-l.wagner@proxmox.com \
    --to=l.wagner@proxmox.com \
    --cc=pdm-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal