This is something that I realized when experimenting with the `--refresh` flag
for force updating repo metadata: in essence, currently the metadata is
*always* refreshed as DNF detects that the mtime of the repo configuration has
changed.

This means that, while the correctness is fine, there may potentially be a
performance issue. Currently, the repositories are quite small in size, so
practically speaking the impact shouldn't be that large (which is also why I
did not realize the issue until recently), but I thought I'd still bring it up
nonetheless.

A low hanging fruit to somewhat reduce the impact is to allow multiple spec
strings in `qubes.TemplateSearch`, reducing the number of calls. (Currently,
we're invoking the qrexec call for every package spec the user passes in.)

To actually utilize the DNF cache, it seems that the following has to be done:

1. Check if the repo configuration has been changed (and the last update time
   and `metadata_expire`) from the qvm-template side.
2. Invoke DNF with `--cacheonly` if we deem that the cache can be used.
3. Notably, DNF needs to be invoked with `sudo` as `--cacheonly` only uses the
   system cache and not user-specific ones.

Alternatively, a hackish way is to cache the hash and mtime of the repo config
on the updateVM side and override the mtime if the hash matches.

Again, this is probably not very high-priority; just pointing out that the
issue exists.

Thanks,
WillyPillow

> https://blog.nerde.pw/
>
> PGP fingerprint = 6CCF 3FC7 32AC 9D83 D154 217F 1C16 C70E E7C3 1C84
>
> Protonmail PGP = D02D CEFF ACE5 5A7B FF5D 871E 4004 1CB1 F52B 127E

-- 
You received this message because you are subscribed to the Google Groups 
"qubes-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/qubes-devel/reeKDMsBsF2FEmmSjGqt3Lf_yRWTrTyLpwr0tzc2FPfTVi0SxH6puejpmfYAs7PiWPt2ZNacjKG4x18YfVPQ5AisfmbO_G0nXRcGDXDQucM%3D%40nerde.pw.

Attachment: publickey - [email protected] - 0xD02DCEFF.asc
Description: application/pgp-keys

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to