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

Re: 1.10 release notes: protocol changes, LZ4, etc.

From: Evgeny Kotkov <evgeny.kotkov_at_visualsvn.com>
Date: Fri, 2 Mar 2018 01:10:40 +0300

Julian Foad <julianfoad_at_apache.org> writes:

>> - On the server-side, SVNCompressionLevel 0 can be used to disable
>> compression altogether. The special value of SVNCompressionLevel 1 forces
>> the use of LZ4 compression for clients that support it. All other values
>> result in negotiating the use of zlib compression with the respective
>> compression level, unless the compression is disabled on the client.
>
> There's a small disagreement with the table there: all other values result
> in negotiating either zlib or LZ4.

Indeed. Perhaps, we could rephrase it like this?

  [...] All other values result in preferring zlib compression with the
  respective compression level. Note that the negotiated algorithm is still
  a subject to the client's configuration. For example, even if the server
  is configured to prefer zlib compression over LZ4, a client may still
  negotiate the use of LZ4 compression when its http-compression option
  is set to auto.

>> - On the client-side, setting http-compression to either yes or no will
>> disable or enable compression that is then negotiated based on the
>> server's
>> configuration. The default value of auto will result in preferring LZ4
>> compression over low latency networks and zlib compression otherwise.
>
> Can we link to the reference documentation for the client and server
> options, so the reader (me) can cross-check the definition and look for
> related settings?

At the time being, the documentation for these options is quite scarce and
doesn't dive into the details of which compression algorithm is negotiated
behind the scenes. The reasoning behind this was to avoid overwhelming
the users with technical and implementation details and to have a ground
for future extension by not promising too much. This makes me think that
linking to these docs from the release notes probably wouldn't be too useful:

  https://svn.apache.org/viewvc/subversion/trunk/subversion/mod_dav_svn/mod_dav_svn.c?view=markup&pathrev=1820778#l1392
  https://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/config_file.c?view=markup&pathrev=1820778#l1151

For the purpose of cross-checking the description, the following locations in
mod_dav_svn and ra_serf may prove useful:

  mod_dav_svn/repos.c:negotiate_encoding_prefs()
  libsvn_ra_serf/util.c:svn_ra_serf__setup_svndiff_accept_encoding()
  libsvn_ra_serf/commit.c:negotiate_put_encoding()

Thanks,
Evgeny Kotkov
Received on 2018-03-01 23:11:07 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.