Skip to content

Commit 886854e

Browse files
committed
perf: harden namespace lifecycle and plan namespace v2
1 parent 80ccd70 commit 886854e

63 files changed

Lines changed: 8025 additions & 297 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎README.md‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,8 @@ The [first-principles learning site](https://learn.layerfs.ai/) is educational m
201201
| **0.1.0 Developer Preview** | One SQLite Store, immutable LayerStack history, Branches, Workspaces, public SDK/CLI, host materialization, container FUSE, monitoring, and benchmark evidence. | **Released** as source under `v0.1.0`. |
202202
| **0.1.1** | Measure and harden existing-directory initialization through localized Commit, with focused FUSE and Docker proof. | **Planning**; see the [versioned checklist](docs/roadmap/0.1/0.1.1/README.md). |
203203
| **0.1.2** | Complete admitted prepend, range-copy, fragmented-write, sparse-growth, and mixed-edit optimization against the same FUSE/Docker path. | **Proposed**; see the [proposal set](docs/roadmap/0.1/0.1.2/README.md). |
204+
| **0.1.3** | Complete diverse, tiered filesystem-workload families against one genesis Layer and one Branch, then optimize measured bottlenecks. | **Draft**; see the [release README](docs/roadmap/0.1/0.1.3/README.md). |
205+
| **0.1.4** | Benchmark multi-Layer and multi-Branch Commit history, Fork, Add, Diff, conflict, and query scaling, then optimize measured bottlenecks. | **Draft**; see the [release README](docs/roadmap/0.1/0.1.4/README.md). |
204206
| **0.2.0** | Establish a portable projection foundation, including capability-detected reflink/clonefile paths and a future OverlayFS projection. | **Planned**; requires a new compatibility contract. |
205207
| **Later** | Add platform/runtime expansion and verified Store export, import, and synchronization. | **Research**; no cross-host synchronization is part of 0.1.0. |
206208

‎benchmark/fs-bench-pro/README.md‎

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ sections 17–19.
1010

1111
- The existing registered payload campaign is implemented: 32 MiB cold create,
1212
small edit, EDIT16, prepend, and read.
13-
- The 0.1.1 namespace-admission campaign is specified but not implemented yet:
13+
- The 0.1.1 namespace-admission campaign is implemented separately:
1414
`namespace-100`, `namespace-1000`, `namespace-10000`, and
1515
`namespace-100000`.
1616
- The canonical scenario and status table is the
@@ -20,16 +20,16 @@ The benchmark contract also carries the canonical **Problem statement**,
2020
**Goal**, **Files to read**, and **Acceptance criteria** for the v0.1.1
2121
namespace work; this README records harness usage and implementation status.
2222

23-
Each planned namespace fixture has 2,500 unique deterministic bytes per regular
23+
Each namespace fixture has 2,500 unique deterministic bytes per regular
2424
file and 100 regular files per directory. All timed namespace rows use real
2525
FUSE. Materialization is reserved for one untimed equality proof at 10,000
2626
files / 25 MB.
2727

2828
Namespace-admission rows remain outside the existing registered total and the
29-
paired LayerFS-versus-Computer campaign. The planned namespace runner is
29+
paired LayerFS-versus-Computer campaign. The namespace runner is
3030
LayerFS-only and separate from both `run.sh` and `run-paired.sh`, allowing one
3131
failing tier to be iterated without running the full or comparative campaigns.
32-
It will support one-case and `all` modes; `run-namespace.sh` does not exist yet.
32+
It supports one-case and `all` modes through `run-namespace.sh`.
3333

3434
The implemented payload LayerFS arm uses exactly one local `LayerStackStore`
3535
and public SDK calls.
@@ -74,7 +74,21 @@ benchmark/fs-bench-pro/run.sh RUN_ID CONTAINER_ID HOST_FIXTURE CONTAINER_FIXTURE
7474
```
7575

7676
This command runs only the implemented payload campaign. It does not run the
77-
planned namespace matrix.
77+
namespace matrix.
78+
79+
Run the namespace self-check and a sealed LayerFS-only tier or matrix with:
80+
81+
```sh
82+
benchmark/fs-bench-pro/run-namespace.sh --self-check
83+
benchmark/fs-bench-pro/run-namespace.sh RUN_ID CONTAINER_ID namespace-10000 1
84+
benchmark/fs-bench-pro/run-namespace.sh RUN_ID CONTAINER_ID all 3
85+
```
86+
87+
The namespace runner creates fixtures outside product timing, starts one fresh
88+
benchmark process per tier/sample, supervises process CPU and peak RSS, and
89+
retains immutable success or failure evidence under
90+
`benchmark-results/fs-bench-pro/namespace/RUN_ID`. Namespace rows use their own
91+
schema and never contribute to payload totals or paired results.
7892

7993
The container must run the current sealed image with TCP port `41273` published
8094
only on `127.0.0.1`; its fixture must match `HOST_FIXTURE` byte-for-byte. The

‎benchmark/fs-bench-pro/run-namespace.sh‎

Lines changed: 385 additions & 0 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)