Update: have added timings for N=100,000 (or thereabouts), which equates to 87,000 or so open issues.
Roundup 0.7 includes some new optimisations, specifically automatic generation of a number of table indexes in the RDBMS backends.
I've added a script "tools/load_tracker.py" which loads a tracker with N issues and N/100 users. Random distribution of priorities, statuses and assignetos. Approximately 85% of issues are open (ie. 17 in 20, 170 in 200, etc).
Against a stock classic tracker, loading the standard index page (sort by activity, group by priority, showing batches of 50 issues at a time):
|Backend ||N ||Index Page Time|
|anydbm ||200 ||3.5s|
|sqlite ||20,000 ||1.1s|
|100,000 ||4.5s (9.4s)|
|metakit ||20,000 ||1.9s|
|100,000 ||8.4s (18s)|
|mysql ||20,000 ||1.3s|
|65,000 ||3.3s (5.7s)|
|postgresql ||20,000 ||1.1s|
|100,000 ||4.1s (5.7s)|
Note:The second (bracketed) values indicate the time for a concurrant index page view (I press reload in a second browser window shortly after requesting the first). The sqlite and metakit backends serialise accesses, so their second access time is understandably doubled.