Artifact 9035e8cc13aae196b75bedbc07cf1da1a3bdd69e720fd45e74b88b7e0f432414:
- File
internal/manifest/crosslink.go
-
2026-10-22 21:17:12
— part of check-in
[48ff1f5084]
on branch feat/horizon-cones
— perf(manifest): stop re-walking delta chains and re-parsing manifests in a rebuild
Rebuilding a clone of the Fossil SCM repository (67,894 artifacts, 21,008 check-ins) took about 3 minutes of which 104 s was parentTreeGap asking content.AvailableByUUID, an uncached delta-chain walk with one SQL statement per node, for every parent of every check-in. It now uses the sweep's availability cache like the rest of the guard.
The same sweep parsed each check-in three times (as a child, as its child's parent, as a delta baseline) and rebuilt its file maps. The sweep's content cache now keeps the parsed deck, file views and baseline rid of its few most recent check-ins (Cache.Derived), dropped with the cached bytes on Invalidate and Clear. Derived hits count as reuse in the cascade stats, so the shared-cache regression guard keeps measuring it.
The rebuilt event, mlink, plink, tagxref, leaf, filename, cherrypick, orphan, unclustered, unsent, forumpost, attachment, phantom, blob and delta tables are row-for-row identical to the previous code's. (user: [email protected], size: 91153) [annotate] [blame] [check-ins using]
-
2026-10-22 21:17:32
— part of check-in
[6339d6fb50]
on branch feat/horizon-cones
— Merge branch 'wip/rebuild-perf' into feat/horizon-cones
Rebuild of fossil-scm.org's repository in about 50 s instead of 3 to 6 minutes: delta-chain availability answered from the sweep's cache, and each manifest parsed once. Every derived table is identical before and after. (user: [email protected], size: 91153) [annotate] [blame] [check-ins using]
-
2026-10-22 21:17:12
— part of check-in
[48ff1f5084]
on branch feat/horizon-cones
— perf(manifest): stop re-walking delta chains and re-parsing manifests in a rebuild