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

Making FS and repos layer log API streamy

From: Stefan Fuhrmann <stefan2_at_apache.org>
Date: Sun, 31 Jan 2016 12:03:11 +0100

Hi there,

When the server needs to transmit the list of changed paths
in a revision, its memory usage is O(#changes), i.e. practically
unbound. The problems are:

* FS and repos API require a full collection of all changes
   Most consumers simply scan that data once. So, they can
   just as well work on a one change at a time basis as a
   callback.

* The data types are different, so we end up with two copies.
   A revised svn_fs_path_change_t with identical
   svn_repo_path_change3_t can fix this. Minor adjustments
   to the element data types further improve efficiency.

I've played with a revised version of svn_fs_paths_changed
and svn_repos_get_logs to use callbacks for the individual
path changes. Effectively, the FS layer can now pump the
info through the repos / authz filter into the RA layer.

I'll commit the changes to /trunk over the next couple of weeks,
mostly on weekends. There will be two-way conversion between
old and new APIs to facilitate regression testing. The old API will
get deprecated once all users have migrated.

-- Stefan^2.
Received on 2016-01-31 12:03:25 CET

This is an archived mail posted to the Subversion Dev mailing list.