From owner-freebsd-hackers Mon Mar 2 08:52:35 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id IAA07224 for freebsd-hackers-outgoing; Mon, 2 Mar 1998 08:52:35 -0800 (PST) (envelope-from owner-freebsd-hackers@FreeBSD.ORG) Received: from fledge.watson.org (root@FLEDGE.RES.CMU.EDU [128.2.91.116]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id IAA07219 for ; Mon, 2 Mar 1998 08:52:31 -0800 (PST) (envelope-from robert@cyrus.watson.org) Received: from trojanhorse.pr.watson.org (trojanhorse.pr.watson.org [192.0.2.10]) by fledge.watson.org (8.8.8/8.6.10) with SMTP id LAA18208; Mon, 2 Mar 1998 11:51:53 -0500 (EST) Date: Mon, 2 Mar 1998 11:52:57 -0500 (EST) From: Robert Watson X-Sender: robert@trojanhorse.pr.watson.org Reply-To: Robert Watson To: Jamie Bowden cc: Terry Lambert , hackers@FreeBSD.ORG Subject: Re: help - make world fails In-Reply-To: <199803021430.JAA15071@gatekeeper.itribe.net> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG On Mon, 2 Mar 1998, Jamie Bowden wrote: > > o NFS client locks need to be remembered locally so that > > they can be reasserted in case of a server crash. This > > is my way of saving the state. > > Isn't NFS stateless. Sonetimes I wonder what Sun was thinking trying > implement a stateless design over a network. Sandberg, et. al, "Design and Implementation of the Sun Network Filesystem", ~1985? "The NFS uses a stateless protocol. The parameters to each procedure call contain all of the information necessary to complete the call, and the server does not keep track of any past requests. This makes crash recovery very easy; when a server crashes, the client resends NFS requests until a response is received, and the server does no crash recovery at all..." "...Using a stateless protocol allows us to avoid complex crash recovery and simplifies the protocol... In fact the client can not tell the difference between a server that has crashed and recovered, and a server that is slow." This said, of course, my clients still crash when the server goes down and something happens on the client (i.e., a call to mount, df, quota, or something :). The problem with stateless is, of course, that not all concepts associated with file system access are representable in a stateless way -- such as locking. Coda, for example, retains a lot of state with regards to cache information on both client and server side. The client retains the file (:)), and the server forms a callback so that it can notify the client on a change. Coda does not have a concept of locking, though, as it was determined (:O) that most of the file activity of interest involved sequential one-time read followed by sequential one-time write, no shared access, etc. This is true in the general case, but resoundingly not true for the specific cases where people try to use locking :). I'd love to see someone write a simple lock manager for Coda to allow exclusive advisory locking support (posix-style) based on some kind of distributed quorum database or something. Robert N Watson Carnegie Mellon University http://www.cmu.edu/ SafePort Network Services http://www.safeport.com/ robert@fledge.watson.org http://www.watson.org/~robert/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message