[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Another working copy library

From: Malcolm Rowe <malcolm-svn-dev_at_farside.org.uk>
Date: 2007-01-17 14:08:10 CET

On Wed, Jan 17, 2007 at 03:32:33PM +0300, Ivan Zhakov wrote:
> AFAIR sqllite doesn't support NFS, because none of NFS supports
> *right* locking. Does it?
>

NFSv3 supports locking, v2 doesn't (though specific implementations may
vary: for most modern clients, the answer seems to be that "POSIX fcntl()
locks work, BSD flock() locks don't").

We already depend upon file locking in the FSFS implementation (for
transaction and commit serialisation). Interestingly, I notice that
libsvn_wc seems to assume that it can do file locking by creating a file
with O_CREAT|O_EXCL. That's unfortunate, since that doesn't work as a
locking mechanism on NFS.

So libsvn_wc is already 'broken' on NFS shared working copies. I'm not
sure to what extent introducing SQLite would make that more broken,
but that's probably a question for the SQLite people. (And I've always
thought that sharing working copies was a pretty odd thing to do; remote
working copies, fine, but shared ones? Weird. I'd have no problem
telling people that that's just not a supported arrangement).

What NFS normally does have problems with is write-ordering,
(client-server) cache coherency, the aforementioned O_EXCL 'problem'
and a generally inability to mmap() files. I'm not too sure of all the
details, though.

Regards,
Malcolm

  • application/pgp-signature attachment: stored
Received on Wed Jan 17 14:08:24 2007

This is an archived mail posted to the Subversion Dev mailing list.