From: "Tiziano Müller" <dev-zero@gentoo.org>
To: gentoo-dev@lists.gentoo.org
Subject: Re: [gentoo-dev] Gentoo Council Reminder for May 28
Date: Thu, 28 May 2009 07:46:36 +0200 [thread overview]
Message-ID: <1243489596.10450.24.camel@localhost> (raw)
In-Reply-To: <1243460607.3480.3@NeddySeagoon>
[-- Attachment #1: Type: text/plain, Size: 6699 bytes --]
Am Mittwoch, den 27.05.2009, 22:43 +0100 schrieb Roy Bamford:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> On 2009.05.27 21:06, Ciaran McCreesh wrote:
> > -----BEGIN PGP SIGNED MESSAGE-----
> > Hash: SHA1
> >
> > On Wed, 27 May 2009 20:55:33 +0100
> > Roy Bamford <neddyseagoon@gentoo.org> wrote:
> > > That means the EAPI needs to be extracted before the ebuild is
> > > sourced, which from the figures bandied about on the list may take
> > > marginaly longer but its a price worth paying for a sound system
> > > design. Gentoo should not repeat the VHS vs Betamax war. For those
> > > who do not remember, VHS was the better marketed but inferior
> > > technical solution that won the standards war for domestic Video
> > > recorders.
> > >
> > > The aims of GLEP 55 are good but the proposed implementaion is bad
> > > practice, so GLEP 55 should be rejected in its present form.
> >
> > You have not made a single technical argument in your entire message.
> > Please don't add yet more noise to the discussion.
> >
> > - --
> > Ciaran McCreesh
> > -----BEGIN PGP SIGNATURE-----
> > Version: GnuPG v2.0.9 (GNU/Linux)
> >
> > iEYEARECAAYFAkodnVkACgkQ96zL6DUtXhGerACcC2khWKdGKCaMTi7zE/jYyUUw
> > bU8AnA5Gg6bDz/JiDIwMB98R5t9dQNLg
> > =bfse
> > -----END PGP SIGNATURE-----
> >
> Ciaran,
>
> You chose to ignore "Adding metadata to the filename is not required
> and is bad system design practice."
>
> I assume you agree with that as you chose to snip it, not to refute it
> with a technical argument?
>
>
>
> GLEP 55 is a poor piece of technical writing. The title
> <quote>
> Title: Use EAPI-suffixed ebuilds (.ebuild-EAPI)
> </quote>
> should be an area to be impvoved not a possible solution that has not
> even been discussed (in the document) yet.
>
> The abstract tells readers more about a proposed solution.
> <quote>
> This GLEP proposes usage of EAPI-suffixed file extensions for ebuilds
> (for example, foo-1.2.3.ebuild-1).
> </quote>
> and readers still don't know the problem that it tries to address.
>
> The statement of the problem is not entirely correct either ...
> <quote>The current way of specifying the EAPI in ebuilds is flawed.
> In order to get the EAPI the package manager needs to source the
> ebuild,
> </quote>
> Nope, in order to get the EAPI, the PM needs to parse the ebuild, it
> need not source it. Thats a statement of the current design.
>
> <quote>
> which itself needs the EAPI in the first place.
> </quote>
> Well, thats what current designs do, its a design than can be changed.
>
> <quote>Otherwise it imposes a serious limitation, namely every ebuild,
> using any of the future EAPIs, will have to be source'able by old
> package managers
> </quote>
> That is true, unless the .ebuild extension is changed so we get a clean
> break with the past. It does not mean the EAPI needs to be a part of
> the file name.
>
> The GLEP discusses this and and dismisses it for no sound technical
> reasons.
>
> Until we get to the Abstract solution, the GLEP reads like a sales
> brouchre, which is what reminded me of VHS vs Betamax.
> <quote>
> A solution to this problem has to lift those limitations and the only
> way to do it is to make the EAPI of an ebuild available to the package
> managers in a way that doesn't require them to source the ebuild.
> Another important requirement is for the solution to be backward
> compatible, which has the pleasant side-effect of making the solution
> applicable in the Gentoo tree right away. A solution to this problem
> has to lift those limitations and the only
> way to do it is to make the EAPI of an ebuild available to the package
> managers in a way that doesn't require them to source the ebuild.
> </quote>
> Thats all true or highly desireable.
>
> The
> <quote>
> Hurts performance: yes
> </quote>
> needs to be quantifed and included in the GLEP, so that readers can
> make an impartial objective assessment of the alternatives on offer and
> hopefully support the best technical solution. That need not be the
> fastest.
I did some analysis on that. The result is that the the performance
penalty of not having the EAPI not in the filename depends on various
factors. But it is for sure that there is a performance penalty.
And here is why (I'm only looking at the non-degenerated case with valid
metadata, ignoring overlays which some consider a corner case (I don't
understand that argument, but that's another thing)):
When the package manager looks at a package, it first reads the
package's ebuild directory and gets the mtimes. It does the same for the
cache entries and validates the caches (there is more stuff in here,
like checking eclasses and so on).
Then the following happens based on the "solution" we choose:
eapi-in-filename: the package manager starts from the highest version
with a supported eapi (the others are inexistant with the used glob).
For that ebuild it reads the cache entry and decides whether or not it
can be used. If not, it proceeds to the next version, if yes, it's done.
eapi-in-ebuild: the package manager reads all cache entries and sorts
out those with an EAPI it doesn't support. The rest gets ordered and the
same procedure as above applies.
So, one of the main differences is: "reading one cache file" (if running
unstable you can asssume you support the highest version, thus reading
only one cache file) vs. "reading all cache files".
I did some performance measurements based on that. I have 1507 installed
packages with 5541 different versions/revisions.
Reading from hot cache:
1507 files: ~50ms
5541 files: ~170ms
Reading from cold cache:
1507 files: ~2.8s
5541 files: ~6s
I made a lot of assumptions here (neglecting seek between ebuild-dir and
metadata-dir, other processes using the drive, 80 ebuilds from overlays
where the ebuild would have to be read, etc.). But estimating from the
numbers above I'd say that a "emerge -uD world"/"paludis -i world" will
be at least twice as slow, which I think is not acceptable.
And I also don't understand your point of stating it's "bad design". I
mean: when coding you should "not optimize prematurely", but with
eapi-in-ebuild it is against the other principle of "not pessimize
prematurely" (Sutter/Alexandrescu: C++ Coding Standards).
--
Tiziano Müller
Gentoo Linux Developer, Council Member
Areas of responsibility:
Samba, PostgreSQL, CPP, Python, sysadmin, GLEP Editor
E-Mail : dev-zero@gentoo.org
GnuPG FP : F327 283A E769 2E36 18D5 4DE2 1B05 6A63 AE9C 1E30
[-- Attachment #2: Dies ist ein digital signierter Nachrichtenteil --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
next prev parent reply other threads:[~2009-05-28 5:46 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-26 18:57 [gentoo-dev] Gentoo Council Reminder for May 28 Tiziano Müller
2009-05-27 12:46 ` Ferris McCormick
2009-05-27 13:25 ` Ulrich Mueller
2009-05-27 19:55 ` Roy Bamford
2009-05-27 20:06 ` Ciaran McCreesh
2009-05-27 21:43 ` Roy Bamford
2009-05-27 21:52 ` Ciaran McCreesh
2009-05-27 23:26 ` [gentoo-dev] " Mark Bateman
2009-05-27 23:45 ` Ciaran McCreesh
2009-05-27 23:48 ` Jeroen Roovers
2009-05-27 23:54 ` Ciaran McCreesh
2009-05-28 3:58 ` Jeroen Roovers
2009-05-28 6:28 ` [gentoo-dev] How not to discuss Patrick Lauer
2009-05-28 18:14 ` Ciaran McCreesh
2009-05-28 18:36 ` Alec Warner
2009-05-28 18:58 ` Roy Bamford
2009-05-28 19:15 ` Joe Peterson
2009-05-28 19:40 ` Piotr Jaroszyński
2009-05-29 9:23 ` Marijn Schouten (hkBst)
2009-05-30 0:38 ` Alec Warner
2009-05-30 15:08 ` Joe Peterson
2009-05-28 18:49 ` Patrick Lauer
2009-05-28 19:11 ` Ciaran McCreesh
2009-05-29 2:41 ` [gentoo-dev] " Duncan
2009-05-29 2:12 ` Ryan Hill
2009-05-29 21:49 ` Patrick Lauer
2009-05-30 20:56 ` Ryan Hill
2009-05-31 1:57 ` Richard Freeman
2009-05-31 9:25 ` Thilo Bangert
2009-05-31 10:57 ` Duncan
2009-05-31 22:01 ` Richard Freeman
2009-06-02 8:20 ` Steven J Long
2009-06-02 12:53 ` Duncan
2009-06-04 14:11 ` Steven J Long
2009-06-02 15:38 ` Richard Freeman
2009-06-03 10:43 ` Marijn Schouten (hkBst)
2009-06-03 18:23 ` Richard Freeman
2009-05-28 5:46 ` Tiziano Müller [this message]
2009-05-28 7:23 ` [gentoo-dev] Gentoo Council Reminder for May 28 Patrick Lauer
2009-05-28 9:35 ` Tiziano Müller
2009-05-28 17:56 ` Roy Bamford
2009-05-28 18:04 ` Ciaran McCreesh
2009-05-28 18:30 ` Patrick Lauer
2009-05-28 18:48 ` Ciaran McCreesh
2009-05-28 19:19 ` Patrick Lauer
2009-05-28 19:26 ` Ciaran McCreesh
2009-05-28 19:42 ` Josh Saddler
2009-05-28 19:43 ` Ciaran McCreesh
2009-05-28 19:42 ` Roy Bamford
2009-05-28 19:54 ` Ciaran McCreesh
2009-05-28 21:31 ` Roy Bamford
2009-05-28 19:46 ` Patrick Lauer
2009-05-28 19:52 ` Ciaran McCreesh
2009-05-28 20:56 ` Patrick Lauer
2009-05-28 21:09 ` Ciaran McCreesh
2009-05-27 20:57 ` Joe Peterson
2009-05-27 21:58 ` Patrick Lauer
2009-05-27 22:12 ` Piotr Jaroszyński
2009-05-27 22:33 ` Patrick Lauer
2009-05-27 23:10 ` Piotr Jaroszyński
2009-05-28 6:36 ` Patrick Lauer
2009-06-01 20:42 ` Tiziano Müller
2009-05-28 13:11 ` Ferris McCormick
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1243489596.10450.24.camel@localhost \
--to=dev-zero@gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox