2003-03-17 14:40:02

by jlnance

[permalink] [raw]
Subject: NFS file consistency

Hello All,
I am trying to track down some file consistency problems I am seeing
and I want to make sure my assumptions about NFS are correct.
Say I have 2 NFS clients, machine A and machine B. Machine A does
an open/write/close on a file. After this machine B does an open/read on
the file. Is machine B guaranteed to read the same data that A wrote
or is there a delay between the time A closes the file and the time B
can expect to see valid data? Also if the file already existed before
A wrote it, and B had already read from it and closed it, does this
affect anything?

Thanks,

Jim


2003-03-17 14:49:42

by Trond Myklebust

[permalink] [raw]
Subject: Re: NFS file consistency

>>>>> " " == jlnance <[email protected]> writes:

> Hello All,
> I am trying to track down some file consistency problems I
> am seeing
> and I want to make sure my assumptions about NFS are correct.
> Say I have 2 NFS clients, machine A and machine B. Machine
> A does
> an open/write/close on a file. After this machine B does an
> open/read on the file. Is machine B guaranteed to read the
> same data that A wrote or is there a delay between the time A
> closes the file and the time B can expect to see valid data?

No delay should be necessary. Machine B should see the data that A
wrote.

> Also if the file already existed before A wrote it, and B had
> already read from it and closed it, does this affect anything?

Nope.

However the Linux 2.4.x NFS server has a known bug/feature that may
affect things: because the mtime only has a 1 second resolution,
changes that occur within < 1 second of one another may not cause
mtime to be updated. When this occurs, the NFS client has no way to
tell that the file has changed.
This limitation no longer exists in Linux 2.5.x...

Cheers,
Trond