mvcc

Installation
Summary

Experimental multi-version concurrency control with row-level snapshot isolation for SQLite-compatible databases.

  • Enables per-transaction snapshot isolation where readers and writers don't block each other; enabled via PRAGMA journal_mode = 'mvcc' on a per-database basis
  • Tracks row versions with begin/end timestamps and uses a logical log (.db-log) instead of WAL for persistence; includes configurable checkpointing via PRAGMA mvcc_checkpoint_threshold
  • Architecture uses lock-free SkipMap structures for row versions and transactions, with per-connection transaction tracking and a shared MvStore
  • Current limitations: garbage collection not implemented, no recovery from logical log on restart, checkpointing blocks all transactions, and memory use concerns without disk spilling
  • Provides snapshot isolation only, not serializability; marked work-in-progress and not production-ready
SKILL.md

MVCC Guide (Experimental)

Multi-Version Concurrency Control. Work in progress, not production-ready.

CRITICAL: Ignore MVCC when debugging unless the bug is MVCC-specific.

Enabling MVCC

PRAGMA journal_mode = 'mvcc';

Runtime configuration, not a compile-time feature flag. Per-database setting.

How It Works

Standard WAL: single version per page, readers see snapshot at read mark time.

MVCC: multiple row versions, snapshot isolation. Each transaction sees consistent snapshot at begin time.

Related skills
Installs
581
GitHub Stars
18.7K
First Seen
Jan 28, 2026