Skip to content

Commit

Permalink
Optimizations to improve dataset ensuring performance (#7236)
Browse files Browse the repository at this point in the history
Major part of #7217

Optimizations made:
- `zfs get` is queried, so properties are samples for all datasets of
interest ahead-of-time. No subsequent processes are exec'd for each
dataset that needs no changes.
- The "dataset ensure" process is now concurrent

These optimizations should significantly improve the latency of the "no
(or few) changes necessary" cases.

Optimizations still left to be made:
- Making blueprint execution concurrent, rather than blocking
one-sled-at-a-time
- Patching the illumos_utils "Zfs::ensure_filesystem" to re-use the
pre-fetched properties, and minimize re-querying
  • Loading branch information
smklein authored Dec 13, 2024
1 parent 5ef0b7d commit de8bc93
Show file tree
Hide file tree
Showing 9 changed files with 395 additions and 177 deletions.
2 changes: 2 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions illumos-utils/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ dropshot.workspace = true
futures.workspace = true
http.workspace = true
ipnetwork.workspace = true
itertools.workspace = true
libc.workspace = true
macaddr.workspace = true
omicron-common.workspace = true
Expand Down
Loading

0 comments on commit de8bc93

Please sign in to comment.