oxidecomputer / oxidecomputer/omicron
Dataset upper bound should be non-optional, enforced
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 572
- Forks
- 97
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 96
Description
Datasets within Omicron have a field dedicated to their "Maximum provisioned size":
This field is:
- Optional
- Not enforced by ZFS quotas/reservations: https://illumos.org/books/zfs-admin/gavwq.html#gazvb
It currently exists as an approximation of crucible dataset size for allocation purposes, but it limited from the perspective of enforcing disk space availability.
We should be implementing / enforcing this for all dataset types. https://github.com/oxidecomputer/omicron/pull/1231 starts attempting to enforce out-of-space errors, but is incomplete without this cooperation across dataset types.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with common/src/sql/dbinit.sql at the dataset maximum-size field, then read the incomplete out-of-space work in pull request 1231 and the referenced ZFS quota and reservation behavior. Done means the upper bound is non-optional and enforced consistently for all dataset types, including appropriate out-of-space behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust, sql
- Domain
- databases, infrastructure
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100