Overview of Experimental MVCC feature - snapshot isolation, versioning, limitations
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 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.
don't have the plugin yet? install it then click "run inline in claude" again.