[SERVER-48130] Simplify local concurrency control for Scons and Ninja Created: 12/May/20  Updated: 28/Aug/23  Resolved: 28/Aug/23

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

Type: Improvement Priority: Major - P3
Reporter: Andrew Morrow (Inactive) Assignee: [DO NOT ASSIGN] Backlog - Server Development Platform Team (SDP) (Inactive)
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Assigned Teams:
Server Development Platform
Participants:

 Description   

The current setup relies (incompletely) on icerun at the SCons level, but the Ninja level also has a local_pool. Sizing the local pool is non-obviously tied to the SCons concurrency level set at Ninja generation time. But application of the local_pool isn't automatic. The situation is muddled, and we should come up with something better that:

  • Works right both with plain SCons and with the generated Ninja
  • Doesn't statically interpolate SCons concurrency guarantees into the generated Ninja file.
  • Ensures consistent application of icerun in the SCons layer in a way that is reflected in the Ninja layer.
  • Would provide an API that allowed partitioning jobs into local/remote in such a way that the build could still be made reasonable even in the absence of a tool like icerun.

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