Conversation
Pass 4 emitted the full live-account set on every run — right before the live signers writer existed, wrong since it deployed. The second production pass measured it: every other correction collapsed to churn while this one re-emitted 10.9M identical rows, so the summary line was a constant. The pass now reads max(last_updated_ledger) per account (sliced, RMT-deduped) and emits only what the snapshot holds newer. The summary reports written and unchanged, summing to the live-account count. Verified on production: 0 written, 10,909,433 unchanged at checkpoint 64,237,951. Deliberately no floor on the version read (fails toward re-emitting, which RMT absorbs) and no content diff at equal versions (0503's audit).
Collaborator
Author
|
Superseded by #568: task 0210 split the seed passes into modules, so the same gate is rebuilt there (snapshot/entry_state.rs). |
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.
What
snapshot-seed's signers pass (account_entry_state) emitted the full live-account set on every run — no comparison against what the database already holds. Right when written (the live signers writer did not exist yet), wrong since that writer deployed: on the second production pass every other correction collapsed to churn while this one re-emitted 10.9M identical rows, so its summary line was a constant that could not carry a signal.The pass now reads
max(last_updated_ledger)per account (sliced on the key like every other read here, RMT-deduplicated) and emits only accounts the snapshot holds newer. The summary reports written and skipped-as-unchanged, and the two sum to the snapshot's live-account count.Verified
Production dry-run at checkpoint 64,237,951 (read-only): 0 written, 10,909,433 unchanged, sum equal to the snapshot's live accounts to the row. A later pass that writes millions again now means the live signers writer stopped stamping — which is the point.
Deliberately out of scope
Checks
cargo clippy --all-targets -D warningscleandocs/backfills.mdgains the signers-gate paragraphcrates/api/**