[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: [Proposal] Remove DAV properties cache in ra_serf

From: Hyrum K Wright <hyrum_at_hyrumwright.org>
Date: Tue, 15 Feb 2011 10:51:43 +0000

On Tue, Feb 15, 2011 at 10:47 AM, Bert Huijben <bert_at_qqmail.nl> wrote:
>
>
>> -----Original Message-----
>> From: Hyrum K Wright [mailto:hyrum_at_hyrumwright.org]
>> Sent: dinsdag 15 februari 2011 11:44
>> To: Greg Stein
>> Cc: C. Michael Pilato; Ivan Zhakov; dev_at_subversion.apache.org
>> Subject: Re: [Proposal] Remove DAV properties cache in ra_serf
>>
>> On Tue, Feb 15, 2011 at 6:42 AM, Greg Stein <gstein_at_gmail.com> wrote:
>> > On Mon, Feb 14, 2011 at 14:14, C. Michael Pilato <cmpilato_at_collab.net>
>> wrote:
>> >> 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?
>> >
>> > Note that removing the cache will not *break* the code. It simply
>> > makes operation a bit slower.
>> >
>> > "upgrade your server"
>> >
>> > Given that we can simplify the client (remove caching), and given that
>> > we can avoid unbounded memory usage, and that we don't really need the
>> > cache... it seems like a win.
>>
>> How far can we go with this?  If we're not using cached DAV properties
>> with ra_serf, and ra_serf is the default in 1.7, does it make sense to
>> remove support for them from the 1.7 working copy?  It shouldn't be
>> too difficult, and would tighten libsvn_wc up a bit.
>
> This is about a different set of dav properties.
> The working copy doesn't cache the HEAD revision for us or 'svn update'
> would always be instantaneous ;-)

Ah, yes. Thanks for the clarification. (We overload the work
properties much too much.)

-Hyrum
Received on 2011-02-15 11:52:21 CET

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.