From owner-freebsd-hubs@FreeBSD.ORG Fri Jun 13 13:24:27 2003 Return-Path: Delivered-To: freebsd-hubs@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id AE97D37B401 for ; Fri, 13 Jun 2003 13:24:27 -0700 (PDT) Received: from smtp4.server.rpi.edu (smtp4.server.rpi.edu [128.113.2.4]) by mx1.FreeBSD.org (Postfix) with ESMTP id A378943FE0 for ; Fri, 13 Jun 2003 13:24:26 -0700 (PDT) (envelope-from drosih@rpi.edu) Received: from [128.113.24.47] (gilead.netel.rpi.edu [128.113.24.47]) by smtp4.server.rpi.edu (8.12.9/8.12.9) with ESMTP id h5DKOAPx005663; Fri, 13 Jun 2003 16:24:11 -0400 Mime-Version: 1.0 X-Sender: drosih@mail.rpi.edu Message-Id: In-Reply-To: <20030613141421.GD13868@electra.cse.Buffalo.EDU> References: <20030613141421.GD13868@electra.cse.Buffalo.EDU> Date: Fri, 13 Jun 2003 16:24:09 -0400 To: Ken Smith , freebsd-hubs@freebsd.org From: Garance A Drosihn Content-Type: text/plain; charset="us-ascii" ; format="flowed" X-Scanned-By: MIMEDefang 2.28 Subject: Re: RFC - extra sync functionality... X-BeenThere: freebsd-hubs@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: FreeBSD Distributions Hubs: mail sup ftp List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 Jun 2003 20:24:28 -0000 At 10:14 AM -0400 6/13/03, Ken Smith wrote: > >Taking that view of things Jun and others have already started >to carve the FTP site into the equivalent of zones. The trick >though is coming up with the equivalent of what triggers a Zone >Transfer, which is a different serial number in the SOA for DNS. Well, let me mention another partially-formed idea that I have been thinking about... Another issue is how to get a consistent collection of what you are downloading, once you do start the download. I have been hit by cases where I cvsup the source tree, and I get *part* of some commit. Ie, when I go to do the buildworld, I get errors because I managed to get *some* files from some commit, but not *all* of the files that were changed by that single commit. From this comes the common advice "Just CVSUP again and the problem should go away". Let's say my machine does decide to start downloading. At the very time I'm downloading from some server, that server might be downloading from *its* source. Neither download can be an atomic operation, so the end user can end up with an inconsistent collection of files. It occurred to me that we could solve this by using snapshots on the mirrors (by this I mean the UFS-snapshots which are related to softupdates, and available in freebsd-5.x). When I connect to a mirror, I would not be downloading from "the real disk", but the mirror would instead connect me to a snapshot of the real disk. The mirror would only create a new snapshot when it was finished updating from it's source, so when any given snapshot is made the repository should be in a completely consistent state. Assuming that all works, the question was what event would the super-master source site use for creating it's snapshot. I was thinking it could create a snapshot, and then start the buildworld-testing processes. If the buildworld succeeds, then it would make *that* snapshot the one used for any subsequent connections to the server. (I am still a bit undecided about how all that should work, however...) I did start playing with some experiments along this line last year, but was tripped up by some bugs that were still in the UFS-snapshot code at that time. The relevance of this to your comments is that you would end up with a single "serial number" for an entire snapshot, and that would be *in* the snapshot. So, you don't need serial numbers for every file, you can have a single number for the entire repository. (or maybe break the single repository into subsets, and then have a serial number per subset). I realize this is another idea which would need a bit more fleshing-out before it would be practical to use, but I also think that it's a promising idea. -- Garance Alistair Drosehn = gad@gilead.netel.rpi.edu Senior Systems Programmer or gad@freebsd.org Rensselaer Polytechnic Institute or drosih@rpi.edu