golang / go

The Go programming language
https://go.dev
BSD 3-Clause "New" or "Revised" License
122.74k stars 17.5k forks source link

x/build/cmd/coordinator: write proper scheduler #19178

Open bradfitz opened 7 years ago

bradfitz commented 7 years ago

Currently if there are N builds waiting on a buildlet type (due to lack of machines or quota), the current implementation is a bunch of goroutines fighting over a mutex.

It's random who wins and gets the buildlet.

We should have them register interest and when a buildlet becomes available, pick the highest priority one.

Example priorities in order:

etc.

/cc @danp @kevinburke

bradfitz commented 7 years ago

And gomote access is in there somewhere too.

gopherbot commented 7 years ago

CL https://golang.org/cl/38306 mentions this issue.

gopherbot commented 7 years ago

CL https://golang.org/cl/40397 mentions this issue.

gopherbot commented 6 years ago

Change https://golang.org/cl/70430 mentions this issue: cmd/coordinator: attempt to run newer work before older work on buildlets

gopherbot commented 6 years ago

Change https://golang.org/cl/132076 mentions this issue: cmd/coordinator: start of a scheduler, not yet enabled

gopherbot commented 4 years ago

Change https://golang.org/cl/205078 mentions this issue: cmd/coordinator: finish the scheduler code, at least mostly

gopherbot commented 4 years ago

Change https://golang.org/cl/207079 mentions this issue: cmd/coordinator: add tests for the scheduler, and resulting fixes

gopherbot commented 4 years ago

Change https://golang.org/cl/207178 mentions this issue: cmd/coordinator: delete reverse buildlet pool's high priority mechanism

gopherbot commented 4 years ago

Change https://golang.org/cl/207179 mentions this issue: cmd/coordinator: clean up HTML status, add scheduler status

gopherbot commented 4 years ago

Change https://golang.org/cl/207180 mentions this issue: cmd/coordinator: enable the scheduler

gopherbot commented 4 years ago

Change https://golang.org/cl/207418 mentions this issue: cmd/coordinator: omit scheduler progress times when missing or irrelevant

gopherbot commented 4 years ago

Change https://golang.org/cl/207464 mentions this issue: cmd/coordinator: favor trybot work over post-submit work on process start

gopherbot commented 4 years ago

Change https://golang.org/cl/208277 mentions this issue: cmd/coordinator: plumb commit time and branch from findWork down into scheduler

dmitshur commented 4 years ago

CL 223381 is related. It's a request to start running post-submit builders on new commits on dev.* branches.