Stefan Fuhrmann <stefan.fuhrm...@wandisco.com> writes:

> The solution seems to be to simply destroy the txn_dir_cache
> instance at the begin of the commit. That comes at some extra
> cost but that is still proportional to the size of the commit.

There would be no cost to mod_dav_svn since the txn_dir_cache is already
NULL when handling MERGE.  There would be a cost to svn:// and file://.

> The only sequence that would get us into real trouble is
>
>   thread / process A: modify txn
>   thread / process B: modify txn
>   thread / process A: modify txn (via same fs_t as before)
>
> Since A won't re-read the directory contents and may therefore
> return "path not found" errors or miss earlier modifications to a
> given node / sub-tree and use a new copy for the following mods.
> But I guess we don't support that sequence at all.

We don't support it right now because it doesn't work, but do we want it
to work?  fs-test 44 is the new test I wrote: it FAILS for FSFS but is a
PASS for BDB and FSX.  It is also a PASS for 1.6 FSFS.

-- 
Philip Martin | Subversion Committer
WANdisco // *Non-Stop Data*

Reply via email to