Skip to content
This repository has been archived by the owner on Aug 14, 2023. It is now read-only.

Performance improvements for Subversion support #10

Open
tashoyan opened this issue Sep 14, 2017 · 1 comment
Open

Performance improvements for Subversion support #10

tashoyan opened this issue Sep 14, 2017 · 1 comment

Comments

@tashoyan
Copy link
Contributor

Subversion network operations are much slower than Git local queries. The duration of a Subversion operation is proportional to the amount of the data to transfer from the server. In other words, it is proportional to the length of the queried time interval. The idea of improvement is to split long intervals to shorter ones and run queries against sub-intervals in parallel.
For example, instead of running this command:
svn log --diff -r {2016-09-15}:{2017-09-14}
run these two commands in parallel:
svn log --diff -r {2016-09-15}:{2017-03-14}
svn log --diff -r {2017-03-15}:{2017-09-14}

The degree of parallelism is defined by the server capability. Usually servers limit the number of parallel connections from the same client. Hence user should have the ability to specify the desired level of parallelism as a command line argument. The program should group Subversion repositories against their servers and preserve the desired parallelism level when querying each server.

@mslinn
Copy link
Owner

mslinn commented Sep 16, 2017

Sounds like there should be a default parallelism, and a command line switch to specify parallelism. Alternatively, is it reasonable to employ a calibration phase at startup to test the server parallelism capability? See https://en.m.wikipedia.org/wiki/TCP_congestion_control#Slow_start

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants