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

joaoh82 / rust_sqlite / 25661129376
69%

Build:
DEFAULT BRANCH: main
Ran 11 May 2026 09:16AM UTC
Jobs 1
Files 61
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

11 May 2026 09:11AM UTC coverage: 68.807% (+0.6%) from 68.239%
25661129376

push

github

web-flow
feat(engine): Phase 11.9 WAL log-record durability + crash recovery (SQLR-22) (#130)

Pre-11.9, BEGIN CONCURRENT commits persisted *table state* through the
legacy save_database mirror, but MvStore's version index was reborn
empty on every reopen. That's correct for single-session workloads but
breaks down once cross-process MVCC matters — a second process could
hand out a begin_ts below an already-committed version's end and the
visibility rule would miscategorise one side.

11.9 closes that gap by adding a typed MVCC log-record frame on top of
the existing per-page WAL frames. The MVCC frame is appended before
the legacy save's commit-frame fsync, so a single fsync covers both:
a crash either keeps both writes or loses both — torn-write atomicity
for the whole transaction. On reopen, the WAL replay decodes every
MVCC frame and re-pushes the row versions into MvStore, then seeds
MvccClock past max(header.clock_high_water, max(commit_ts among
replayed batches)) so post-restart transactions can never regress.

Engine changes:
- src/mvcc/log.rs: MvccCommitBatch + MvccLogRecord types and codec
  ("MVCC0001" magic + commit_ts + record stream, fits one frame body).
- src/sql/pager/wal.rs: WAL_FORMAT_VERSION 2 → 3; MVCC_FRAME_MARKER =
  u32::MAX as the page-number discriminator; replay branches the
  frame stream into pending_mvcc that promotes onto recovered_mvcc on
  each commit barrier; Wal::append_mvcc_batch +
  Wal::recovered_mvcc_commits accessors.
- src/sql/pager/pager.rs: Pager proxies (append_mvcc_batch,
  recovered_mvcc_commits, clock_high_water, observe_clock_high_water).
- src/sql/pager/mod.rs: replay_mvcc_into_db drains recovered batches
  into Database::mv_store and seeds MvccClock at open time.
- src/connection.rs: commit_concurrent encodes the resolved write-set
  into an MvccCommitBatch, appends it pre-save_database, and bumps the
  in-memory WAL header's clock_high_water; six new tests cover
  round-trip persistence, multi-row batches, ROL... (continued)

407 of 464 new or added lines in 5 files covered. (87.72%)

10983 of 15962 relevant lines covered (68.81%)

1.24 hits per line

Uncovered Changes

Lines Coverage ∆ File
42
84.84
src/mvcc/log.rs
10
89.28
0.57% src/connection.rs
3
93.0
-0.43% src/sql/pager/pager.rs
1
90.67
0.02% src/sql/pager/mod.rs
1
92.56
0.01% src/sql/pager/wal.rs
Jobs
ID Job ID Ran Files Coverage
1 25661129376.1 11 May 2026 09:16AM UTC 61
68.81
GitHub Action Run
Source Files on build 25661129376
  • Tree
  • List 61
  • Changed 5
  • Source Changed 0
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 0b969f65 on github
  • Prev Build on main (#25655926923)
  • Next Build on main (#25662660064)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc