Artifact 5a1b1672bdc24890068543381ac00b3369d9cb5b5d0441e9af5c83bf39c3e33c:
- File
internal/manifest/crosslink.go
-
2026-10-22 21:28:11
— part of check-in
[85a71d319a]
on branch feat/horizon-cones
— fix(manifest): judge deferred check-ins after the sweep has filled the crosslink tables
A sparse or horizon store's deferred check-in is linked partially, which loads whole-store references. Those are answered from mlink and the non-artifact record, but a rebuild empties mlink and records non-artifacts only at the end of the batch, so the first deferred check-in found nothing to answer from, read every blob raw and exceeded the 512 MiB expansion budget on a real-sized repository (Rebuild failed after about a minute).
linkBatch now sets deferred check-ins aside and links them partially once the sweep and the non-artifact record are done, when the references are answered from the tables as they are after a clone. A rebuild of the {src}-cone store now completes in about 50 s under 700 MiB; its derived tables are row-for-row identical to those of the previous code run with the budgets raised far enough to finish. (user: [email protected], size: 91662) [annotate] [blame] [check-ins using]
-
2026-10-22 21:38:01
— part of check-in
[ba1e308608]
on branch feat/horizon-cones
— Merge branch 'wip/rebuild-perf' into feat/horizon-cones
A sparse or horizon store of a real-sized repository rebuilds: deferred check-ins are linked after the sweep and its non-artifact record, so reference loading answers from the tables instead of reading every blob against the budget. (user: [email protected], size: 91662) [annotate] [blame] [check-ins using]
-
2026-10-22 21:28:11
— part of check-in
[85a71d319a]
on branch feat/horizon-cones
— fix(manifest): judge deferred check-ins after the sweep has filled the crosslink tables