Getting performance data can still be rather slow

RESOLVED FIXED

Status

Tree Management
Perfherder
RESOLVED FIXED
3 years ago
3 years ago

People

(Reporter: wlach, Assigned: wlach)

Tracking

Details

Attachments

(1 attachment)

It turns out that by instead of filtering on the signature hash, instead of the signature id, we have to consider millions of performance datum elements which we don't need to (because we can no longer use the signature id index to filter). Fixing this is easy and gives a substantial performance boost (going from 12 seconds on one query to less than 1): 

mysql> show profiles;
+----------+-------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Query_ID | Duration    | Query                                                                                                                                                                                                                                                                                                        |
+----------+-------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|        1 | 11.28814050 | SELECT `performance_signature`.`signature_hash`, `performance_datum`.`job_id`, `performance_datum`.`result_set_id`, `performance_datum`.`push_timestamp`, `performance_datum`.`value` FROM `performance_datum` INNER JOIN `performance_signature` ON ( `performance_datum`.`signature_id` = `performance_sig |
|        2 |  0.00409075 | SELECT `performance_signature`.`signature_hash`, `performance_datum`.`job_id`, `performance_datum`.`result_set_id`, `performance_datum`.`push_timestamp`, `performance_datum`.`value` FROM `performance_datum` INNER JOIN `performance_signature` ON ( `performance_datum`.`signature_id` = `performance_sig |
+----------+-------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2 rows in set, 1 warning (0.10 sec)
Created attachment 8677021 [details] [review]
PR
Attachment #8677021 - Flags: review?(emorley)
Comment on attachment 8677021 [details] [review]
PR

Looks good :-)
r=me presuming Travis goes green - it's still running after 17 mins :-/
Attachment #8677021 - Flags: review?(emorley) → review+
Status: NEW → RESOLVED
Last Resolved: 3 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.