--On Thursday, July 23, 2009 11:54:01 AM -0400 "Matt W. Benjamin" <[email protected]> wrote:

> 4) lack of write-atomicity entirely changes the meaning of DV in the
protocol

If you want read and write from different clients at the same time in
a
way that can produce inconsistencies you should use advisory locking.
Also without OSD an intermediate StoreData because of the cache
becoming
full may leed to an intermediate data version which from the
application's point of view is inconsistent.

I think I more agree with the "then use locking" response than with the
objection, but not unequivocally.  Tom's use of language here ("entirely
changes the meaning") appears to me to be an attempt to nail down a
meaning for DV that it never had--but I say this as someone who would
like to incorporate stronger, negotiated semantics in the AFS protocol.

It has always been the case that a particular DV refers to a specific version of the content of a vnode. Any operation which changes the data of a vnode also changes its DV at the same time (atomically), period. It is never possible for two different sets of bits to be represented by the same DV(*). This is very important, because it means that clients know that if the fileserver says that a vnode has a particular DV, and the client has data in its cache labelled with that DV, then the data is correct. Note that while the fileserver can inform a client that metadata in its cache is stale and must be refetched, _there is no way for the fileserver to invalidate cached data_. Existing clients depend on this property, and have done so since the beginning; it cannot be ignored.


-- Jeff
_______________________________________________
OpenAFS-devel mailing list
[email protected]
https://lists.openafs.org/mailman/listinfo/openafs-devel

Reply via email to