More Benchmarks

Joel Peshkin bugreport at peshkin.net
Fri Sep 6 14:22:33 UTC 2002




At bbaetz's request, I reran one of these with the code hacked to use 
$::db->prepare("SELECT stuff WHERE field = ?")
outside the critical loops and $sth->execute($value) inside instead of 
using SendSQL.

Doing this only on a the inner loop of the 500 group rederivation (one 
prepare, and 500 executes), this sped up the
function by a nearly factor of 2 from 1.3sec to 0.7sec

Bring on Bugzilla::DBI

-Joel

Joel Peshkin wrote:

>
> Benchmarks on current schema in the Groups_20020716_Branch....
>
> AMD Duron 950 system hosting both BZ and mysqld
>
> 10000 users 500 open groups, 500 closed groups  (i.e.  almost all 
> users are members of 500
> of the 1000 defined groups)
>
> Rederivation of group membership happens on the first login by each 
> user after a group definition change has occurred,
>
> rederive 1.3 sec wall time each user for membership in 500 groups (60% 
> cpu=perl, 40% cpu=sql)
> With only 50 groups this falls to 0.13 sec each
>
> fetching all bugs and then calling CanSeeBug on each.....
> 500 bugs retrieved by search but only 3 visible --> 2 seconds elapsed 
> wall time
> 50000 bugs retrieved by search but only 3 visible --> 140 seconds 
> elapsed wall time
>
> Building a join to bug_group_map into the query.....
> 50000 bugs retrieved by search but only 3 visible --> 10 seconds 
> elapsed wall time
>
> Size of user_group_map for 116 users in 500 groups each = 1.2MB
>
> I think this is scalable enough based on this. If anyone can provide 
> some numbers from large BZ sites to plug into this analysis, please 
> post them.
>
> -Joel
>





More information about the developers mailing list