[SERVER-39467] Regression in MD5-Timestamp decider Created: 08/Feb/19 Updated: 29/Oct/23 Resolved: 19/Aug/19 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Build |
| Affects Version/s: | None |
| Fix Version/s: | 4.3.1 |
| Type: | New Feature | Priority: | Major - P3 |
| Reporter: | Andrew Morrow (Inactive) | Assignee: | Mathew Robinson (Inactive) |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||||||
| Sprint: | Dev Tools 2019-03-25, Dev Tools 2019-04-08, Dev Tools 2019-05-06, Dev Tools 2019-04-22, Dev Tools 2019-07-01, Dev Tools 2019-07-15, Dev Tools 2019-07-29, Dev Tools 2019-08-12, Dev Tools 2019-08-26 | ||||||||||||||||
| Participants: | |||||||||||||||||
| Description |
|
The MD5-Timestamp decider has gotten slower in SCons 3.0.4 (see https://jira.mongodb.org/browse/SERVER-21336?focusedCommentId=2127333&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-2127333) We should restore it to its prior performance. |
| Comments |
| Comment by Githook User [ 21/Aug/20 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Author: {'name': 'Mathew Robinson', 'email': 'mathew.robinson@mongodb.com'}Message: (cherry picked from commit d362622b92319611dc247a94a6d125571c4b9b57) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Githook User [ 21/Aug/20 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Author: {'name': 'Mathew Robinson', 'email': 'chasinglogic@gmail.com'}Message: (cherry picked from commit 364b08d9d8348a9bf93cbff8eff7181da1a8f336) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Githook User [ 27/Aug/19 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Author: {'name': 'Mathew Robinson', 'email': 'mathew.robinson@mongodb.com', 'username': 'chasinglogic'}Message: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Githook User [ 26/Aug/19 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Author: {'name': 'Mathew Robinson', 'email': 'mathew.robinson@mongodb.com', 'username': 'chasinglogic'}Message: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Githook User [ 16/Aug/19 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Author: {'name': 'Mathew Robinson', 'email': 'chasinglogic@gmail.com', 'username': 'chasinglogic'}Message: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Andrew Morrow (Inactive) [ 12/Aug/19 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
bdbaddog - Reassigning this to Matt so he can pull in the SCons 3.1.1 update, and then I think we can resolve this ticket. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Andrew Morrow (Inactive) [ 27/Jun/19 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Tested with the following script. The merge base for tests on master was 518f382a78f904b2e7adf8ac36acc3a34a82fb4f and the experiment was at 59404d29e767a3bac0a9c23558e2d136d1caf91a (bd/fix_slow_scons_md5_decider_no_exceptions)
Results:
Conclusions:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Andrew Morrow (Inactive) [ 26/Jun/19 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Baseline here is:
Experiment here is:
Builds were done as:
The numbers here are only for rebuilds.
Interesting things to note:
I will rerun the exact tests from | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Andrew Morrow (Inactive) [ 10/May/19 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Definitely a step in the right direction. How much harder would the lazy-stringification approach be? It seems definitely a worthwhile thing to try. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by bdbaddog#1 [ 10/May/19 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Initial pass at speedup. Add Node objects as well as strings of such to dependency map dictionary. First check if node in map, then stringify and check for string.
Yields:
Also interesting in mongo default build with this command line yields 7850 lookups needing stringifying, and 3076695 hits where comparing the Node object is sufficient. /usr/bin/time -p python buildscripts/scons.py -j 10 --variables-files=./etc/scons/mongodbtoolchain_stable_gcc.vars --ssl --implicit-cache --disable-warnings-as-errors --modules= --build-fast-and-loose=on --link-model=dynamic
|