From: Brian Harring <ferringb@gmail.com>
To: gentoo-dev@lists.gentoo.org
Subject: Re: [gentoo-dev] [RFC] DIGESTS metadata variable for cache validation
Date: Tue, 10 Feb 2009 04:20:46 -0800 [thread overview]
Message-ID: <20090210122046.GD4076@hrair> (raw)
In-Reply-To: <49908A3D.4050403@gentoo.org>
[-- Attachment #1: Type: text/plain, Size: 3895 bytes --]
On Mon, Feb 09, 2009 at 11:55:41AM -0800, Zac Medico wrote:
> All that I can say right now is that I recall questions about it in
> the past from overlay maintainers (I don't have a list) and the
> funtoo project is the only one which I can name offhand.
>
> However, the ability to distribute cache via a vcs is only an
> ancillary feature which is made possible by the DIGESTS data. The
> DIGESTS data is useful regardless of the protocol that is used to
> distribute the cache, since it allows the cache to be properly
> validated for integrity. So, the real primary reason for introducing
> the DIGESTS data is to provide a proper solution for cases like bug
> #139134 [1] in which invalid metadata cache goes undetected.
I'm sorry, but this proposal smells something awful. Because of the
mtime requirement on cache entries you're proposing jamming another
1.4MB into the cache for validation purposes (which should be 4x that
since a full checksum really should be in there) while trying to
maintain compatibility.
Frankly, forget compatibility- the current format could stand to die.
The repository format is an ever growing mess- leave it as is and
work on cutting over to something sane.
Overlay maintainers who want the latest/greatest obviously can convert
over also; one would hope their would be enough cleanup to make it
worth their time.
As for the nasty gentoo-x86 compatibility, basically, do the
following:
1) maintain the existing cvs repo as is
2) iron out what cleanup/restructuring is desired. glep55 being
jammed in here is a potential for example. Nail down the new repo
format basically (with an eye for translating the cvs repo to it on
the fly).
3) use an eclass index holding the checksums, w/ the cache entries
referencing the index numbers rather (sorting the index by
consumption, meaning the more ebuilds using it the lower the index):
this brings the cache addition down to around 285KB (acceptable imo)
while giving full flexibility in the checksums available for eclasses.
This is assuming the current flat_list format is still in use in the
new repo...
4) drop mtime on cache entries, bump it forward whenever it's updated
(bug 139134 goes away) jamming in an ebuild checksum of some sort.
5) rsync nodes are required to have 10GB of storage available- so
storage shouldn't be an issue, but ensuring all nodes have been
updated to sync both the old and *new* format is required.
6) suffer through cvs for a year (or whatever time frame), converting
folks over to the new url.
7) kill the old format after whatever period deemed best (potentially
leaving a README telling folks how to update if they're seriously
behind).
8) convert the cvs repo to the new format, tear down the
transformation bits.
Yes, the plan above is coarse- there aren't any glaring holes as far
as I can see however. It does place restrictions on the repo format
choosen, but careful choices in the new format (heavy format
versioning) should make it possible to make this sort of issue less
of a pain down the line.
At the very least, doing a different repo format for repos/overlays
stored in a vcs that doesn't track mtime would solve their issues- it
also has the nice benefit of not making the repo more bloated for the
99% of folk who didn't even hit the issues spawning this.
If gentoo-x86 is left as is, bug 139134 can be head off w/out jamming
a new metadata key in; to be clear, I'm likely going to "Special Hell"
for suggesting this but if mtime/size on the new cache entry is the
same size as old, append a space to the value in the description
field.
All sane managers ought to be doing basic clean up of that value
anyways in their data layer (let alone at the UI level), but it's
enough to make rsync behave.
So... flame away.
~brian
[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]
next prev parent reply other threads:[~2009-02-10 12:21 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-02-02 20:34 [gentoo-dev] [RFC] DIGESTS metadata variable for cache validation Zac Medico
2009-02-06 9:55 ` [gentoo-dev] " 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 [this message]
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=20090210122046.GD4076@hrair \
--to=ferringb@gmail.com \
--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