You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Kenneth Porter <sh...@sewingwitch.com> on 2008/07/31 17:52:59 UTC

ra_serf in Windows binaries

Is ra_serf compiled into the binaries provided by tigris? I just pulled 
down 1.5.0 to try that but don't know how to tell if the feature is there.

I found instructions to enable it here:

<http://svn.collab.net/repos/svn/trunk/subversion/libsvn_ra_serf/README>

> As Neon is currently Subversion's default RA DAV layer, you also need
> to add "http-library = serf" to your ~/.subversion/servers file to
> choose ra_serf at runtime.


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

Re: ra_serf in Windows binaries

Posted by sv...@mobsol.be.
Quoting Mark Phippard <ma...@gmail.com>:

> On Thu, Jul 31, 2008 at 4:26 PM, Kenneth Porter <sh...@sewingwitch.com>
> wrote:
> > --On Thursday, July 31, 2008 1:55 PM -0400 Mark Phippard
> > <ma...@gmail.com> wrote:
> >
> >> Just run svn --version.  It tells you everything you have available.
> >
> > Thanks. It looks like the 1.5.0 binaries available at this URL lack
> ra_serf.
> > I'd like to request that the 1.5.1 ones get serf support compiled in. (It's
> > my understanding that serf performs faster than neon, so I'd like to try
> > that out.)
>
> The CollabNet binaries include Serf.
>
> Unfortunately, you heard wrong.  Serf is not faster.  It's goal is to
> get "close enough" in speed to Neon to be a good alternative.
>

Some use cases are dramatically faster over serf than over neon. My preferred
example is svnsync, which was partly rewritten in 1.5 to take advantage of the
pipelining feature of ra_serf. Result: svnsync 1.5 is more than 3 times faster
over ra_serf than over ra_neon.

Lieven


----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.


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

Re: ra_serf in Windows binaries

Posted by Justin Erenkrantz <ju...@erenkrantz.com>.
On Thu, Jul 31, 2008 at 4:40 PM, Mark Phippard <ma...@gmail.com> wrote:
> I thought there was a doc in the repos somewhere that explained some
> of the overall design goals.  I wanted to link to that but could not
> find it.  Am I just thinking of one of your posts to dev@?

Probably embedded within some posts to dev@.  =)

> I was going to mention the multiple requests but then was not sure how
> much that and pipelining were the same.  So thanks for clarifying.

Pipelining is sending a request on the same HTTP connection without
waiting for the reply, whereas multiple connections is well...you can
guess.  =P  -- justin

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

Re: ra_serf in Windows binaries

Posted by Mark Phippard <ma...@gmail.com>.
On Thu, Jul 31, 2008 at 7:36 PM, Justin Erenkrantz
<ju...@erenkrantz.com> wrote:
> On Thu, Jul 31, 2008 at 4:25 PM, Mark Phippard <ma...@gmail.com> wrote:
>> Serf lacks a lot of the advanced features that Neon has such as SSPI
>> authentication, possibly client certs, support for different proxies
>> etc.
>
> ra_serf definitely supports SSL client certs and SSPI/NTLM.  (ra_neon
> does kerberos and Digest auth, but ra_serf doesn't.)
>
> The only major bug that I don't really care to fix is that some busted
> HTTP/1.0 proxies (such as old versions of Squid) don't like seeing
> Transfer-Encoding: chunked HTTP/1.1 requests.  Though someone seems to
> want to fix that on serf-dev@.  (More power to 'em.)
>
> Besides pipelining, ra_serf uses multiple HTTP connections for update
> which can help dramatically in some cases.  (Especially when the other
> server is beefy enough to truly handle concurrent requests.)  --

Thanks Justin.

I thought there was a doc in the repos somewhere that explained some
of the overall design goals.  I wanted to link to that but could not
find it.  Am I just thinking of one of your posts to dev@?

I was going to mention the multiple requests but then was not sure how
much that and pipelining were the same.  So thanks for clarifying.

-- 
Thanks

Mark Phippard
http://markphip.blogspot.com/

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

Re: ra_serf in Windows binaries

Posted by Mark Phippard <ma...@gmail.com>.
On Fri, Aug 1, 2008 at 7:36 AM, Kenneth Porter <sh...@sewingwitch.com> wrote:
> --On Thursday, July 31, 2008 4:36 PM -0700 Justin Erenkrantz
> <ju...@erenkrantz.com> wrote:
>
>> Besides pipelining, ra_serf uses multiple HTTP connections for update
>> which can help dramatically in some cases.  (Especially when the other
>> server is beefy enough to truly handle concurrent requests.)
>
> Is it sufficient for the client and server to be multi-core, or does this
> require the different requests to hit different proxies?

I'd say it is probably more about how well the server can saturate the
network available to it.  Consider that virtually all web browsers use
both of these techniques too.  So it is nothing new for Apache in
general to handle.

> What actually takes most of the time during a checkout or a commit? Those
> are the operations that feel slow.

Checkout is the slowest operation.  The working copy adds a lot of
overhead to that operation.  I find commit in general to be quite
fast.  Crawling a large working copy can be slow.  Committing certain
types of large binaries can be slower than it needs to be.

-- 
Thanks

Mark Phippard
http://markphip.blogspot.com/

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

Re: ra_serf in Windows binaries

Posted by Kenneth Porter <sh...@sewingwitch.com>.
--On Thursday, July 31, 2008 4:36 PM -0700 Justin Erenkrantz 
<ju...@erenkrantz.com> wrote:

> Besides pipelining, ra_serf uses multiple HTTP connections for update
> which can help dramatically in some cases.  (Especially when the other
> server is beefy enough to truly handle concurrent requests.)

Is it sufficient for the client and server to be multi-core, or does this 
require the different requests to hit different proxies?

What actually takes most of the time during a checkout or a commit? Those 
are the operations that feel slow.



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

Re: ra_serf in Windows binaries

Posted by Justin Erenkrantz <ju...@erenkrantz.com>.
On Thu, Jul 31, 2008 at 4:25 PM, Mark Phippard <ma...@gmail.com> wrote:
> Serf lacks a lot of the advanced features that Neon has such as SSPI
> authentication, possibly client certs, support for different proxies
> etc.

ra_serf definitely supports SSL client certs and SSPI/NTLM.  (ra_neon
does kerberos and Digest auth, but ra_serf doesn't.)

The only major bug that I don't really care to fix is that some busted
HTTP/1.0 proxies (such as old versions of Squid) don't like seeing
Transfer-Encoding: chunked HTTP/1.1 requests.  Though someone seems to
want to fix that on serf-dev@.  (More power to 'em.)

Besides pipelining, ra_serf uses multiple HTTP connections for update
which can help dramatically in some cases.  (Especially when the other
server is beefy enough to truly handle concurrent requests.)  --
justin

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

Re: ra_serf in Windows binaries

Posted by Mark Phippard <ma...@gmail.com>.
On Thu, Jul 31, 2008 at 7:01 PM, Kenneth Porter <sh...@sewingwitch.com> wrote:
> --On Thursday, July 31, 2008 6:23 PM -0400 Mark Phippard
> <ma...@gmail.com> wrote:
>
>> Unfortunately, you heard wrong.  Serf is not faster.  It's goal is to
>> get "close enough" in speed to Neon to be a good alternative.
>
> So what's the point of ever using it? What makes it preferable to Neon?
>
> There was some indication in stuff I'd read that it does pipelined requests,
> which seems like it would make things somewhat faster.

It does use pipelining, that is one of the ways it gets performance
near Neon.  The difference is that if you are checking out 100 files,
with Serf that is 100 GET requests and with Neon it is a single custom
REPORT request.

Serf is Apache license vs. LGPL for Neon.  It is also written using
APR like the rest of Subversion and Apache.  So it in theory makes it
easier for the developers to hack on.

I think the caching was a big design point.  Take a large repository
like the Apache repos.  In theory they can load-balance some Squid
cache servers in front of their repository and off-load a huge amount
of the work to the cache servers.  You cannot do this with Neon.  So
overall performance would likely become better.

Serf lacks a lot of the advanced features that Neon has such as SSPI
authentication, possibly client certs, support for different proxies
etc.

Serf is probably stable enough to use regularly, but it is not without bugs.

-- 
Thanks

Mark Phippard
http://markphip.blogspot.com/

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

Re: ra_serf in Windows binaries

Posted by Kenneth Porter <sh...@sewingwitch.com>.
--On Thursday, July 31, 2008 6:23 PM -0400 Mark Phippard 
<ma...@gmail.com> wrote:

> Unfortunately, you heard wrong.  Serf is not faster.  It's goal is to
> get "close enough" in speed to Neon to be a good alternative.

So what's the point of ever using it? What makes it preferable to Neon?

There was some indication in stuff I'd read that it does pipelined 
requests, which seems like it would make things somewhat faster.



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

Re: ra_serf in Windows binaries

Posted by Mark Phippard <ma...@gmail.com>.
On Thu, Jul 31, 2008 at 4:26 PM, Kenneth Porter <sh...@sewingwitch.com> wrote:
> --On Thursday, July 31, 2008 1:55 PM -0400 Mark Phippard
> <ma...@gmail.com> wrote:
>
>> Just run svn --version.  It tells you everything you have available.
>
> Thanks. It looks like the 1.5.0 binaries available at this URL lack ra_serf.
> I'd like to request that the 1.5.1 ones get serf support compiled in. (It's
> my understanding that serf performs faster than neon, so I'd like to try
> that out.)

The CollabNet binaries include Serf.

Unfortunately, you heard wrong.  Serf is not faster.  It's goal is to
get "close enough" in speed to Neon to be a good alternative.

Serf does use a different architecture (lots of plain GET requests)
that could theoretically provide performance benefits if you go
through a caching proxy server (and other users have already done
similar requests to prime the cache).

-- 
Thanks

Mark Phippard
http://markphip.blogspot.com/

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

Re: ra_serf in Windows binaries

Posted by Kenneth Porter <sh...@sewingwitch.com>.
--On Thursday, July 31, 2008 1:55 PM -0400 Mark Phippard 
<ma...@gmail.com> wrote:

> Just run svn --version.  It tells you everything you have available.

Thanks. It looks like the 1.5.0 binaries available at this URL lack 
ra_serf. I'd like to request that the 1.5.1 ones get serf support compiled 
in. (It's my understanding that serf performs faster than neon, so I'd like 
to try that out.)

<http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=8100>

> C:\>svn --version
> svn, version 1.5.0 (r31699)
>    compiled Jun 20 2008, 22:11:29
>
> Copyright (C) 2000-2008 CollabNet.
> Subversion is open source software, see http://subversion.tigris.org/
> This product includes software developed by CollabNet
> (http://www.Collab.Net/).
>
> The following repository access (RA) modules are available:
>
> * ra_neon : Module for accessing a repository via WebDAV protocol using
> Neon.   - handles 'http' scheme
>   - handles 'https' scheme
> * ra_svn : Module for accessing a repository using the svn network
> protocol.   - with Cyrus SASL authentication
>   - handles 'svn' scheme
> * ra_local : Module for accessing a repository on local disk.
>   - handles 'file' scheme


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

Re: ra_serf in Windows binaries

Posted by Mark Phippard <ma...@gmail.com>.
On Thu, Jul 31, 2008 at 1:52 PM, Kenneth Porter <sh...@sewingwitch.com> wrote:
> Is ra_serf compiled into the binaries provided by tigris? I just pulled down
> 1.5.0 to try that but don't know how to tell if the feature is there.

Just run svn --version.  It tells you everything you have available.
This is an example from OSX:

$ svn --version
svn, version 1.5.1 (r32289)
   compiled Jul 25 2008, 12:47:20

Copyright (C) 2000-2008 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).

The following repository access (RA) modules are available:

* ra_neon : Module for accessing a repository via WebDAV protocol using Neon.
  - handles 'http' scheme
  - handles 'https' scheme
* ra_svn : Module for accessing a repository using the svn network protocol.
  - with Cyrus SASL authentication
  - handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
  - handles 'file' scheme
* ra_serf : Module for accessing a repository via WebDAV protocol using serf.
  - handles 'http' scheme
  - handles 'https' scheme


-- 
Thanks

Mark Phippard
http://markphip.blogspot.com/

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