dotnet / dotnet/msbuild

Allow worker nodes to accept work from any active build, not just 'lock' to a single build at a time

Open
#13,255 3 comments 0 reactions 0 assignees View on GitHub
Area: Performance backlog needs-design triaged User Experience
Dominant language
C#
Stars
5.5k
Forks
1.5k
Avg merge
1d 8h
Merged PRs (30d)
141

Description

### Summary

Now that we have the safety guarantees that the Multithreaded APIs (and marker interfaces) provide, we can consider an exciting feature - allowing worker nodes to do work across multiple active builds, taking work from whichever builds are active instead of being constrained to a single logical build for the duration of that build.

Before these APIs, this was too risky because Tasks couldn't be trusted to be stateless - but with the APIs (and some additional documentation clarifying how stateful constructs like C# statics should be used safely) we can experiment with this possibility, which should help prevent the thundering-herd problem of multiple concurrent builds spawning NUMPROCS nodes that we have today.

### Background and Motivation

Fill in later

### Proposed Feature

Fill in later

### Alternative Designs

_No response_

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.