In [#5046], it was discovered that one of the sources of slow queries against the repo_commitrun table was getmore
operations against very large CommitRunDoc
records, which are almost entirely from SVN repos.
SVN commit histories are entirely linear, so the entire history ends up in a single CommitRunDoc
. This is slow and pointless.
Modify the SVN implementation to not create or use CommitRunDoc
s, instead leveraging the fact that the histories are inherently linear.
An alternate approach to alleviating the affect of these slow queries is to force them to run from a slave. That will prevent them from holding up other queries on the master. However, slaves may be slightly out of date, so we need to make sure we don't introduce race conditions or conflicts/clobberings.
allura:cj/5094
SVN log page needs to be faster for large repos
allura:cj/5094
Paging wasn't being applied correctly when generating the commit history for any type of repo.
Easiest way to test is on a sandbox with an up-to-date copy of production mongo; you can use cjohns-6049 if you like.