[Rpm-maint] Patch: faster dependency solving

Panu Matilainen pmatilai at laiskiainen.org
Tue Aug 12 13:04:23 UTC 2014


On 08/06/2014 03:01 PM, Michael Schroeder wrote:
>
> Hi Panu et al,

Hi, back from vacation...

>
> attached are two patches to make dependency solving faster/more correct.
> The first one switches the "installed file conflicts" cache from
> complete file names to base names, to make fingerprinting work for them.
>
> The second one is the more interesing one, it adds a "installed file
> requires" cache. This cache is only created at the start of
> rpmtsCheck(), so it is most useful for big transactions. It is used
> to prune the filelist of the erased packages.
>
> Some numbers from my system:
>
> $ rpm -ql ddd | wc -l
> 51
> $ rpm -ql kernel-source | wc -l
> 31128
>
> With cold caches:
>    - erase ddd
>      complete dependency check: 27ms
>    - erase ddd with requires cache
>      cache creation: 16ms, complete dependency check: 30ms
>
>    - erase kernel-source
>      complete dependency check: 72ms
>    - erase kernel-source with requires cache
>      cache creation: 16ms, complete dependency check: 33ms
>
> With hot caches:
>    - erase ddd
>      complete dependency check: 0ms
>    - erase ddd with requires cache
>      cache creation: 2ms, complete dependency check: 2ms
>
>    - erase kernel-source
>      complete dependency check: 44ms
>    - erase kernel-source with requires cache
>      cache creation: 2ms, complete dependency check: 8ms
>
> So it's a very little bit slower for small packages, but helps a
> lot for big packages or big transactions.

Cool. Both applied, thanks!

	- Panu -



More information about the Rpm-maint mailing list