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

Exclusive locking: design doc started.

From: Ben Collins-Sussman <sussman_at_collab.net>
Date: 2004-05-24 20:13:51 CEST

Okay, guys. Let's discuss the questions in this doc and start expanding
our design.

> Added: trunk/notes/locking-design.txt
> ==============================================================================
> --- (empty file)
> +++ trunk/notes/locking-design.txt Mon May 24 12:59:48 2004
> @@ -0,0 +1,46 @@
> +
> + A design for locking.
> + ---------------------
> + (...in progress, based on ongoing discussions on dev@ list.
> + Please hack on this.)
> +
> +
> +A "lock" means a (possibly shared) write-lock on a file or directory.
> +When a file or directory is locked, only the lock-holder(s) may commit
> +a change to it.
> +
> + - In the case of files, "commit a change" means changing a file's
> + text or props, deleting it, or moving it.
> +
> + - In the case of directories, "commit a change" means changing the
> + directory's props or entries-list, deleting it, or moving it.
> + This also applies recursively, to all child directories & files.
> +
> +
> +
> +Repository Implementation:
> +--------------------------
> +
> +* Implement in libsvn_repos, not libsvn_fs. Just like the hooks
> + feature, locking is an external system overlaid on top of a
> + versioning filesystem.
> +
> + - Create new pre- and post- lock/unlock commit hooks.
> +
> + - Wrap all of the "write" fs functions with new svn_repos.h
> + functions. Make everything call these.
> +
> + (*** It might be easier to wrap *all* fs functions -- both
> + read and write -- because then we'd open the door to
> + implementing 'read hooks'.)
> +
> +* Locks table
> +
> + How should this be implemented? As a separate BDB table managed by
> + libsvn_repos? That would certainly scale, but then it might create
> + NFS problems, etc. Another idea is to use an XML file (parsed once
> + and stored in the svn_repos_t), or even a human-editable INI file,
> + like our other configs. This last option might be very friendly
> + for admins who want to peruse and/or hand-tweak locks.
> +

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Mon May 24 20:18:47 2004

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.