From owner-freebsd-hackers Tue Feb 6 11:56:33 2001 Delivered-To: freebsd-hackers@freebsd.org Received: from earth.backplane.com (earth-nat-cw.backplane.com [208.161.114.67]) by hub.freebsd.org (Postfix) with ESMTP id F360C37B401 for ; Tue, 6 Feb 2001 11:56:15 -0800 (PST) Received: (from dillon@localhost) by earth.backplane.com (8.11.1/8.9.3) id f16JuCb65538; Tue, 6 Feb 2001 11:56:12 -0800 (PST) (envelope-from dillon) Date: Tue, 6 Feb 2001 11:56:12 -0800 (PST) From: Matt Dillon Message-Id: <200102061956.f16JuCb65538@earth.backplane.com> To: Andre Oppermann Cc: Mike Silbersack , Rik van Riel , Poul-Henning Kamp , Charles Randall , Dan Phoenix , Alfred Perlstein , Jos Backus , freebsd-hackers@FreeBSD.ORG Subject: Re: soft updates and qmail (RE: qmail IO problems) References: <200102061759.f16Hxv662437@earth.backplane.com> <3A805137.230E0A0D@monzoon.net> Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG : :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. 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. As I said, a journaled filesystem can theoretically make metadata ordering guarentees, but actually doing so creates massive performance and scaleability issues that aren't apparent until you really start pounding the filesystem. It *CAN* be done efficiently, but only if you have a significant amount of non-volatile memory store to hold the journal. ReiserFS might do it right now, as a side effect, but if it does it faces serious scaleability issues. Softupdates can also theoretically order [meta]data, using dependancies. It is a very difficult problem to solve and it doesn't do it now. All softupdates does is guarentee filesystem consistency in the case of a crash and certain guarentees for what will be crash-recoverable when you do an fsync(). -Matt To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message