You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Kazutoshi Satoda <k_...@f2.dion.ne.jp> on 2006/02/17 00:10:05 UTC

[PATCH] Issue 2151: 'svn ls' is slow over ra_dav (r3)

Hi.

This is a revised patch for issue 2151 that speeds up 'svn ls' over
ra_dav. This is based on Jean-Marc Godbout's one(r2) for trunk@15946
and updated to trunk@18486 resolving some conflicts.
See http://svn.haxx.se/dev/archive-2005-09/0009.shtml

In my easy test with a directory that contains 800 files, this patch
improved 'svn ls' speed very much. Actually, from 1m~1m30s to 5s~30s.

I strongly wish that this patch is applied to 1.4.

Following log message is almost same, except removing dirent_props[]
that is no longer used.

[[[
Fix for issue 2151 "'svn ls' is slow over ra_dav"

This patch implements a solution to issue 2151.
We now only request the needed props in the PROPFIND
for server listings. 'svn ls' is now noticably faster.
In most cases 'ls' takes about half the time and half
the bandwidth - In some case even better results.

For backward compatibility, before doing the long PROPFIND
we make another simpler PROPFIND to see if the server
supports the new type of request (supports the
deadprop-count prop). If it does we use the new scheme
and performance is improved - If not then we use the old
scheme and the slowness persists.

   To summarise: only patched servers and patched clients
have improved speed. Mismatched configurations (old client
or server) are not improved but still work. Regular dav
clients are still slow.

Patch by: Jean-Marc Godbout <je...@computrad.com>

Suggested by: Erik Scrafford <er...@scrafford.org>
Ben Collins-Sussman <su...@collab.net>
Everyone else who contributed to issue 2151


* subversion/mod_dav_svn/liveprops.c
(SVN_PROPID_deadprop_count): Added a PROPID to support the new prop
(dav_svn_props[]): Added the deadprop-count prop to the list of
supported props.
(dav_svn_insert_prop): Returns the number of deadprops
found in the fs for that file.

   * subversion/libsvn_ra_dav/ra_dav.h
(SVN_RA_DAV__PROP_DEADPROP_COUNT): Added the prop name for deadprop
(ELEM_deadprop_count): Added the prop to the list of props

* subversion/libsvn_ra_dav/props.c
(elem_definition, propfind_elements): Added ELEM_deadprop_count
to the list of propfind props

* subversion/libsvn_ra_dav/fetch.c
(deadprop_count_support_props[]): New array, list of props to
get in a root PROPFIND
(svn_ra_dav__get_dir): check if server supports 'deadprop-count',
and if so, request fewer properties
]]]

--
k_satoda


Re: [PATCH] Issue 2151: 'svn ls' is slow over ra_dav (r3)

Posted by Kazutoshi Satoda <k_...@f2.dion.ne.jp>.
> Committed in r18513, with a few minor formatting tweaks.  Thanks!

Thank you for committing.

Even with previous patch, I think the issue 2151 is still open.
I will continue some working.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: [PATCH] Issue 2151: 'svn ls' is slow over ra_dav (r3)

Posted by Garrett Rooney <ro...@electricjellyfish.net>.
On 2/16/06, Kazutoshi Satoda <k_...@f2.dion.ne.jp> wrote:
> Hi.
>
> This is a revised patch for issue 2151 that speeds up 'svn ls' over
> ra_dav. This is based on Jean-Marc Godbout's one(r2) for trunk@15946
> and updated to trunk@18486 resolving some conflicts.
> See http://svn.haxx.se/dev/archive-2005-09/0009.shtml
>
> In my easy test with a directory that contains 800 files, this patch
> improved 'svn ls' speed very much. Actually, from 1m~1m30s to 5s~30s.
>
> I strongly wish that this patch is applied to 1.4.
>
> Following log message is almost same, except removing dirent_props[]
> that is no longer used.

Committed in r18513, with a few minor formatting tweaks.  Thanks!

-garrett

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org