oxidecomputer / oxidecomputer/omicron

consider renaming "instance update" saga to "instance reconciliation"

Open
#6,631 3 comments 0 reactions 1 assignee View on GitHub

@hawkw is already working on this.

Since Sep 21, 2024.

cleanup nexus
Dominant language
Rust
Stars
572
Forks
97
Avg merge
2d 12h
Merged PRs (30d)
96

Description

The term update is remarkably overloaded in Omicron: in various places, it may mean:

  1. Updating the versions of the software deployed on the rack to a new release
  2. Changing the configuration of an object, such as a project, disk, instance, etc, in response to a user action that provides new configuration values
  3. Processing a change in state reported to Nexus by something in the "real world" (i.e. a sled-agent)

Currently, the components that process state updates (sense 3) about VMMs and migrations sent from sled-agents to Nexus are the "instance update" saga (and its friend the "instance updater" background task, which ensures such sagas are started as needed). I believe @iximeow is presently working on external APIs to permit a user to change an instance's configuration, updating the instance record (sense 2). The HTTP endpoint for this functionality will probably also be referred to as the "instance update" endpoint.

Therefore, we should probably try to disambiguate this terminology, rather than having two mostly-separate things called "instance update". I submit renaming the "instance-update" saga to "instance-reconciliation", based on the terminology used by @gjcolombo in #6520 to refer to this subsystem. I think "instance-reconciliation" (and the "instance-reconciler" background task) is probably more accurate terminology, anyway: when the saga runs, the VMM/migration state update received from the sled-agent has already been written to the database, and the saga is responsible for modifying the state of the instance record to reflect the current state of the associated vmm and migration records --- i.e., reconciling the instance record's state with the VMM and migration states.

I'd like to do this once PRs #6503 and #6630 have merged, since they both change the saga, and I'd prefer to avoid merge conflicts from e.g. renaming the file etc. So, I'm opening this issue mostly just to remind myself to do that, but also as an opportunity to solicit other potential naming suggestions if anyone else involved in these bits of Nexus wants to weigh in!

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.