From: john@iastate.edu (John Hascall)
Subject: Re: Slow writes to Ultrix 4.3 NFS server
Keywords: NFS server performance
Organization: Iowa State University, Ames, IA
Date: Mon, 16 Nov 1992 03:04:12 GMT

attribution-long-gone writes:
}}>}I manage an SGI 4D/340 running IRIX 4.0.1 and a DECstation 5000/125 running
}}>}Ultrix 4.3.

john@iastate.edu (John Hascall) writes:
>Anyway, several vendors' NFS servers mis-implement the standard (on purpose).
>The NFS standard requires that writes be done "synchronously".

olson@anchor.esd.sgi.com (Dave Olson) writes:
}Well, not actually.  It requires that it be written to 'stable storage'.
}There have been many hundreds of hours spent on arguing this point.  SGI
}feels that our uptime is good enough that by the time it makes it to RAM
}on the server, it is in 'stable storage'.  We also provide an option
}to do the 'synchronous to disk' version, which many people prefer.

Here's what the standard [RFC1094] says:
 All of the procedures in the NFS protocol are assumed to be synchronous.  When
 a procedure returns to the client, the client can assume that the operation
 has completed and any data associated with the request is now on stable
 storage.  For example, a client WRITE request may cause the server to update
 data blocks, filesystem information blocks (such as indirect blocks), and file
 attribute information (size and modify times).  When the WRITE returns to the
 client, it can assume that the write is safe, even in case of a server crash...
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

}No worse than writes on your local disk, since they are of course
}buffered also.

Yes, but you have a pretty good clue when your local machine crashes, it is
possible to have a server reboot and the for the client to not know this.

}There is no 'standard' in this sense for NFS, only implementations, or
}such is my understanding from all the arguments/discussions.

RFC1094  NFS: Network File System Protocol specification. Sun Microsystems, Inc.
         1989 March; 27 p.

}Again, no difference between NFS and local disk, in this case, so why make
}such a big deal about it.  The only case I can see any justification for
}the argument is if you have a system set up purely as an NFS server, similar
}to Auspex (that is, where you don't have any local disk writes to speak of).
}In that case, I would definitely expect a UPS, or sync writes.  However,
}you explictly mention workstations, and for workstations, you will have
}far more local writes than you will NFS writes, so the argument seems rather
}silly.

I don't think this is universally true by any means.  For example, we have
a number of SGI labs (not setup by me!) on campus with N machines (N typically
15-25) which all mount each other's disks for home directories, so there is
only a 1/Nth chance your home dir is local.

I am, of course, playing the devil's advocate here -- we do run asynch writes
on our NFS servers -- but, at least we went into it with our eyes wide open.

John
-- 
John Hascall                   ``An ill-chosen word is the fool's messenger.''
Systems Software Engineer
Project Vincent
Iowa State University Computation Center  +  Ames, IA  50011  +  515/294-9551
Newsgroups: comp.unix.ultrix