Skip to content

perf!: cache compact DAG analysis - #180

Merged
eitsupi merged 2 commits into
mainfrom
feature/compact-manifest-cache
Aug 29, 2026
Merged

eitsupi merged 2 commits into
mainfrom
feature/compact-manifest-cache

Conversation

@eitsupi

@eitsupi eitsupi commented Aug 29, 2026

Copy link
Copy Markdown
Owner

Summary

  • replace the graph-only manifest cache with a compact model-level analysis containing the DAG, compatibility diagnostics, project name, and referenced file paths
  • validate the single cache slot with manifest content bytes under the dlin package-version compatibility boundary
  • skip typed Manifest deserialization on warm graph, list, impact, and summary commands while keeping column lineage, MCP, and check-manifest on their direct typed-manifest paths
  • restore SQL content from the same bytes used to select the cached DAG, preventing mixed-artifact output when the manifest changes during an invocation
  • fail open for corrupt or incompatible cache files and replace cache JSON through a temporary sibling file

Breaking change

The public ManifestGraphCache API is replaced by ManifestAnalysisCache and the non-exhaustive ManifestAnalysis value. dlin is pre-1.0 and there are no known external users of the old raw cache API.

Benchmark

Medium cache workload, 512 models, release binary, 10 runs / 2 warmups. Persistent state is controlled; OS page cache is not flushed.

Manifest summary Baseline median Compact cache median
persistent warm 11.599 ms 5.723 ms

The final warm median is about 51% lower than the same-main baseline. The cache file grows from 175,969 bytes to 188,679 bytes (about 7.2%) without persisting the raw typed Manifest. SQL, manifest, and column cold/warm/no-cache semantic probes all pass, and warm cache files remain unchanged.

Validation

  • cargo fmt --all -- --check
  • cargo clippy --workspace --all-targets --all-features -- -D warnings
  • cargo test --workspace --all-targets --all-features
  • cache benchmark semantic and invalidation suite on the medium workload

@eitsupi eitsupi changed the title perf(manifest)!: cache compact DAG analysis perf!: cache compact DAG analysis Aug 29, 2026
@eitsupi
eitsupi marked this pull request as ready for review August 29, 2026 15:00
@eitsupi
eitsupi merged commit 3723b79 into main Aug 29, 2026
12 checks passed
@eitsupi
eitsupi deleted the feature/compact-manifest-cache branch August 29, 2026 15:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant