oxidecomputer / oxidecomputer/crucible

How many downstairs have to return OK for snapshots?

Open
#431 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
260
Forks
34
Avg merge
2d 1h
Merged PRs (30d)
8

Description

In https://github.com/oxidecomputer/crucible/pull/407, I said:

Whether or not a Flush has SnapshotDetails set, It looks like the Upstairs will be ok with two out of three flushes returning OK. I think this has to change: if SnapshotDetails is set, then all three downstairs have to report OK for that Flush for it to be considered OK and acked.

Then Alan said:

To throw some more gas on this fire, If we require all three downstairs to answer before we can take a snapshot, it will essentially prevent taking a snapshot where one downstairs is broken. I think there are other situations (like deactivate) where this issue is already present.

This issue tracks the work of answering the title question: how many downstairs have to return OK for a snapshot to be considered OK?

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.

Research direction

Start by reviewing pull request 407 and the discussion about Flush, SnapshotDetails, Upstairs, and downstairs responses. Trace how snapshot success and acknowledgement are currently determined, then resolve the two-versus-three-OK policy, including the case where one downstairs is broken. Done means the chosen behavior is documented and covered for the relevant success and failure cases.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
distributed-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.