public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
From: Brian Harring <ferringb@gmail.com>
To: gentoo-dev@lists.gentoo.org
Cc: ciaran.mccreesh@googlemail.com
Subject: Re: [gentoo-dev] adding a modification timestamp to the installed pkgs database (vdb)
Date: Tue, 12 Jan 2010 15:12:23 -0800	[thread overview]
Message-ID: <20100112231223.GC6656@hrair> (raw)
In-Reply-To: <20100112101252.1d63a6a5@snowmobile>

[-- Attachment #1: Type: text/plain, Size: 3991 bytes --]

On Tue, Jan 12, 2010 at 10:12:52AM +0000, Ciaran McCreesh wrote:
> On Mon, 11 Jan 2010 15:35:51 -0700
> Denis Dupeyron <calchan@gentoo.org> wrote:
> > I'm a bit surprised by the low amount of discussions this topic has
> > generated.
> 
> There's no discussion because Brian refuses to address any comments on
> the proposal and just says "we should do it anyway, and if you want it
> done properly instead, do it yourself".

This is a bit of bullshit, per the norm.  There is plenty of 
discussion- the problem is you don't like the direction it's gone.  
You want a whole new vdb- I don't oppose that.  However I'm not 
interested in trying to standardize a new vdb format into PMS, at 
least not yet.

Your argument can basically be summed up as "don't do the minimal 
tweak, do the whole new vdb with defined caches that all can share".   

Which is a fine notion, but not at all what I'm interested in- I want 
smething w/in the next 6 months PMs can start deploying for user 
benefit.  I've literally seen discussions about vdb2 for >5 years now- 
pinning performance bets on a white elephant is not in my interest.  
Further, a vdb2 specified only in spce is useless w/out actual long 
term usage of it for performance/reliability testing.


The daft thing about this is that you're ignoring one core transition 
issue w/ vdb2- if someone did create a vdb2, they still would need a 
synchronization mechanism (one quite similar to what I'm proposing).  
Already stated that in the bug-

http://bugs.gentoo.org/show_bug.cgi?id=290428#c11

Repeating the relevant snippet for your benefit, consider the 
following chain of events-

1) portage/pkgcore support the PMS defined vdb2 while paludis doesn't
2) portage/pkgcore are invoked modifying the livefs; vdb1, vdb2 is 
updated.
3) paludis is invoked.  vdb1 is updated, vdb2 is not
4) portage and pkgcore now cannot rely upon vdb2, since vdb1 now 
contains extra modifications due to paludis not supporting vdb2.


To address #4, you need a way to detect that vdb1 was modified... then 
portage/pkgcore can synch vdb2 up w/ the changes in vdb1 (namely via 
basically rebuilding vdb2 from vdb1).

The only real alternative to the issue above is to that of dropping 
vdb1- when you jump to vdb2, you drop vdb1.  This means all existing 
tools have to know of both locations, have to support at least read on 
both locations- if a PM (again, paludis for the example) didn't 
support VDB2, under the alternative approach paludis wouldn't be 
usable since there would not be a vdb for it to inspect.

In my opinion that is not a viable alternative- but you're free to 
propose whatever the hell you want.


Summarizing; the synchronization primitive is needed for any future 
vdb2; once all vdb modifiers (paludis being the sole hold out per the 
norm) support updating the timestamp (and a couple of months have 
gone by), you get the following benefits-

1) PMs can rebuild their vdb cache validation to use that timestamp, 
simplifying their code and reducing redundancy in their validation
2) caches that are currently too expensive to deploy due to the cost 
of having to validate their way through the vdb can rely on 
effectively a boolean- is the timestamp newer then what they know of.  
This makes said caches access far faster, making them a net win 
(instead of a net loss)- portages vdb metadata cache comes to mind for 
this one for example.
3) interested parties can start developing their own vdb2, including 
letting users play with it while avoiding forced lock in (this is good 
on multiple accounts- a vdb2 existing only in a spec is worthless in 
performance promises compared to a vdb2 implemented and tested).


Summing it up; what ciaran wants is reliant on what I'm proposing, 
what I'm proposing provides tangible benefits now, not years down the 
line as his proposal would entail.

There's the lovely executive summary.
~harring

[-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]

  reply	other threads:[~2010-01-12 23:13 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-10-26  1:50 [gentoo-dev] adding a modification timestamp to the installed pkgs database (vdb) Brian Harring
2009-10-27 18:32 ` [gentoo-dev] " Zac Medico
2009-10-28  5:11   ` Brian Harring
2010-01-11 22:35 ` [gentoo-dev] " Denis Dupeyron
2010-01-12 10:12   ` Ciaran McCreesh
2010-01-12 23:12     ` Brian Harring [this message]
2010-01-17  8:59       ` Ciaran McCreesh
2010-01-17  9:24         ` Tobias Klausmann
2010-01-17  9:46           ` Ciaran McCreesh
2010-01-17 10:48             ` [gentoo-dev] " Christian Faulhammer
2010-01-17 11:09               ` Ciaran McCreesh
2010-01-18 15:42                 ` Brian Harring
2010-01-18 16:37                   ` Ciaran McCreesh

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=20100112231223.GC6656@hrair \
    --to=ferringb@gmail.com \
    --cc=ciaran.mccreesh@googlemail.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