On 24/06/2009 23:22, Danek Duvall wrote:
On Wed, Jun 24, 2009 at 05:01:12PM -0500, Shawn Walker wrote:

It is mainly the catalog unexpectedly changing that is the issue.

search, in particular, doesn't like things disappearing from the
catalog and doesn't account for it (currently).

Yeah, that's annoying.  Though if the repo doesn't get too big, which
/pending shouldn't, then it shouldn't take that long to re-generate the
search indices.

Is this a 'pkg.depotd --rebuild' ?

Any time I've done this it hasn't taken long. Plus, if we have regular downtime to do this, say, every 24 hours, then we can set that expectation with our users.

Removing things from the catalog in the suggested fashion also
eliminates the ability to do incremental updates and wipes out a
repository's updatelog.

You are correct that for installed packages, no ill-effects are
likely to occur other than a user being stuck with an orphaned
package that will not automatically be updated if it appears under
the aegis of another publisher.

I'd be willing to push those annoyances off to the developers using the
repo, at least for a while.  I really don't see them being a huge deal.
For the first, you'll never get an updatelog, always a full catalog (or it
shouldn't be hard to make that be the behavior), but again, /pending should
be reasonably small.  And for the second, it's not hard to make "pkg
uninstall" be part of the testing process.

Right, so, the ill-effect here is that, after a re-build, it takes longer for users with the /pending repo set to do a refresh. Is that correct? Something we can explain to the users and, I think, something they'll accept. And, yeah, as I was saying before, the packages in /pending shouldn't be used for any length of time, so if packages are orphaned, well, tough.

If the jucr folks would like to come up with a plan that would take care of
these issues, we can discuss that here, but I think the core team has
higher priority things on the list for now.  If we start to get reports of
people saying they won't use jucr because of these issues, then we can
certainly revisit the priority.

I suggest the following. Periodically, say, every 24 hours, we:
    - create a new empty repo
- for each package we want to *keep* we pkgsend | pkgrecv it to the new repo
    - rebuild the catalog
    - swap out the repos

We could even disallow any publishing to the repo while it's being rebuilt, so that the packages that are already in it are available for users to install.

Users of the /pending repo should expect the performance to be slow sometimes - catalog updates.

Users of the /pending repo should expect packages to disappear.

That does sound reasonable? We could do this on a trial basis and if we start seeing problems, simply stop doing this until another solution is available.

_Christian
_______________________________________________
pkg-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/pkg-discuss

Reply via email to