[SERVER-48272] Reduce startup time for dynamically linked server binaries and shell Created: 18/May/20  Updated: 29/Oct/23  Resolved: 15/Jun/20

Status: Closed
Project: Core Server
Component/s: Build
Affects Version/s: None
Fix Version/s: 4.7.0

Type: Improvement Priority: Major - P3
Reporter: Andrew Morrow (Inactive) Assignee: Andrew Morrow (Inactive)
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
is depended on by SERVER-46296 Migrate non-windows ! builders to --l... Closed
Related
Backwards Compatibility: Fully Compatible
Sprint: Dev Platform 2020-06-01, Dev Platform 2020-06-15, Dev Platform 2020-06-29
Participants:

 Description   

In SERVER-46296 we had attempted to roll several builders over to run in fully dynamic mode. However, we discovered that this had a adverse effect on test execution time. It appears that a dynamically linked mongod is roughly 100 times slower than a statically linked mongod to start up.

It is probably impossible to get to complete parity with the static build, but we can almost certainly do better.

We need to figure out why the startup cost is so high, and bring it down to a level where we feel that the increased startup time is small enough that the benefits (much faster compiles) outweigh any residual test slowdown due to slower startup.



 Comments   
Comment by Githook User [ 09/Jun/20 ]

Author:

{'name': 'Andrew Morrow', 'email': 'acm@mongodb.com', 'username': 'acmorrow'}

Message: SERVER-48272 Use of vector clock can be private to metadata
Branch: master
https://github.com/mongodb/mongo/commit/80884df534d2fb033c6ec60d0672f5c45395ec28

Comment by Githook User [ 01/Jun/20 ]

Author:

{'name': 'Andrew Morrow', 'email': 'acm@mongodb.com', 'username': 'acmorrow'}

Message: SERVER-48272 wiredtiger library dependencies are private
Branch: master
https://github.com/mongodb/mongo/commit/30e4d258bf6fbb9229b6d2d945f9625695edac73

Comment by Githook User [ 27/May/20 ]

Author:

{'name': 'Andrew Morrow', 'email': 'acm@mongodb.com', 'username': 'acmorrow'}

Message: SERVER-48272 Reduce startup time for dynamically linked binaries

Minimizing the list of NEEDED entries directly attached to the core
programs reduces startup time for dynamically linked binaries by
approximately 40 percent.
Branch: master
https://github.com/mongodb/mongo/commit/17d9094752fec7dd29c9eedac9bd7cccb8cf8f6e

Comment by Githook User [ 27/May/20 ]

Author:

{'name': 'Andrew Morrow', 'email': 'acm@mongodb.com', 'username': 'acmorrow'}

Message: SERVER-48272 Reduce startup time for dynamically linked binaries
Branch: master
https://github.com/10gen/mongo-enterprise-modules/commit/a77628d80d57cc1b6237de9d673ed74c05e11ad2

Comment by Githook User [ 20/May/20 ]

Author:

{'name': 'Andrew Morrow', 'email': 'acm@mongodb.com', 'username': 'acmorrow'}

Message: SERVER-48272 Rename generated mongo.cpp to mongojs.cpp

Avoid a potential future collision when renaming shell.cpp to mongo.cpp
Branch: master
https://github.com/mongodb/mongo/commit/37b72d0c250401529ebe2f5929d2b03ec614e763

Comment by William Schultz (Inactive) [ 18/May/20 ]

Sounds good. Thanks for making a note of it.

Comment by William Schultz (Inactive) [ 18/May/20 ]

Just to add a note here, keeping an eye on the startup and total execution times in the replsettest_control_1_node.js test and replsettest_control_12_nodes.js would be a good metric to get a rough idea of how mongod startup times might be impacting test durations. We log how long it takes to complete the startup of nodes in the ReplSetTest here, which is a duration that should be affected by mongod startup time.

Generated at Thu Feb 08 05:16:38 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.