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
perf: incremental metadata regen (stop syncing the full pool) (#10)
The publish re-downloaded the entire pool/channel from R2 on every run so
apt-ftparchive / createrepo_c could rescan all historical packages. The pool
is ~233 x ~80 MB (~18 GB) and grows every snapshot, so sync time ballooned
past 15 min and every run was one transient R2 failure away from dying.
Make the regen incremental instead:
- apt: pull only the channel's Packages index (~KBs), append the new .deb's
stanza with apt-ftparchive (single file), and rebuild Release - which only
needs the index files, not the pool.
- yum: pull only the channel's repodata, then merge it with a throwaway
single-package repo via `mergerepo_c --all --omit-baseurl` (createrepo_c
--update alone drops packages that aren't on disk, so it can't be used
incrementally).
Both approaches were validated in containers against the live repo's exact
arch/index layout (Architecture:all packages land in both binary-amd64 and
binary-arm64; mergerepo_c preserves every historical version and keeps
location hrefs relative). Uploads keep the retry from the previous commit.
Sync drops from ~15 min / ~18 GB to ~seconds / ~KBs.
Signed-off-by: Peter Amiri <peter@alurium.com>
0 commit comments