You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Branko Čibej <br...@wandisco.com> on 2014/08/20 14:30:41 UTC

Re: [RFC] Revision property caching

[Note: I'd like to split this into two threads, one about revprop
caching and another about named atomics]

On 20.08.2014 13:21, Evgeny Kotkov wrote:
> We (Sergey Raevskiy <se...@visualsvn.com> and I) had some time to
> examine the revision property caching feature, and there are some conclusions
> that we would like to share.  In brief, there are certain conditions when this
> feature can actually *wreak havoc* in terms of the repository consistency and
> possible corruptions.  This applies to both Subversion trunk@1618912 and to
> the released Subversion 1.8.10.

[...]

I haven't looked at the implementation, but if your description is
correct, then we're definitely in trouble.

I would have expected that the unversioned-metadata (i.e., currently
only revprop) generation would always be updated regardless of cache
settings, and never be cached. I presume changing the implementation to
behave this way would fix the problem?

And by all means, do commit your failing test case.

-- Brane


-- 
Branko Čibej | Director of Subversion
WANdisco | Realising the impossibilities of Big Data
e. brane@wandisco.com

Re: [RFC] Revision property caching

Posted by Evgeny Kotkov <ev...@visualsvn.com>.
> [...]
>
> I haven't looked at the implementation, but if your description is correct,
> then we're definitely in trouble.
>
> I would have expected that the unversioned-metadata (i.e., currently only
> revprop) generation would always be updated regardless of cache settings,
> and never be cached. I presume changing the implementation to behave this
> way would fix the problem?

If you mean that we could entirely stop sharing the revprop generation across
multiple processes, it would probably work.

However, I am not entirely sure what was the reasoning behind that kind of
sharing.  If this shared memory thing was an attempt to get rid of the file
parsing overhead, then I would say it is a good idea to choose correctness
in favor of an optimization that breaks things in half of the cases.  But
there might be more to it.

> And by all means, do commit your failing test case.

Done in r1619105.


Regards,
Evgeny Kotkov