Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 6 Feb 2001 12:27:50 -0800
From:      Alfred Perlstein <bright@wintelcom.net>
To:        Matt Dillon <dillon@earth.backplane.com>
Cc:        Andre Oppermann <oppermann@monzoon.net>, Rik van Riel <riel@conectiva.com.br>, Mike Silbersack <silby@silby.com>, Poul-Henning Kamp <phk@critter.freebsd.dk>, Charles Randall <crandall@matchlogic.com>, Dan Phoenix <dphoenix@bravenet.com>, Jos Backus <josb@cncdsl.com>, freebsd-hackers@FreeBSD.ORG
Subject:   Re: soft updates and qmail (RE: qmail IO problems)
Message-ID:  <20010206122750.T26076@fw.wintelcom.net>
In-Reply-To: <200102062018.f16KIdx66146@earth.backplane.com>; from dillon@earth.backplane.com on Tue, Feb 06, 2001 at 12:18:39PM -0800
References:  <Pine.LNX.4.21.0102061555550.1535-100000@duckman.distro.conectiva> <3A805035.C71AAD5E@monzoon.net> <200102061943.f16Jhp365113@earth.backplane.com> <3A805938.96ED890D@monzoon.net> <200102062018.f16KIdx66146@earth.backplane.com>

next in thread | previous in thread | raw e-mail | index | archive | help
* Matt Dillon <dillon@earth.backplane.com> [010206 12:19] wrote:
> :>     banging on unrelated areas of the filesystem in parallel, and an
> :>     fsync() of one descriptor would have to wait for the entire filesystem
> :>     to reach a synchronization point to guarentee metadata update ordering.
> :>     This creates a serious scaleability issue within a filesystem!
> :
> :Yes, my understanding of the meaning of "ordered meta-date update" as
> :I have grasped it from Terry's rants in the past years is not that all
> :meta-data updates on a filesystem have to be done one-after-the-other
> :but ordered in respect to each other; That a link() happens before a
> :unlink() on the same file. Does this make sense?
> 
>     If you link() in directory A and unlink() in directory B, you are not
>     guarenteed that the link in A will sync to the disk before the unlink
>     in B with regards to a crash occuring.

I dont' think the "link() in directory A" syscall will return until
it is sync'd (noasync UFS/FFS)!  Therefore the unlink() can't happen
unless it's being done by another process.

Yes, other activity in the same dir can cause corruption, but meta
data updates are done via sync writes that won't return until they
are complete.

Except for corruption, they are ordered.  Since you can't IPC during
a syscall reliably (you can't signal before because then you have
a race, and you can't signal during because the kernel has a grip
on your context) they are ordered when related.

-- 
-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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010206122750.T26076>