Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id AC200200CD1 for ; Wed, 26 Jul 2017 13:21:22 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id AAE3C168AB5; Wed, 26 Jul 2017 11:21:22 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 04802168AB2 for ; Wed, 26 Jul 2017 13:21:21 +0200 (CEST) Received: (qmail 29891 invoked by uid 500); 26 Jul 2017 11:21:16 -0000 Mailing-List: contact dev-help@subversion.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list dev@subversion.apache.org Received: (qmail 29859 invoked by uid 99); 26 Jul 2017 11:21:12 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 26 Jul 2017 11:21:12 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id 711ABC1C2D; Wed, 26 Jul 2017 11:21:12 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 0.002 X-Spam-Level: X-Spam-Status: No, score=0.002 tagged_above=-999 required=6.31 tests=[UNPARSEABLE_RELAY=0.001, URIBL_BLOCKED=0.001] autolearn=disabled Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id 3wmPLZ2cZ1RQ; Wed, 26 Jul 2017 11:21:06 +0000 (UTC) Received: from einhorn-mail.in-berlin.de (einhorn-mail.in-berlin.de [217.197.80.20]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTPS id A64535F2A9; Wed, 26 Jul 2017 11:21:05 +0000 (UTC) X-Envelope-From: stsp@elego.de Received: from ted.stsp.name (ted.stsp.name [217.197.84.34]) by einhorn.in-berlin.de (8.14.4/8.14.4/Debian-8+deb8u2) with ESMTP id v6QBJKam017330 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 26 Jul 2017 13:19:21 +0200 Received: from localhost (ted.stsp.name [local]) by ted.stsp.name (OpenSMTPD) with ESMTPA id 77c52725; Wed, 26 Jul 2017 13:19:20 +0200 (CEST) Date: Wed, 26 Jul 2017 13:19:20 +0200 From: Stefan Sperling To: dev@subversion.apache.org Cc: Daniel Shahaf , commits@subversion.apache.org Subject: Re: svn commit: r1801940 - in /subversion/trunk: ./ notes/ subversion/include/ subversion/include/private/ subversion/libsvn_delta/ subversion/libsvn_fs_fs/ subversion/libsvn_subr/ subversion/tests/libsvn_delta/ subversion/tests/libsvn_subr/ Message-ID: <20170726111920.GU90677@ted.stsp.name> Mail-Followup-To: dev@subversion.apache.org, Daniel Shahaf , commits@subversion.apache.org References: <20170714111350.B07063A0F99@svn01-us-west.apache.org> <1500300013.520913.1043351984.67FF62A9@webmail.messagingengine.com> <20170726095410.GR90677@ted.stsp.name> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.8.0 (2017-02-23) archived-at: Wed, 26 Jul 2017 11:21:22 -0000 On Wed, Jul 26, 2017 at 01:18:00PM +0300, Evgeny Kotkov wrote: > Stefan Sperling writes: > > > Does mod_dav_svn really need an option for this? > > > > Can't lz4 (svndiff2) be negotiated as a mutual protocol capability of > > client and server? Why won't a simple logic such as the following work: > > > > If the client announces lz4 compression level 1 support, use it. > > Else, use zlib. > > The current state is that there are no additional options in mod_dav_svn, > and the "SVNCompression" option has just been discussed as an explicit > alternative to what we have now (but it also has a couple of potential > drawbacks, and I don't plan to implement it at this time). > > Currently, the negotiation scheme works similarly to what you have described. > If the server has "SVNCompressionLevel 1", and the client supports LZ4, then > it will be used. Otherwise, in case of older clients, they will be using zlib > compression with the corresponding compression level. > > Apart from this, I was willing to propose that we switch to LZ4 compression > by default for both mod_dav_svn and newly created FSFS repositories. That > is, by making "1" the default value of SVNCompressionLevel directive and > by making "lz4" the default value of the discussed "compression=" knob in > fsfs.conf. > > (I will take this to a separate thread once all the necessary things are > in place.) > > > Regards, > Evgeny Kotkov Sounds like we're headed in a good direction :-) I agree that 'compression-level = 1' -> lz4 makes sense if you know what to expect from lz4 vs. zlib. But honestly imagining myself giving a workshop for administrators and explaining it like that, I see people shake their heads in disbelief. It looks too much like an implementation detail leaked into the config interface. A compression=lz4/zlib knob would make a lot more sense to most people, with a corresponding subordinate default for compression-level (lz4: 1, zlib: 5). I strongly believe we should not require an admin to even look at fsfs.conf to enable lz4. Because if admins look at this file today, they will easily get overwhelmed with choices. I think we've been a bit too eager with adding knobs to fsfs.conf in general. Most people never tweak them, and if anyone asks I generally recommend to just leave them all at their defaults. In hindsight, I would say all these options have a questionable reason for existence and we should not have exposed them: fail-stop enable-rep-sharing enable-dir-deltification enable-props-deltification max-deltification-walk max-linear-deltification compression-level revprop-pack-size compress-packed-revprops block-size l2p-page-size p2l-page-size I mean, apart from Stefan2, which person on this planet *really* knows what *all* of these knobs do, why anyone would want to tweak which knob, and how they potentially interact? It would have been better to automatically adjust some of these values at run-time where possible, or decide on doing something one way instead of supporting several ways.