Commit 6cfdca6
authored
feat(stovepipe): coalesce backlog in process controller (#324)
## What
This PR begins implementing core logic of the Process controller to
supersede older requests as new ones come in.
https://github.com/uber/submitqueue/blob/main/doc/rfc/stovepipe/steps/process.md#process-algorithm
- `accepted` requests get compared against the queue's latest request ID
value
- If a request is outdated compared to the queue's last ID, mark it
superceded (this PR)
- Otherwise, we'll build it now or re-check it later when a build slot
is free (logic to come)
- `superseded` / `processing` → ack no-op
- Retryable load for request/queue not-found
## Why
Implementing
https://github.com/uber/submitqueue/blob/main/doc/rfc/stovepipe/steps/process.md
step. Building out logic to accept incoming requests and narrow down
builds to only the latest head.
## Test plan
- [x] `//stovepipe/controller/process:go_default_test`
- [x] `//stovepipe/controller:go_default_test`
- [x] `//test/integration/stovepipe:go_default_test`1 parent b3b129f commit 6cfdca6
4 files changed
Lines changed: 345 additions & 95 deletions
File tree
- doc/rfc/stovepipe/steps
- stovepipe/controller/process
0 commit comments