[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: Julian Foad <julianfoad_at_apache.org>
Date: Fri, 2 Mar 2018 16:07:18 +0000

Evgeny Kotkov wrote:
> 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.

+1.

(Nit: English idiom is "[is still] subject to".)

>>> - 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.

- Julian
Received on 2018-03-02 17:07:22 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.