Skip to content

v0.1.6: run full existing benchmarks excluding #122 and report actual numbers #125

Description

@yifanxuaaa

Objective

After the Snapshot-Isolated Workspace implementation has a correct, sealed candidate, run the full existing active benchmark suite excluding the benchmark work owned by #122, then publish the actual numbers and verification/resource/cleanup outcomes honestly here.

This issue owns the final phase of docs/roadmap/0.1/0.1.6/overlay-snapshot-implementation-plan.md. It is an execution/reporting issue, not authorization to implement or run #122, invent new performance gates, or replace the existing benchmark framework.

Implementation dependency: #124. Start after its correct sealed-candidate handoff; do not require the implementation issue to be closed first.

Documents and initial status

Use overlay-snapshot-rule.md, overlay-snapshot-spec.md, overlay-snapshot-spec-review.md, overlay-snapshot-implementation-plan.md, and benchmark-exclusions-issue122.json in docs/roadmap/0.1/0.1.6/.

At issue creation these documents are local uncommitted drafts, not published source or measured results. The implementation issue must freeze/publish them and link immutable source before execution. Do not run against a known incomplete snapshot model or fabricate successful qualification from this issue's existence.

Exact scope: full suite minus #122

  1. Enumerate the complete active registry and all active family-specific entrypoints from the sealed candidate, not only smoke/default cases, HOST_FAMILIES, or the affected subset. Include inherited required extended/proof-only modes and their existing seed/repetition/source-arm contracts. Keep active unavailable cases in the ledger as blocked.
  2. Re-read v0.1.6: implement and qualify mixed-development benchmark families, 10/100-commit histories and concurrent workspaces #122 and reconcile the machine-readable exclusion manifest with its cases.json source/hash and the actual registry. The exclusion snapshot below contains 36 cases: 33 regular and 3 extended. Account for renamed/versioned successors explicitly before execution.
  3. Freeze included = active_suite - issue122_owned_cases, along with a disjoint explicit exclusion ledger. Existing older cases in shared families remain included. Do not exclude all dedup_branch_history, mixed_load_bearing or historical_access merely because v0.1.6: implement and qualify mixed-development benchmark families, 10/100-commit histories and concurrent workspaces #122 adds cases there.
  4. Exclusion applies to performance, verification, extended variants and case-specific setup. Do not use shared/v016_matrix.py as this campaign: that script targets the excluded v0.1.6: implement and qualify mixed-development benchmark families, 10/100-commit histories and concurrent workspaces #122 matrix.
  5. Verify manifest uniqueness, nonempty inclusion, modes and expected cardinality before launch. Report known exclusions separately from exclusions actually registered; planned missing cases do not become invented registry rows.

Execution contract

  • Follow benchmark/AGENTS.md, docs/general/benchmark_rules.md, and benchmark/fs-bench-pro/QUICKSTART.md; use existing family/generic runners and the measurement lock.
  • macOS host owns Store/SDK/coordinator/canonical construction/spool; Docker owns only Linux daemon/FUSE/workload. Preserve approved limits and source/image custody. No competing builds/perf/verifiers contaminate measurements.
  • Reuse compatible sealed binaries/images and protected pristine inputs. Each mutation invocation gets an independent writable copy. No cached post-edit state, post-Commit state or live Workspace as a shortcut.
  • Run every included required performance and separate verification row under its existing fixture, API, timing, sample/seed, deadline and verification contract. Proof-only performance is N/A, not zero.
  • Compare matched baseline/candidate data only where semantics and custody support it. Otherwise report candidate numbers and baseline UNAVAILABLE/INCOMPARABLE; never invent speedups.
  • Introduce no new numeric performance gate. Preserve existing statuses/criteria and all valid failures/misses. Do not shorten work, selectively rerun unchanged code, raise a timeout after a miss or weaken verification.
  • If a real defect is fixed, preserve original evidence, reseal the candidate and rerun required affected evidence. Unrelated independent cases should not silently disappear because one case failed.

Required honest report

Publish machine-readable complete matrix and readable tables, with append-only raw manifests and reproduction commands. Each included case/version/seed/arm/mode needs:

  • Actual raw timing units and samples, sample count, supported median/range/percentiles, operation/invocation wall under the existing boundary, and useful Init/edit/read/Commit phase timings.
  • Host and container CPU/memory/cgroup scopes separately; Store/spool/metadata/index/retained/cleanup disk and I/O where measurable, with missing values marked unavailable and sampling caveats.
  • Verification coverage and outcomes; Created/UpToDate/conflict/error; performance, correctness, resources, cleanup and custody statuses kept separate.
  • Comparable before/after values and differences, or explicit unpaired/incomparable status.
  • Exact product/harness/helper/image/fixture/oracle identities, artifact locations and manifests.
  • Expected versus observed cardinality, every missing/blocked row, and a separate EXCLUDED_ISSUE_122 ledger. Excluded rows are not PASS or included NOT_RUN results.

Do not turn missing metrics into zero, reuse archival results as current results, hide failures behind aggregate averages, or claim a fast inner Commit means a passing complete invocation. Publish numbers even when they are worse than expected.

Completion checklist

Owner completion requirement supersedes the earlier reporting-only closure allowance: do not close #124 or #125 with required unresolved FAIL/TIMEOUT/BLOCKED/NOT_READY/NOT_RUN, invalid verification, resource, cleanup or custody outcomes. Repair required failures and meet existing applicable mandatory criteria; reporting-only targets remain reporting-only and receive no new numerical gate. Preserve every original failed attempt. Required unexecuted rows leave full-suite execution incomplete. No release, tag, website publication, or changes to #122's evidence are requested.

#122 exclusion snapshot

Source: docs/roadmap/0.1/0.1.6/cases.json; exact machine-readable copy in benchmark-exclusions-issue122.json. Exclude every case below in all modes; do not blanket-exclude their families.

Family Lane Excluded case ID
dedup_branch_history regular v016-history-large-hotset-k10-v1
dedup_branch_history regular v016-history-large-hotset-k100-v1
dedup_branch_history regular v016-history-namespace-inode-k10-v1
dedup_branch_history regular v016-history-namespace-inode-k100-v1
dedup_branch_history regular v016-history-boundary-cycle-k10-v1
dedup_branch_history regular v016-history-boundary-cycle-k100-v1
file_size_transition regular v016-boundary-small-control-v1
file_size_transition regular v016-boundary-below-v1
file_size_transition regular v016-boundary-exact-v1
file_size_transition regular v016-boundary-above-v1
file_size_transition regular v016-boundary-large-control-v1
file_size_transition regular v016-boundary-roundtrip-v1
file_size_transition regular v016-boundary-alias-roundtrip-v1
mixed_load_bearing regular v016-mixed-development-100mb-5000-k10-v1
mixed_load_bearing regular v016-mixed-development-100mb-5000-k100-v1
mixed_load_bearing regular v016-mixed-development-500mb-30000-k10-v1
mixed_load_bearing regular v016-mixed-development-500mb-30000-k100-v1
multi_workspace_development regular v016-workspace-mixed-100mb-5000-k10-v1
multi_workspace_development regular v016-workspace-mixed-100mb-5000-k100-v1
multi_workspace_development regular v016-workspace-mixed-500mb-30000-k10-v1
multi_workspace_development regular v016-workspace-mixed-500mb-30000-k100-v1
branch_development regular v016-branch-mixed-100mb-5000-k10-v1
branch_development regular v016-branch-mixed-100mb-5000-k100-v1
branch_development regular v016-branch-mixed-500mb-30000-k10-v1
branch_development regular v016-branch-mixed-500mb-30000-k100-v1
branch_development regular v016-branch-convergent-content-v1
branch_development regular v016-branch-fork-descendant-v1
historical_access regular v016-access-boundary-before-v1
historical_access regular v016-access-boundary-after-v1
historical_access regular v016-access-inode-before-v1
historical_access regular v016-access-inode-after-v1
historical_access regular v016-access-fork-point-v1
historical_access regular v016-access-divergent-head-v1
mixed_load_bearing extended v016-mixed-exhaustive-100mb-5000-k100-v1
mixed_load_bearing extended v016-mixed-exhaustive-500mb-30000-k100-v1
multi_workspace_development extended v016-workspace-four-100mb-5000-k100-v1

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions