You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
After #944, exact-root provider preparation remains the dominant cumulative phase. Follow-up to #942; projection construction belongs to #663 and large-closure relation classification to #949.
At an intermediate point in the full retained Fedora diagnostic, 62,209 preparation records totaled 11,543.423 seconds, 62,209 solve records totaled 663.040 seconds, and 62,208 classification records totaled 2,028.936 seconds. Preparation is approximately 81.1% of that cumulative phase time. These are partial phase records, not complete survey counts. Each root builds a fresh provider over the same read-only projection.
A 20-second 49 Hz user-CPU profile attached to one existing diagnostic worker collected 858 samples with zero lost samples. Flat self-time included sqlite3VdbeExec 12.24%, SQLite record comparison 1.63%, statement value access 1.52%, page-cache fetch 1.28%, column text/type 1.17% each, UTF-8 conversion 1.98%, hash writes 3.26%, and JSON string scanning 1.52%. This profile spans whole root processing; it does not establish inclusive preparation caller costs. It avoids launching another resolver worker.
Evidence source: tree 8bf85f8951edb74ff879ae7288eab69d8e5ace97, merged as 4e625b9d8da346c831696bac26e625072095a8e6; retained projection SHA-256 04a73fa1d778fb65a584f0ac1539faa94170eece07b0ca6de2719f774bdf5e24, 101,335 Fedora rows. Five diagnostic processes use fast-release and a shared host. This is development attribution, not a release benchmark or protected parity authority.
Owner: resolver/sat/install.rs::build_provider_for_install_ignoring_groups and load_transitive_repo_packages, plus resolver/provider/repository.rs and resolver/provider/loading.rs. SQL statements are now cached, but each isolated solve still fetches, decodes, validates, and materializes package facts.
Scope: measure the remaining loading/decoding/validation work, then remove repeated immutable work with an explicit snapshot identity, ownership, invalidation, and bounded-memory contract. Evaluate batching or solve/worker-scoped validated fact reuse from measurements; do not introduce an unbounded whole-catalog object cache by assumption. Mutable solver IDs, installed state, root requests, ignored requirement groups, and solver results must stay isolated. Ordinary mutable client databases need explicit freshness behavior.
Acceptance:
Attribute SQL execution, row decoding, validation, allocation, and provider construction separately on production-shaped Fedora, Ubuntu, and Arch profiles.
Demonstrate a controlled release-profile before/after for ordinary one-root commands and repeated exact-root walks, including peak RSS and cache bounds.
Preserve typed source semantics, exact admission, malformed-data rejection, source policy, and failed-admission atomicity. Prove stale facts cannot survive the declared snapshot lifetime or transaction boundary.
After #944, exact-root provider preparation remains the dominant cumulative phase. Follow-up to #942; projection construction belongs to #663 and large-closure relation classification to #949.
At an intermediate point in the full retained Fedora diagnostic, 62,209 preparation records totaled 11,543.423 seconds, 62,209 solve records totaled 663.040 seconds, and 62,208 classification records totaled 2,028.936 seconds. Preparation is approximately 81.1% of that cumulative phase time. These are partial phase records, not complete survey counts. Each root builds a fresh provider over the same read-only projection.
A 20-second 49 Hz user-CPU profile attached to one existing diagnostic worker collected 858 samples with zero lost samples. Flat self-time included sqlite3VdbeExec 12.24%, SQLite record comparison 1.63%, statement value access 1.52%, page-cache fetch 1.28%, column text/type 1.17% each, UTF-8 conversion 1.98%, hash writes 3.26%, and JSON string scanning 1.52%. This profile spans whole root processing; it does not establish inclusive preparation caller costs. It avoids launching another resolver worker.
Evidence source: tree
8bf85f8951edb74ff879ae7288eab69d8e5ace97, merged as4e625b9d8da346c831696bac26e625072095a8e6; retained projection SHA-25604a73fa1d778fb65a584f0ac1539faa94170eece07b0ca6de2719f774bdf5e24, 101,335 Fedora rows. Five diagnostic processes use fast-release and a shared host. This is development attribution, not a release benchmark or protected parity authority.Owner:
resolver/sat/install.rs::build_provider_for_install_ignoring_groupsandload_transitive_repo_packages, plusresolver/provider/repository.rsandresolver/provider/loading.rs. SQL statements are now cached, but each isolated solve still fetches, decodes, validates, and materializes package facts.Scope: measure the remaining loading/decoding/validation work, then remove repeated immutable work with an explicit snapshot identity, ownership, invalidation, and bounded-memory contract. Evaluate batching or solve/worker-scoped validated fact reuse from measurements; do not introduce an unbounded whole-catalog object cache by assumption. Mutable solver IDs, installed state, root requests, ignored requirement groups, and solver results must stay isolated. Ordinary mutable client databases need explicit freshness behavior.
Acceptance: