From: Zac Medico <zmedico@gentoo.org>
To: Gentoo Dev <gentoo-dev@lists.gentoo.org>
Subject: [gentoo-dev] [RFC] DIGESTS metadata variable for cache validation
Date: Mon, 02 Feb 2009 12:34:46 -0800 [thread overview]
Message-ID: <498758E6.5080609@gentoo.org> (raw)
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi,
I'd like to add a new metadata cache value called DIGESTS which will
contain a space separated list of digests which can be
used to validate the metadata cache. Like INHERITED and
DEFINED_PHASES [1], it will be automatically generated. The first
digest in the list will correspond to the ebuild. If there are any
inherited eclasses, the digests of those eclasses will follow in a
space separated list, in the same order that they occur in the
INHERITED variable. The value of the DIGESTS variable will be on
line 18 of the metadata cache (just after DEFINED_PHASES).
For the digest format, I suggest that we use the leftmost 10
hexadecimal digits of the SHA-1 digest. The rationale for limiting
it to 10 digits (out of 40) is to save space. Due to the avalanche
effect [2], 10 digits should be sufficient to ensure that problems
resulting from hash collisions are extremely unlikely.
The primary reason to use a digest for cache validation instead of a
timestamp is that it allows the cache validation mechanism to work
even if the tree is distributed with a protocol that does not
preserve timestamps, such as git or subversion. This would make it
possible to distribute metadata cache directly from git and
subversion repositories (among others). Since a digest is inherently
more expensive to obtain than a timestamp, package managers may use
the Manifest entries as a digest cache, in order to avoid the need
to compute digests of ebuilds during dependency calculations.
Does the suggested approach seem reasonable? Would anybody like to
suggest any changes?
[1]
http://archives.gentoo.org/gentoo-dev/msg_8c34d8efbc0d31ab28c517403dc83f62.xml
[2] http://en.wikipedia.org/wiki/Avalanche_effect
- --
Thanks,
Zac
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.9 (GNU/Linux)
iEYEARECAAYFAkmHWOQACgkQ/ejvha5XGaOJeQCgouZGO+pbOgJYkzssRVhzMDwt
Cq4AoN6NG7SmJ6XjEked1WnZ+CJPXVWj
=JSDL
-----END PGP SIGNATURE-----
next reply other threads:[~2009-02-02 20:34 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-02-02 20:34 Zac Medico [this message]
2009-02-06 9:55 ` [gentoo-dev] Re: [RFC] DIGESTS metadata variable for cache validation Markus Ullmann
2009-02-07 1:13 ` Zac Medico
2009-02-07 22:31 ` [gentoo-dev] " Tiziano Müller
2009-02-07 23:23 ` Zac Medico
2009-02-08 8:07 ` Tiziano Müller
2009-02-08 8:59 ` Zac Medico
2009-02-08 11:51 ` Tiziano Müller
2009-02-08 20:36 ` Zac Medico
2009-02-08 21:48 ` Tiziano Müller
2009-02-08 22:14 ` Zac Medico
2009-02-08 22:18 ` Ciaran McCreesh
2009-02-08 22:43 ` Zac Medico
2009-02-08 22:47 ` Ciaran McCreesh
2009-02-08 23:03 ` Zac Medico
2009-02-08 23:10 ` Ciaran McCreesh
2009-02-08 23:27 ` Zac Medico
2009-02-08 23:30 ` Ciaran McCreesh
2009-02-08 23:40 ` Zac Medico
2009-02-09 12:30 ` Petteri Räty
2009-02-09 13:59 ` Ciaran McCreesh
2009-02-09 14:15 ` Petteri Räty
2009-02-09 14:18 ` Ciaran McCreesh
2009-02-09 14:21 ` Rémi Cardona
2009-02-09 20:19 ` Zac Medico
2009-02-09 18:43 ` Ciaran McCreesh
2009-02-09 20:02 ` Zac Medico
2009-02-09 15:22 ` Tiziano Müller
2009-02-09 19:55 ` Zac Medico
2009-02-10 12:20 ` Brian Harring
2009-02-10 12:52 ` Nirbheek Chauhan
2009-02-10 20:55 ` Zac Medico
2009-02-11 9:00 ` Brian Harring
2009-02-11 10:01 ` Zac Medico
2009-02-14 13:18 ` Brian Harring
2009-02-14 20:16 ` Zac Medico
2009-02-15 22:51 ` Zac Medico
2009-02-15 23:15 ` Ciaran McCreesh
2009-02-15 23:26 ` Zac Medico
2009-02-15 23:30 ` Ciaran McCreesh
2009-02-15 23:56 ` Zac Medico
2009-02-16 0:06 ` Ciaran McCreesh
2009-02-16 0:48 ` Zac Medico
2009-02-16 0:53 ` Ciaran McCreesh
2009-02-16 0:54 ` Zac Medico
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=498758E6.5080609@gentoo.org \
--to=zmedico@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