feat(storage): add zfs-buildkit-{32k,128k,1m} for a fair recordsize comparison #404
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/zfs-buildkit-classes"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Three ZFS datasets with identical properties (
atime=off sync=disabled primarycache=all), created by one loop, withrecordsizeset per StorageClass. Nothing else differs.Why. The BuildKit caches are the heaviest ZFS consumers here and the classes they sit on cannot say which recordsize suits them:
zfs-nvme-128kis backed bytank/ephemeral(sync=disabled),zfs-nvme-32kbytank/databases(sync=standard, logbias=latency, primarycache=all),zfs-nvme-1mbytank/bulk(sync=disabled, primarycache=metadata). Each pairs a recordsize with its own durability and ARC policy, so moving a cache between them changes several things at once.logbiasis deliberately unset — the ZIL is unused undersync=disabled, so it would have no effect and would read as a fourth variable.Purely additive. No existing StorageClass or dataset property changes, and nothing consumes the new classes yet.
Verification.
tests/zfs-buildkit-classes.shpins the invariant that makes the comparison mean anything, and was checked against five mutations (per-class compression change, ARC policy change, logbias reintroduced, a dataset dropped from the loop, a class recordsize no longer matching its dataset) — each detected. The pool-init script was exercised with stubbedzfs/zpool: six datasets created, three properties set identically across the family, the older three untouched, idempotent on a second run.tests/check.shgreen.https://claude.ai/code/session_01KZoQin34jeyt6nDGqvJA76