feat(repair): use presence index for all repair cycles, not just cleanup#202
Open
RolfAris wants to merge 1 commit intoOpenAudio:mainfrom
Open
feat(repair): use presence index for all repair cycles, not just cleanup#202RolfAris wants to merge 1 commit intoOpenAudio:mainfrom
RolfAris wants to merge 1 commit intoOpenAudio:mainfrom
Conversation
Move the listing-derived presence index from cleanup-only to all repair cycles (uploads, previews, qm_cids). Always on — no flag needed. The index replaces per-key HeadObject with a single ListObjects pagination at cycle start. Staleness between listings is covered by the existing knownPresent write-path cache (PR OpenAudio#192). On build failure, falls back to per-key HeadObject (same as before).
6c8e678 to
697ca0d
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Extends #199 to cover all repair cycles, not just cleanup. Always on. The fallback on build failure is the safety mechanism.
buildRepairPresenceIndexmoves from the qm_cids cleanup block to the start ofrunRepairand is passed to all three loops (uploads, previews, qm_cids).RepairQmCidsUseListIndexconfig field and env var removed.On build failure,
presenceIndexstays nil and every check falls back to per-keyAttributes.knownPresent(#192) catches writes between listings.Evidence
24h paired test: two nodes on this PR branch (one commit on main), same 1h interval (
default:"1h"). One builds the index, the other doesn't.99.8% HeadObject reduction. Identical repair behavior: same pulls needed, same failure rate.