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

Re: svn commit: r1615458 - /subversion/branches/authzperf/subversion/libsvn_repos/log.c

From: Branko Čibej <brane_at_wandisco.com>
Date: Mon, 04 Aug 2014 17:48:10 +0200

On 04.08.2014 16:30, Ivan Zhakov wrote:
> On 4 August 2014 17:43, Branko Čibej <brane_at_wandisco.com> wrote:
>> On 04.08.2014 14:22, Ivan Zhakov wrote:
>> On 4 August 2014 02:47, <stefan2_at_apache.org> wrote:
>> Author: stefan2
>> Date: Sun Aug 3 22:47:07 2014
>> New Revision: 1615458
>> URL: http://svn.apache.org/r1615458
>> Log:
>> On the authzperf branch: Speed up authz-aware 'svn log' by sorting the
>> paths before checking them. This lets the recent O(1) authz lookup
>> optimization for sibbling paths kick in.
>> * subversion/libsvn_repos/log.c
>> (check_changed_path): Factored out loop content of ...
>> (detect_changed): ... this. Use sorted iteration when applying authz.
>> Stefan,
>> Could you please confirm after that commit repository layer will do
>> more (sort changed path) assuming that particular authz check function
>> will work faster if calls will come in sorted order?
>> That's the general idea, yes; authz lookups should be MUCH faster with the
>> new in-memory representation, and the representation will work best with
>> in-order sequences of queries. Note that there is no semantic change for
>> existing authz files.
> I don't like such implicit coupling between layers for improving
> performance. It will be very fragile optimization and could break in
> future making performance worse than before.

Eh? How else do you propose to improve performance within a single
module? The authz support is completely private to libsvn_repos.

The purpose of the authzperf branch is not only to add wildcards to
authz rules, but to speed up log &co., operations that are heavily
affected by authz performance. It turns out that part of the fix is
inventing smarter strategies for lookups into authz info. These /have/
to somehow affect the implementation bits of libsvn_repos outside the
authz module, since otherwise they wouldn't be used.

Once more, all these connections are completely private to libsvn_repos;
there is no change in the any public API. Other than adding new rule
syntaxes to authz files that are currently invalid and therefore never used.

-- Brane

Branko Čibej | Director of Subversion
WANdisco | Realising the impossibilities of Big Data
e. brane_at_wandisco.com
Received on 2014-08-04 17:48:26 CEST

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.