Executors: multi-queue: add heartbeat endpoint stub, db migrations, and UI changes#52381
Conversation
Bundle size report 📦
Look at the Statoscope report for a full comparison between the commits 5d7af86 and 42be886 or learn more. Open explanation
|
courier-new
left a comment
There was a problem hiding this comment.
Frontend approved! 🫡
Piszmog
left a comment
There was a problem hiding this comment.
Overall, I think it looks great! Lots of changes you made to support this feature. Great job!
|
let's get a demo of this in demo days once it's complete :) |
3f0aa46 to
6169716
Compare
- Closes https://github.com/sourcegraph/sourcegraph/issues/50616 - Coupled with https://github.com/sourcegraph/sourcegraph/pull/52016 (this is a child branch) This PR: - Adds an env var `EXECUTOR_QUEUE_NAMES` to the config of an executor, which supports a comma-separated string of queue names to listen to - Validates that one and only one of `EXECUTOR_QUEUE_NAME` and `EXECUTOR_QUEUE_NAMES` is configured - Sets the value on the `apiWorkerOptions` and `queueOptions` The actual client implementation is found in the parent PR. - [x] Update docs - [ ] Update Terraform modules: see https://github.com/sourcegraph/sourcegraph/issues/52250 - [x] Unit tests - [ ] Demo (will be added to parent PR) <!-- All pull requests REQUIRE a test plan: https://docs.sourcegraph.com/dev/background-information/testing_principles -->
6169716 to
7c5e5fd
Compare
…e queues (#52525) - Fixes https://github.com/sourcegraph/sourcegraph/issues/51658 Hierarchy: - This merges into https://github.com/sourcegraph/sourcegraph/pull/52381 - Which merges into https://github.com/sourcegraph/sourcegraph/pull/52016 - Which merges into main ## Test plan - [x] Unit tests - [ ] Demo: all the way in the parent PR <!-- All pull requests REQUIRE a test plan: https://docs.sourcegraph.com/dev/background-information/testing_principles -->
|
Codenotify: Notifying subscribers in CODENOTIFY files for diff 4bab424...5d7af86.
|
|
For the ones who got pinged when I changed this to a regular PR from draft, nothing has changed aside from merging in a child PR that was reviewed already, so no action needed |
|
@sourcegraph/design Am I right to ping design on this? It doesn't require immediate attention but could be polished. Not sure if I should tag frontend instead. |
|
Looks good. I think I remember hearing that it is up to devs whether to pull in design or things. I think since this is a minor change, what you did doesn't need review. |
…2016) - Closes https://github.com/sourcegraph/sourcegraph/issues/50614 Depends on the following issues: - https://github.com/sourcegraph/sourcegraph/issues/50616 - Merged in https://github.com/sourcegraph/sourcegraph/pull/52020 - https://github.com/sourcegraph/sourcegraph/issues/51656 - Merged in https://github.com/sourcegraph/sourcegraph/pull/52381 - https://github.com/sourcegraph/sourcegraph/issues/51658 - Merged in https://github.com/sourcegraph/sourcegraph/pull/52525 Due to the dependency on the work listed above, all PRs were ultimately merged into this branch, so the client side implementation got a little bit messy to review, for which I apologize. The initial intent of this PR, closing #50614, was reviewed before the merges occurred. ## Demos ### Scenario 1: old Sourcegraph version, new executor version #### batches, single queue https://github.com/sourcegraph/sourcegraph/assets/2979513/6d325326-d4f5-4e6f-a5e0-0918dbde07bf #### codeintel, single queue https://github.com/sourcegraph/sourcegraph/assets/2979513/ff3a87db-ef07-4221-a159-73b93a6ae55b ### Scenario 2: new Sourcegraph version, old executor version #### batches, single queue https://github.com/sourcegraph/sourcegraph/assets/2979513/c66a9b9f-b745-4abc-bf87-9077dd5f2959 #### codeintel, single queue https://github.com/sourcegraph/sourcegraph/assets/2979513/785d7f34-630f-4c2a-abb6-82ca3b896813 ### Scenario 3: new Sourcegraph version, new executor version #### batches, single queue https://github.com/sourcegraph/sourcegraph/assets/2979513/69c5c06b-ea1c-47f7-9196-e3f108794493 #### codeintel, single queue https://github.com/sourcegraph/sourcegraph/assets/2979513/4e791d98-06cd-4fa7-93dd-81be0a73c744 #### batches + codeintel in parallel, multi queue https://github.com/sourcegraph/sourcegraph/assets/2979513/004608dd-f98c-4305-aeb3-a01444c12224 ## Initial PR description (enable client to dequeue from multiple queues) This PR updates the client's `Dequeue` method to dequeue from multiple queues. It's backwards compatible with single-queue configurations. The field `Job.Queue` is only set when dequeuing from the general `/dequeue` endpoint, so the job `MarkXxx` methods default to single-queue behaviour if the job does not specify a queue name. Unrelated to the linked issue, the multi-handler will log and return no content early in the event of an empty queue list in a dequeue request (although this should never occur). ## Test plan - [x] Unit tests - [x] Local testing - [x] Dogfood testing - [x] Demo <!-- All pull requests REQUIRE a test plan: https://docs.sourcegraph.com/dev/background-information/testing_principles -->
…2016) - Closes https://github.com/sourcegraph/sourcegraph/issues/50614 Depends on the following issues: - https://github.com/sourcegraph/sourcegraph/issues/50616 - Merged in https://github.com/sourcegraph/sourcegraph/pull/52020 - https://github.com/sourcegraph/sourcegraph/issues/51656 - Merged in https://github.com/sourcegraph/sourcegraph/pull/52381 - https://github.com/sourcegraph/sourcegraph/issues/51658 - Merged in https://github.com/sourcegraph/sourcegraph/pull/52525 Due to the dependency on the work listed above, all PRs were ultimately merged into this branch, so the client side implementation got a little bit messy to review, for which I apologize. The initial intent of this PR, closing #50614, was reviewed before the merges occurred. ## Demos ### Scenario 1: old Sourcegraph version, new executor version #### batches, single queue https://github.com/sourcegraph/sourcegraph/assets/2979513/6d325326-d4f5-4e6f-a5e0-0918dbde07bf #### codeintel, single queue https://github.com/sourcegraph/sourcegraph/assets/2979513/ff3a87db-ef07-4221-a159-73b93a6ae55b ### Scenario 2: new Sourcegraph version, old executor version #### batches, single queue https://github.com/sourcegraph/sourcegraph/assets/2979513/c66a9b9f-b745-4abc-bf87-9077dd5f2959 #### codeintel, single queue https://github.com/sourcegraph/sourcegraph/assets/2979513/785d7f34-630f-4c2a-abb6-82ca3b896813 ### Scenario 3: new Sourcegraph version, new executor version #### batches, single queue https://github.com/sourcegraph/sourcegraph/assets/2979513/69c5c06b-ea1c-47f7-9196-e3f108794493 #### codeintel, single queue https://github.com/sourcegraph/sourcegraph/assets/2979513/4e791d98-06cd-4fa7-93dd-81be0a73c744 #### batches + codeintel in parallel, multi queue https://github.com/sourcegraph/sourcegraph/assets/2979513/004608dd-f98c-4305-aeb3-a01444c12224 ## Initial PR description (enable client to dequeue from multiple queues) This PR updates the client's `Dequeue` method to dequeue from multiple queues. It's backwards compatible with single-queue configurations. The field `Job.Queue` is only set when dequeuing from the general `/dequeue` endpoint, so the job `MarkXxx` methods default to single-queue behaviour if the job does not specify a queue name. Unrelated to the linked issue, the multi-handler will log and return no content early in the event of an empty queue list in a dequeue request (although this should never occur). ## Test plan - [x] Unit tests - [x] Local testing - [x] Dogfood testing - [x] Demo <!-- All pull requests REQUIRE a test plan: https://docs.sourcegraph.com/dev/background-information/testing_principles -->
Opening a draft PR to get some early reviews in. This is not fully complete yet, because the heartbeat depends on the client and
Recordinterface to implement the necessary changes in order for heartbeats to be submitted successfully.TODO
heartbeatsignature to take the refactored string IDs after client implementationTest plan