Re: fsync() fails under NFS, right?

New Message Reply About this list Date view Thread view Subject view Author view Attachment view

From: braver@pobox.com
Date: 09/15/99-12:07:25 PM Z


From: braver@pobox.com
Date: Wed, 15 Sep 1999 13:07:25 -0400
Message-Id: <199909151707.NAA04585@roll.setup.org>
Subject: Re: fsync() fails under NFS, right?


The tone of the message by "Theodore Y. Ts'o"
implies a strange, unjustified superiority of some
Linux developers, which probably points to real
inferiority complexes of the authors or
carelessness of speech, either of which wouldn't
encourage my response.  However, since some
inappropriate things have been said to the group,
and an important technical culprit has been let
out of the box by Gen. Ts'o, I'd like to analyze
further.  Please pardon my follow-up, but that
message can not be put away for the culprit,
philosophical implication described below.

Our NEC group relies on Linux for development of
serious distributed systems, and one point of the
respected self-proclaimed Linuxoid's posting is
very important to notice.  It is aggressive kernel
optimization.

One of the things we noticed and investigated were
TCP protocol problems under Linux.  It seemed that
the kernel does buffer stuff on behalf of
processes in a way not fully faithful to the TCP
specs.  A process would get an OK status after
sending messages while they are actually in the
kernel buffer and the destination process could be
dead.  The only way around it was to get the
recipient send an ack back.  Clean TCP spec would
allow teh sender to receive the status and that
would be enough.  We discussed the problem with
Alan Cox at the time.  It may or may not be
corrected by now.  But the fact how subtle it was
and that it was indeed introduced into Linux is
telling.

Notice a similarity in spirit with transactional
semantics -- the ack must come only after
something happens for sure, but Linux didn't
carefully ensure it did indeed happen.

Since Linux aggressively positions itself as the
server platform, Linux folks smell blood in the
water and move ahead with kernel optimizations of
all sorts.  With some waters, some babies also get
thrown out.  

The point of my message is that it is important to
get reality-level code, but not at the price of
cutting corners in such ibscure ways that it takes
seven and a half gurus to understand what's going
on.  If Linux wants to run ahead of the old dogs,
which is happenning, it should pay more attention
to protocol quality, scientific discussion, and be
subject to appropriate criticism.  OK?

-- 
Cheers,
Alexy V. Khrabrov -- www.suffix.com -- braver@pobox.com


New Message Reply About this list Date view Thread view Subject view Author view Attachment view

This archive was generated by hypermail 2.1.2 : 03/04/05-01:47:35 AM Z CST