Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 6 Feb 2001 12:18:39 -0800 (PST)
From:      Matt Dillon <dillon@earth.backplane.com>
To:        Andre Oppermann <oppermann@monzoon.net>
Cc:        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>, Alfred Perlstein <bright@wintelcom.net>, Jos Backus <josb@cncdsl.com>, freebsd-hackers@FreeBSD.ORG
Subject:   Re: soft updates and qmail (RE: qmail IO problems)
Message-ID:  <200102062018.f16KIdx66146@earth.backplane.com>
References:  <Pine.LNX.4.21.0102061555550.1535-100000@duckman.distro.conectiva> <3A805035.C71AAD5E@monzoon.net> <200102061943.f16Jhp365113@earth.backplane.com> <3A805938.96ED890D@monzoon.net>

next in thread | previous in thread | raw e-mail | index | archive | help
:>     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.

    With a normal UFS/FFS mount, if both directories are otherwise entirely
    idle, then you do get the guarentee.  However, if there are other 
    processes doing links and unlinks in the directories in question at
    the same time, you are guarenteed nothing.  In fact, it's quite likely
    that a crash will destroy files in those directories that are entirely
    unrelated to the ongoing file ops in the directory.

    With softupdates, if you fsync() the descriptor, link() in directory A,
    fsync() the descriptor again, then unlink() in directory B, the
    semantics as you described will be guarenteed.  No other file operations
    will screw up the ones you've already fsync()'d to disk.

:>     (I will mention here that, of course, sendmail and postfix are no better
:>     in this regard.  This is not a detriment to QMail itself verses other
:>     mailers.  Since QMail fsync()'s reasonably, it will be just as reliable
:>     as other existing MTAs).
:
:Does sendmail even use fsync()?
:
:-- 
:Andre

    Yes.

						-Matt


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?200102062018.f16KIdx66146>