fix: generalize summary cost evidence across arrival modes - #532
Merged
Merged
Conversation
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.
Addresses the general evidence-model question raised in #528. Kept separate because analytical workload coverage goes beyond #511/#528's operator/scalar representation design. Based on
main, with no #528 commits included.Before this PR:
StreamingSummaryInputs::from_workloadrejected fixed snapshots, even though the lifecycle planner and comparison scope already supportedAtRest. Generic operator evidence types were named as if they were stream-specific.After this PR: a fixed 10-row snapshot can build a shared summary once and answer five evaluations with zero arrival updates. The actual lifecycle planner selects a completely costed at-rest summary against its matching raw scan. The same
SummaryOperatorEvidenceandSummaryNodeEvidenceAPI serves continuous ingestion.AtRest; require fresh snapshot cardinality and retain mandatory fresh rate evidence for continuous ingestion.summary-maintenance-resource-v2.Mixed/Unknownstill fail explicitly: the workload schema does not separate backlog and arrivals. This PR does not add physical computation-placement policy (#530). #528 owns removal of “readout” and unified operator names; those representation edits are intentionally absent from this main-based diff.Validation: regression reproduced
UnsupportedDataArrival(AtRest)before the fix; all 1,524 workspace tests pass on Rust 1.99, including 43 summary-cost tests. Formatting and workspace/all-target clippy with warnings denied pass. Tests cover actual lifecycle selection, missing/contradictory evidence, direct-provider bypass attempts, and existing continuous/mixed behavior.