• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

wegamekinglc / calc-flow / 32999314484
94%

Build:
DEFAULT BRANCH: main
Ran 26 Aug 2026 06:46PM UTC
Jobs 3
Files 110
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

26 Aug 2026 06:22PM UTC coverage: 91.359% (+0.07%) from 91.291%
32999314484

push

github

web-flow
perf: make join epoch capture proportional to dirty state (DAL-160) (#197)

* perf: make epoch checkpoint capture cost proportional to dirty state

The frozen AC19/AC20 baseline (DAL-130, main@f74f32a) quantified two
architecture-level capture violations against the FR47 independence NFR:
at equal dirty cardinality, capture cost grew linearly with total
retained state (8.8 ms @17.5k to 201.7 ms @242.5k rows), and at large
state it blew up superlinearly (45-78.5 s per epoch at ~1.04M retained
rows), so epoch checkpoint timeouts would kill big-state jobs long
before any state-byte limit.

Three layers were each re-reading or re-encoding the full retained
payload every epoch:

- the Join dirty log encoded each upsert by scanning live state for its
  row, O(dirty x state) per capture; upserts now carry the admitted
  record and charge, so delta encoding is O(dirty) with no state scan;
- OperatorStateSnapshot.segments moved owned Vec<u8>, so every carried
  base/delta segment was deep-copied per epoch; the new public
  StateSegment shares one Arc allocation and computes its SHA-256 once,
  and the Join checkpoint now clones cheap handles;
- the manifest transaction re-hashed, re-wrote, and re-validated every
  segment at every epoch, and publish/retention re-read every referenced
  segment; a session-scoped record of committed handles now reuses the
  already-committed handle for unchanged content and skips the
  redundant same-session re-read, while recovery-time selection still
  revalidates every referenced segment byte on every fresh session
  (AC-08). Manifests may reference handles committed at earlier epochs,
  so recovery loads validate handle ownership without a shared epoch.

The tombstone coalescing path in the Join watermark eviction used the
same quadratic pending-log scan and is now a single indexed pass.

A resident stream_join_perf Criterion suite preserves the frozen AC19
baseline scenarios plus a capture-independence canary pair (equal di... (continued)

449 of 463 new or added lines in 9 files covered. (96.98%)

7 existing lines in 2 files now uncovered.

65688 of 71901 relevant lines covered (91.36%)

2226.92 hits per line

Uncovered Changes

Lines Coverage ∆ File
7
95.1
0.46% crates/calc-flow/src/state/transaction.rs
6
80.77
-0.11% crates/calc-flow/src/operator/window.rs
1
88.28
0.26% crates/calc-flow/src/operator/join.rs

Coverage Regressions

Lines Coverage ∆ File
6
81.7
1.89% crates/calc-flow-python/src/runtime.rs
1
95.1
0.46% crates/calc-flow/src/state/transaction.rs
Jobs
ID Job ID Ran Files Coverage
1 studio - 32999314484.1 26 Aug 2026 06:47PM UTC 5
89.41
GitHub Action Run
2 python - 32999314484.2 26 Aug 2026 06:46PM UTC 21
92.74
GitHub Action Run
3 rust - 32999314484.3 26 Aug 2026 07:21PM UTC 84
91.33
GitHub Action Run
Source Files on build 32999314484
  • Tree
  • List 110
  • Changed 12
  • Source Changed 10
  • Coverage Changed 11
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #32999314484
  • 22257f85 on github
  • Prev Build on main (#32991828616)
  • Next Build on main (#33026877254)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc