Gentoo Archives: gentoo-portage-dev

From: Sebastian Luther <SebastianLuther@×××.de>
To: gentoo-portage-dev@l.g.o
Subject: [gentoo-portage-dev] Next steps to get rid of backtracking
Date: Thu, 27 Feb 2014 19:09:04
Message-Id: 1393528129-31216-1-git-send-email-SebastianLuther@gmx.de
1 Hi all,
2
3 this is the next step into getting rid of backtracking. This patch adds
4 a new function that allows _solve_non_slot_operator_slot_conflicts from
5 the last patch series to solve conflicts caused by built slot operator
6 dependencies. It does this by pulling in alternative packages for the
7 parents of the conflict packages.
8
9 As always pyflakes, pylint and the tests don't show any error.
10
11 You may find this patch in my github repo [1].
12
13 Here are some numbers for -uDN world.
14
15 Before the first patch series:
16 * 11 slot conflicts
17 * 5 backtracking steps and fails
18
19 Current master:
20 * no conflicts
21 * 7 backtracking step and succeeds
22
23 This patch:
24 * no conflicts
25 * no backtracking required
26
27 Some times on my system (core2 2 GHz, 4 GB RAM) with hot file system caches.
28
29 Current master:
30 9:28
31
32 Current master with -backtrack=0 (fails to find a solution):
33 1:38
34
35 This patch:
36 1:58
37
38
39 As you can see by comparing with the --backtrack=0 case, the new conflict
40 solving abilities cost some time (+18%). This is to be expected as it now
41 has to resolve the dependencies of more packages.
42
43 Compared to the normal case this is a decrease by 79%.
44
45 Note that if your system doesn't have any conflict, there shouldn't be any
46 increase in run time.
47
48
49 [1] https://github.com/few/fews-portage-branch/tree/no-backtracking-for-rebuilds

Replies

Subject Author
[gentoo-portage-dev] [PATCH] Introduce depgraph._extend_slot_operator_conflicts Sebastian Luther <SebastianLuther@×××.de>