Bug 38103 - possible way to make dependency resolution in APT faster by preparsing EVRDT
Summary: possible way to make dependency resolution in APT faster by preparsing EVRDT
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: apt (show other bugs)
Version: unstable
Hardware: all Linux
: P5 enhancement
Assignee: Ivan Zakharyaschev
QA Contact: qa-sisyphus
Depends on:
Reported: 2020-02-17 04:11 MSK by Ivan Zakharyaschev
Modified: 2020-10-30 20:21 MSK (History)
6 users (show)

See Also:


Note You need to log in before you can comment on or make changes to this bug.
Description Ivan Zakharyaschev 2020-02-17 04:11:42 MSK

The APT's package cache could be made to store the version info of packages and of dependencies in preparsed form instead of strings (as now), namely, something like a union of a EVRDT structure or a parsed binary representation of set-versions.

(Then, the comparison functions from librpm which operate on such internal representations (i.e., already parsed) should be called.)

Then, I suppose, a bit more work would be done on cache generation (e.g., apt-get update), but less work in dependency resolution (e.g., during apt-get dist-upgrade).

In 0.5.15lorg2-alt65 and 0.5.15lorg2-alt68, we put some effort into making APT internally and all libapt's clients use a single comparison API as a blackbox (so that it's easy to change the algorithm only at one place in librpm). But the input data for it is ultimately stored as strings in the cache (and passed as strings between libapt and clients).