policy: track exact compaction lineage separately from snapshot generation time #15
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
After Issue #14, freshness windows work, but the compaction age is still inferred from
manifest.generated_at. That timestamp is refreshed by delta-built snapshots too, which means repeated delta merges can postpone exact compaction indefinitely. We should track exact compaction lineage explicitly, e.g.last_exact_compaction_at/base_compaction_snapshot_id, so reuse age and compaction cadence are enforced independently.Implemented and live-verified exact compaction lineage. The manifest now carries
last_exact_compaction_atandbase_compaction_snapshot_id, andrefresh-policy-snapshotuses those fields so compaction age is no longer inferred fromgenerated_at. Live verification showed the intended behavior: a fresh delta-built snapshot preserved the older exact-compaction lineage, and after forcinglast_exact_compaction_atfar into the past with live deltas present, refresh correctly chosefull_rebuildwithrefresh_reason=compaction_due_to_exact_lineage_ageeven though the snapshotgenerated_atwas fresh. The sacred gate stayed green after the rebuild.