From owner-freebsd-hackers Tue Feb 6 12: 4:56 2001 Delivered-To: freebsd-hackers@freebsd.org Received: from fw.wintelcom.net (ns1.wintelcom.net [209.1.153.20]) by hub.freebsd.org (Postfix) with ESMTP id 3EECC37B401 for ; Tue, 6 Feb 2001 12:04:36 -0800 (PST) Received: (from bright@localhost) by fw.wintelcom.net (8.10.0/8.10.0) id f16K1mx20357; Tue, 6 Feb 2001 12:01:48 -0800 (PST) Date: Tue, 6 Feb 2001 12:01:48 -0800 From: Alfred Perlstein To: Matt Dillon Cc: Andre Oppermann , Mike Silbersack , Rik van Riel , Poul-Henning Kamp , Charles Randall , Dan Phoenix , Jos Backus , freebsd-hackers@FreeBSD.ORG Subject: Re: soft updates and qmail (RE: qmail IO problems) Message-ID: <20010206120148.R26076@fw.wintelcom.net> References: <200102061759.f16Hxv662437@earth.backplane.com> <3A805137.230E0A0D@monzoon.net> <200102061956.f16JuCb65538@earth.backplane.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <200102061956.f16JuCb65538@earth.backplane.com>; from dillon@earth.backplane.com on Tue, Feb 06, 2001 at 11:56:12AM -0800 Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Since I'm still being cc'd on this... :) * Matt Dillon [010206 11:56] wrote: > : > :This information is in fact correct. Have a look at the FreeBSD link(2) > :man page: > : > :LINK(2) FreeBSD System Calls Manual > :LINK(2) > > Andre, I think there *might* be a dozen people in the world that > understand UFS/FFS better then I do, but none of them have posted to > this thread. > > Believe me when I say that there is no metadata ordering guarentee > in the case of a crash. Yes a standard UFS/FFS will do synchronous > metadata updates for certain operations. No, this does not guarentee > metadata ordering. It does if it's a single threaded process doing the updates, or the IPC doesn't allow one process to proceed until the first initiated call is complete. > There has been talk of providing system calls to allow user programs > to request ordering semantics for certain operations, but nobody has > actually implemented anything. Most of the discussion has been centered > on having calls to guarentee file write ordering between a set of > open descriptors for databases. Sort of like process groups, a process can join in an IO-group and have all journal entries tagged as belonging to the group, when an fsync is done (or maybe fsync_ioid()) all those tagged entries can be flushed. It's not that hard, it just takes some time. You also have to deal with overlap, by either forcing a sync op, or allowing IO-groups to be mixed creating dependancies where if IO-group 1 calls fsync, it can't return until IO-group 2 is done. You then generate a new generation count for each IO-group involved in the fsync. well maybe. :) -- -Alfred Perlstein - [bright@wintelcom.net|alfred@freebsd.org] "I have the heart of a child; I keep it in a jar on my desk." To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message