Gentoo Archives: gentoo-dev

From: Ciaran McCreesh <ciaran.mccreesh@××××××××××.com>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Portage dependency solving algorithm
Date: Fri, 07 Nov 2014 19:21:19
Message-Id: 20141107192101.01262936@googlemail.com
In Reply to: Re: [gentoo-dev] Portage dependency solving algorithm by Matthias Maier
1 On Fri, 07 Nov 2014 19:54:08 +0100
2 Matthias Maier <tamiko@g.o> wrote:
3 > Currently, for portage just to decide that nothing has to be done on
4 > my machine takes around 1 minute.
5
6 Are you running with or without metadata cache? If you're running
7 without, it's going to be slow independently of the resolution
8 algorithm... If you're not:
9
10 > - Is our dependency model that more complex than the problem
11 > resolvers of other package managers for other distributions solve?
12
13 Yes, massively so.
14
15 > - Is it the algorithm that is implemented for the dependency model?
16
17 Also a contributing factor, for certain cases. You may see Portage doing
18 a lot of backtracking sometimes. There's a much better typical-case
19 algorithm for this.
20
21 > - Is it its implementation?
22
23 Also a factor.
24
25 The main issue, though, is that getting a "good" resolution out of
26 crappy data is extremely difficult. There's the Babbage quote:
27
28 | On two occasions I have been asked, — "Pray, Mr. Babbage, if you put
29 | into the machine wrong figures, will the right answers come out?" In
30 | one case a member of the Upper, and in the other a member of the
31 | Lower, House put this question. I am not able rightly to apprehend
32 | the kind of confusion of ideas that could provoke such a question.
33
34 Yet this is *exactly* what a dependency resolver has to do for Gentoo,
35 and it's why dependency resolvers are so complicated.
36
37 (For comparison, Paludis on Exherbo will run an order of magnitude
38 faster for the same set of installed packages, simply because on
39 Exherbo the input is correct.)
40
41 > > Well, you're not comparing like with like. Paludis with "everything
42 > > turned off" does more than Portage with "everything turned on". If
43 > > all you're looking for is the wrong answer as fast as possible,
44 > > there are easier ways of getting it...
45 >
46 > The last time I compared the resolver speed of portage and paludis
47 > both needed almost the same time.
48
49 To do different things, though. Portage doesn't have a "produce a
50 correct resolution" switch. Paludis doesn't (really) have a "produce an
51 illegal resolution" switch. (Again, assuming you have metadata cache.
52 If you don't, whole other story.)
53
54 --
55 Ciaran McCreesh

Attachments

File name MIME type
signature.asc application/pgp-signature

Replies

Subject Author
Re: [gentoo-dev] Portage dependency solving algorithm Jauhien Piatlicki <jauhien@g.o>
Re: [gentoo-dev] Portage dependency solving algorithm Matthias Maier <tamiko@g.o>
Re: [gentoo-dev] Portage dependency solving algorithm Andrew Savchenko <bircoph@×××××.com>