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
>> 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.
>> 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.
Branko Čibej | Director of Subversion
WANdisco | Realising the impossibilities of Big Data
Received on 2014-08-04 17:48:26 CEST