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

Re: New HTTP Protocol (was re: svn commit: r33365)

From: Ivan Zhakov <ivan_at_visualsvn.com>
Date: Thu, 2 Oct 2008 11:34:59 +0400

On Thu, Oct 2, 2008 at 11:04 AM, Justin Erenkrantz
<justin_at_erenkrantz.com> wrote:
> On Tue, Sep 30, 2008 at 2:22 PM, Ben Collins-Sussman
> <sussman_at_red-bean.com> wrote:
>> Would turn into a request like this:
>> GET /repos?cmd=rev-proplist&r=23
> I'm repeating a bit what Greg already commented in the docs, but yuck.
> This is a *very* ugly way to do this. Plus, you are killing off any
> way of doing caching by using query args. Any solution that we do
> should be very simple and scale with good HTTP proxy caches, IMO.
> A lot of the extra round-trips with DeltaV come from property-hell -
> splitting things up into multiple requests is a *good* thing - big,
> giant API calls are a disaster and should be avoided. Thinking that
> more 'REPORT' calls is the answer seems like we're going down the
> wrong path. Fine-grained and quick APIs should be our desire, IMO.
> But, the issue with properties is that it introduces a linear, ordered
> dependency between requests - this means that the GET for the data and
> the PROPFIND for the metadata have a relationship. If we could
> somehow better combine that into one request/response cycle, we'd
> simplify a *lot* of code.
> Also, using XML as a transport mechanism is just plain lame - as Greg
> said in the protocol docs, switching to protocol buffers or something
> like that would be a *huge* performance win. ra_serf pretty much only
> uses XML for meta-data, but it's still a PITA.
> By and large, my experience with ra_serf is that a lot of the
> intrinsic current performance bottlenecks is waiting for disk I/O due
> to crappiness inherent in libsvn_wc. Fixing up libsvn_wc to have a
> much higher throughput should enable us to see where things could be
> improved at the protocol level. So, it'll be a bit chicken and egg
> here with the wc work too.
Justin, I disagree with you.

I've tested that one small PROPFIND roundtrip costs at least 200ms
over WAN. PROPFIND requests very simple, so performance slow down
cannot be from xml stuff.
When doing simple operations like svn list Subversion perform about 8 PROPFINDs.

I really like idea to make http protocol perform one HTTP request for
one RA call. Our RA calls simple enough and already well designed, so
http requests will be simple as our RA calls.

Ivan Zhakov
VisualSVN Team
To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org
Received on 2008-10-02 09:35:16 CEST

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