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

joaoh82 / rust_sqlite / 25627067133 / 1
69%
main: 69%

Build:
DEFAULT BRANCH: main
Ran 10 May 2026 11:09AM UTC
Files 57
Run time 1s
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

10 May 2026 11:04AM UTC coverage: 66.605% (+0.6%) from 66.053%
25627067133.1

push

github

web-flow
feat(engine): Phase 11.2 logical clock + active-tx registry (SQLR-22) (#123)

Second slice of Phase 11 (concurrent writes via MVCC + BEGIN
CONCURRENT). Adds the MVCC primitives that 11.3 will plug an
in-memory version index into and 11.4 will hand begin/commit
timestamps to.

New `sqlrite::mvcc` module:
- MvccClock — process-wide monotonic u64 over AtomicU64. tick(),
  now(), observe(value). The observe-CAS-loop guarantees the clock
  never moves backwards under contention; used at WAL replay to
  bring the in-memory clock up to the persisted high-water mark.
- ActiveTxRegistry — Mutex<BTreeMap> over in-flight TxId → begin_ts
  mappings. register(&clock) returns a RAII TxHandle that
  unregisters on drop. min_active_begin_ts() answers Phase 11.6 GC's
  "what's still possibly visible" question in O(log N).
- TxId newtype + TxTimestampOrId tagged union, defined now so 11.4
  can plug in without re-litigating the type shape.

WAL format bumps v1 → v2:
- Bytes 24..32 of the WAL header (previously reserved-zero) now
  carry the persisted clock_high_water u64.
- v1 WALs open cleanly — those zero bytes read as "clock never
  advanced" — and the next checkpoint rewrites the header at v2. No
  offline upgrade step.
- New WAL_FORMAT_VERSION_MIN_SUPPORTED = 1 keeps the version-range
  check explicit. Forward versions (e.g. v3) reject with a clean
  error rather than misinterpreting bytes.
- Wal::clock_high_water() / Wal::set_clock_high_water(value)
  accessors. The setter rejects regressions with a typed error
  (same value is a no-op).

Not yet wired into the executor — that's 11.3. The clock is
standalone today; only the mvcc module's own tests tick it. The
plumbing is in place so 11.3 can read Wal::clock_high_water() at
open time and feed the in-memory clock into a Database field.

21 new tests:
- 8 in mvcc::clock::tests — seed, default, monotonicity, observe,
  contention (8 threads × 250 ticks unique).
- 7 in mvcc::registry::tests — empty-min, register-adva... (continued)

9715 of 14586 relevant lines covered (66.6%)

1.22 hits per line

Source Files on job 25627067133.1
  • Tree
  • List 57
  • Changed 2
  • Source Changed 0
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 25627067133
  • 6838bff7 on github
  • Prev Job for on main (#25626413047.1)
  • Next Job for on main (#25630593094.1)
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