Restore persisted summaries through their catalog identity - #630
Merged
Merged
Conversation
zzylol
changed the base branch from
fix/continuous-summary-completeness
to
main
September 11, 2026 02:02
zzylol
marked this pull request as ready for review
September 11, 2026 02:17
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.
Persisted summary payloads lost their authoritative materialization identity on restart. Recovery supplied an unset policy fingerprint, which an installed SummaryCatalog correctly rejected; an existing restart test hid this by manually registering the SID again.
This persists shared SummaryDefinitionId and CatalogGeneration references in the normalized sidecar and restores the catalog binding before reading disk state. Catalog generations are cached with their immutable catalog and shared through Arc references; one generation is serialized once across SID bindings. Legacy and foreign-generation records remain unbound under an authoritative catalog.
Before this PR, durable bytes could exist while the installed query plan could not resolve their summary. After this PR, the production restart test ingests a sum of 15, drains and flushes it, terminates the backend, and gets the same warm result from a fresh process without another write or registration call.
Verification: all eight real production process tests pass (18.21 s), including the actual restart/readout; the durable store inventory/readout regression also passes after removing its manual re-registration. Normalized sidecar and provenance rejection tests are included; CI is pending. No latency or resource benefit is claimed.
The prerequisite #627 is merged. This covers authoritative restart identity, not the complete durable lifecycle: retirement/deletion tombstones and compatibility across different catalog generations need separate changes. The process proof uses exact Sum; newly added sketch families require their own codec/restart verification.