On Sat, 08 Sep 2001, D. J. Bernstein wrote:

> Matthias Andree writes:
> > qmail needs 30,000 write operations for these 1,000 mails, Postfix
> > needs 6,250.
> 
> Gee. When you say ``Postfix,'' are you referring to the same MTA that
> incorrectly skips some essential fsyncs, because the MTA author didn't
> understand that write-fchmod-fsync often writes the inode first?

No, you must mean a different Postfix. My Postfix correctly saves fsyncs
because it does not rely on file system write order even though it may
look so to the casual observer.

Seriously, I had the same fear, but if you look at the parts that read
the queue, the +x is necessary, but not sufficient to them. Check
src/global/mail_open_ok.c for details.

Now stop lying to the world.

Stop defaming authors that checked their facts.

Check _your_ facts.

Read the 1999 "Soft Updates: A Technique for Eliminating Most
Synchronous Writes in the Fast Filesystem" Usenix paper by Marshall Kirk
McKusick and Gergory R. Ganger.

Then, review the Postfix queue format.[1]

> You know, I can save _tons_ of writes by storing mail on a RAM disk! Why
> am I bothering to implement a fast journaling filesystem for qmail 2,
> when I could simply pretend that the power never goes out?

False. You can't save the writes, you just get rid of spinning-disk
latency.

Why you are bothering? Tell us, we can only speculate.



[1] Postfix writes records into its queue file which have length and
    type fields, queue files with truncated records or with missing end
    of file record are rejected, and will not have been acknowledged to
    the client. Acknowledgements are only issued after fsync() has
    completed, and at that time, inode AND file are on disk.

-- 
Matthias Andree
Outlook (Express) users: press Ctrl+F3 for the full source code of this post.
begin  dont_click_this_virus.exe
end

Reply via email to