perf(push): replace ghost check MinIO calls with single DB query in phase 3b
Phase 3b previously called backend.exists() for every externally-referenced object not already known to this repo — 8791 MinIO HEAD requests at ~22ms each = ~197s on a 988-commit push.
Replace with _check_missing_objects(): a single SQL IN query against musehub_objects. The content-addressed guarantee (sha256:<hex> IS the content) means DB registry presence is sufficient — if push/confirm wrote the row, R2 bytes were verified then. Storage availability is a read-time and background-job concern, not a push-time gate.
Also remove per-batch session.commit() from phases 7 (snapshots) and 8 (commits) — snapshots and commits now accumulate in a single transaction committed once in phase 10.
Add _tprog() closure for server-elapsed [S+Xs] timestamps on all progress frames for combined client+server timeline visibility.
Tests: flip I2 and C7 to assert ok=True (registered object trusted at push time); all 13 tests pass.
0 comments
muse hub commit comment sha256:213e694e0baf7f8773457d42a6b9034151da12feb15e6e652eafb256bf88f88e --body "your comment"
No comments yet. Be the first to start the discussion.