Ben Reser <b...@reser.org> writes:

> On Thu, Aug 9, 2012 at 12:51 PM, Johan Corveleyn <jcor...@gmail.com> wrote:
>> On Thu, Aug 9, 2012 at 10:06 AM, Philip Martin
>> <philip.mar...@wandisco.com> wrote:
>>> The freeze-lock is similar to a write-lock: it exists for the duration
>>> of the process that creates it.  For scripts my trial freeze-program has
>>> an interface like:
>>>
>>>    freeze-program repo [repo ...] -c command [arg ...]
>>>
>>> which freezes a number of repositories and then runs the given command.
>>> When the freeze-program exits the repositories are unfrozen.
>
> I'd think a process like this would be more desirable:
> freeze && backup
> unfreeze

I don't know how that would be implemented--I think it would need a new
repository format with some new locking mechanism.  My proposal is
simply to take the existing write-locks which don't persist beyond the
process lifetime.

>> What does a frozen repository actually look like for clients? I assume
>> only write operations are affected. What happens to a commit or a
>> propset or a revprop change?

Anything that attempts to write will block either until the freeze is
over or some timeout occurs depending on how the writer has been
designed.

For a live repository with commits going on the command

   freeze-program repository -c command

causes attempts to take new write-locks to block, waits until existing
write-locks are released, and then runs the command with the repository
frozen.  When the command finishes the freeze-program exits which
unfreezes the repository thus allowing the blocked write-locks to
proceed.

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

Reply via email to