"C. Michael Pilato" <cmpil...@collab.net> writes:

> On 08/08/2012 07:38 AM, Philip Martin wrote:
>> I've been asked about using operating system snapshots to make backups
>> of live repositories.  These could be filesytem snapshots like ZFS or
>> FreeBSD's UFS2, or block level snapshots like Linux's LVM, or maybe even
>> a Windows shadow copy.  The reasons for using snapshots, rather than
>> "svnadmin hotcopy", are that it's a better fit with the overall backup
>> strategy or that it is faster or requires less disk space or less IO.
>> This has also been discussed on the mailing lists, e.g.
>> http://svn.haxx.se/users/archive-2012-02/0233.shtml
>> As far as I know the snapshot method should work provided there are no
>> bugs in Subversion or the snapshot code but it would be good to have
>> more confidence that it works.
>> 
>> One of our customers asked about locking the FSFS write-lock file before
>> taking the snapshot as this would halt writes and make the repository
>> quiescent.  It's certainly possible to do it, I wrote a program that
>> calls the private API svn_fs_fs__with_write_lock, but calling a private
>> API is a hack and I need to lock the rep-cache as well.
>> 
>> So I was wondering whether we should introduce a public API to do this
>> properly either at the svn_fs_ or svn_repos_ level.  For FSFS this would
>> stop writes while allowing reads.  A BDB implementation would probably
>> stop reads as well.
>
> This seems reasonable.  I can envision the likes of an
> svn_fs_freeze()/svn_fs_unfreeze() API pair, with svn_repos_* flavors thereof
> for adding hook support.

I had not considered hook support.  Would that be pre-freeze and
post-unfreeze hooks?  Or something (not sure what) to do with the
existing hooks?

A _freeze/_unfreeze API would work but a callback interface like
svn_fs_fs__with_write_lock (_with_freeze or _frozen) means that
repository is unfrozen automatically even if the callback fails, so no
dangling frozen repositories.  It practice it makes little difference
since the main user would be svnadmin, or a imilar program, that is
short lived and will unfreeze on exit.

-- 
Certified & Supported Apache Subversion Downloads:
http://www.wandisco.com/subversion/download

Reply via email to