On 02/14/2011 01:57 PM, Ivan Zhakov wrote:
> Hi,
>
> Currently ra_serf caches *all* DAV properties retrieved using PROPFIND
> in session pool. This was attempt to reduce number of PROPFIND
> requests. But current implementation has several problems:
> 1. Unlimited memory usage: current implementation stores all
> properties, so svn ls -R command can easily eat 150 mb of memory.
> 2. Very low cache hit due the fact that cache doesn't support caching
> "allprop" requests. For some operations there is no hits at all.
> 3. Current implementation caches properties that may change between
> requests, like URL to youngest revision.
>
> Of course these problems can be fixed, but I'm not sure that we need
> this code. Since in svn 1.7 we have HTTPv2 which doesn't use so many
> PROPFIND requests that we tried to reduce using DAV properties cache.
>
> So I'm propose just to remove DAV properties cache from ra_serf.
> Objections? Comments?
>
> PS: See attached patch in case you'd like test performance.
Ivan,
Thanks so much for looking so closely into ra_serf recently! It hadn't
occurred to me when implementing the HTTPv2 stuff that the prop cache might
become less useful as a result.
But what is the effect for older servers? Would it make sense keep the
cache logic, but conditionally use it only for non-HTTPv2 connections?
--
C. Michael Pilato <cmpilato_at_collab.net>
CollabNet <> www.collab.net <> Distributed Development On Demand
Received on 2011-02-14 20:15:04 CET