On Mon, Oct 15, 2012 at 7:09 PM, <philip_at_apache.org> wrote:
> Author: philip
> Date: Mon Oct 15 17:09:01 2012
> New Revision: 1398389
> URL: http://svn.apache.org/viewvc?rev=1398389&view=rev
> Enable SQLite exclusive locking for the command line client as this is
> a major performance gain for working copies on network disks. The
> libraries default to shared locking for backward compatibility, the
> command line client defaults to exclusive locking and a config setting
> allows the user to override the command line client.
Maybe this would be a good time to make an accurate description of
what this all means in terms of concurrency. Preferably in a way that
normal users understand, or at least application developers that might
embed svn libraries and such. What kinds of operations can be executed
concurrently (1) when there is no exclusive locking and (2) when
exclusive locking is enabled? Is there some simple underlying rule?
I remember from the final stages of 1.7 development that this was all
pretty fuzzy. It was clear that 1.7 was less parallellizable as 1.6
was, but precisely "how much" and "where" and "when", ... that was
much less clear, at least to me. All I remember are some examples of
things that couldn't be executed anymore in parallel as of 1.7. Like
not being able to run 'svn log <wcitem>' while an 'svn update' is
running . But I don't remember a hard and fast rule, an underlying
principle ... (I guess there is one, I just don't recall).
With this new "exclusive" mode it's probably quite clear (no
parallellism possible at all), but because of the fuzzyness of the
non-exclusive behavior this leaves me wondering: "which things does
this exclusive mode make impossible, which were still possible under
non-exclusive mode"? What does one lose by enabling exclusive mode?
Received on 2012-10-16 11:26:16 CEST