Přeskočit na obsah

Tato stránka byla automaticky přeložena z angličtiny, jediného jazyka, ve kterém se tento web píše. Číst originál.

a-derive-answers-within-a-second — An ordinary derive answers in under a second, runs independent nodes in parallel, and a budget gate holds it

Derive scenarios (no-op, one input, batch, plus the ten of c255#7) are bench targets under the existing benchmark policy. bench --check refuses a regression. Independent nodes run in bounded parallel against one immutable snapshot, with output identical under any order, and a derive's whole output set is published atomically.

BLOKOVÁNO 0 ze 2 úkolů hotovo

připraveno
0
blokováno
2
aktivní
0
verify
0
hotovo
0
zrušeno
0

Problém

The 10-13 graph plan makes a derive do less, but it sets no time budget, runs nodes one at a time and publishes file by file. The owner's 10-17 order asks for 'sub second, in parallel' with every algorithm, cache and architectural choice reviewed. ChatGPT's own reply (c292#1) called sub-second without benchmarks 'marketing'. Proposed in ADR 0185 (A derivation is a typed graph of the generators the executable already plans, keyed by the content of what each node reads, and the full derive stays its oracle) (proposed; it carries no authority until the owner accepts it). Sources: chatgpt-majordomus:c292#0, chatgpt-majordomus:c292#2.

Výsledek

Derive scenarios (no-op, one input, batch, plus the ten of c255#7) are bench targets under the existing benchmark policy. bench --check refuses a regression. Independent nodes run in bounded parallel against one immutable snapshot, with output identical under any order, and a derive's whole output set is published atomically.

Aktuální stav

Verified on master: the benchmark harness (I0823-I0827, rule rust-benchmark-coverage, test/cases/82_bench_check.sh) has no derive target, and .ai/repo/benchmarks/ holds economics, observatory, pages and rust only. MJ_TIMING phase timers exist in lib/common.sh. generate::write is atomic per file, not per set. Off master: I2349 (rescue ref) plans the derive and CI budgets.

Cílový stav

I2349 revived and amended; I3236 parallel nodes; I3237 transactional publication. Order follows c292#2: baseline, then no-op and invalidation, then graph and cache, then parallelism, then transactional publish, so each regression can be attributed.

Rozsah

  • apps/majordomus-cli/src
  • apps/majordomus-cli/src/bench
  • .ai/repo/benchmarks
  • scripts/derive
  • docs/PERFORMANCE.md

Mimo rozsah

  • Cold rebuild budgets (separate contract)
  • Removing or narrowing the machine derive lock (rule project.one-derive-at-a-time; see open question)
  • Mesh-shared derive cache

Kritéria přijetí

  • Derive scenarios are bench targets with a committed baseline and a declared reference machine
  • bench --check fails a derive regression beyond its noise-aware threshold and names the stage
  • Output bytes are identical across randomized node order and worker counts
  • A derive killed mid-run leaves the previous consistent set on disk

Validace

  • majordomus plan validate

Rizika

  • Parallel nodes raise peak load on the shared machine that the lock exists to bound (2026-10-09: nine sessions at load 57)
  • Budgets measured at load 20-68 (I2880, 10-18) are noise; I2068 already says one cold sample is not a regression

Úkoly

Každý z nich je prováděcí kontrakt s vlastními kritérii přijetí, validačním příkazem a požadovanými důkazy. Sloupec wave je vrstva grafu závislostí, v níž úkol leží.

issuestatusvlnazávisí nanázev
I3236 BLOKOVÁNO 6 I2525, I2527, I2521, I2068 Independent derive nodes run in bounded parallel against one snapshot, and the bytes do not depend on the order
I3237 BLOKOVÁNO 2 I2522, I2521 A derive publishes its whole output set at once after validating it, and a killed derive leaves the previous set

Graf

a-derive-answers-within-a-second dependency graphz .ai/repo/project
flowchart LR
    I3236["I3236<br/>Independent derive nodes run in bounded parallel against one snapshot, and the bytes do not depend on the order"]:::blocked
    I3237["I3237<br/>A derive publishes its whole output set at once after validating it, and a killed derive leaves the previous set"]:::blocked
    classDef done stroke:#16a34a,fill:#dcfce7,color:#14532d,stroke-width:2px
    classDef active stroke:#2563eb,fill:#eff6ff,color:#1e3a8a,stroke-width:2px
    classDef verify stroke:#7c3aed,fill:#f5f3ff,color:#4c1d95,stroke-width:2px
    classDef ready stroke:#0891b2,fill:#ecfeff,color:#164e63,stroke-width:2px
    classDef planned stroke:#0891b2,fill:#ecfeff,color:#164e63,stroke-width:2px
    classDef blocked stroke:#b45309,fill:#fffbeb,color:#78350f,stroke-width:2px
    classDef cancelled stroke:#6b7280,fill:#f9fafb,color:#374151,stroke-width:2px
    classDef superseded stroke:#6b7280,fill:#f9fafb,color:#374151,stroke-width:2px

Canonical record: .ai/repo/project/milestones/a-derive-answers-within-a-second.yaml. Read it back with majordomus plan show a-derive-answers-within-a-second.

Prohledává názvy a popisy všech stránek, které tento web publikuje.