{"enrichment":{"faq":[{"a":"MVCC (Multi-Version Concurrency Control) is enabled in SQLite through pragma configuration. Set `PRAGMA journal_mode = mvcc` to activate the experimental feature. Once enabled, MVCC allows concurrent readers and writers to operate without blocking each other by maintaining row-level snapshot isolation. The skill documents the exact pragma syntax and configuration steps needed to activate MVCC in your database.","q":"How to enable MVCC in SQLite?"},{"a":"MVCC enables concurrent reads and writes without blocking by maintaining multiple versions of rows with begin/end timestamps. When a transaction starts, it receives a snapshot of the database at that moment. Readers see their snapshot version while writers create new versions, and both operate simultaneously without locks. MVCC uses lock-free data structures to track these versions efficiently, allowing high concurrency while maintaining isolation guarantees.","q":"How does MVCC work in databases?"},{"a":"MVCC snapshot isolation provides each transaction with a consistent view of the database at a specific point in time, preventing dirty reads and phantom reads. Unlike WAL (Write-Ahead Logging), which serializes writes, MVCC allows true concurrent writes through versioning. The skill compares both concurrency models, explaining that MVCC offers better parallelism for mixed read-write workloads, while WAL remains simpler for write-heavy scenarios.","q":"What is MVCC snapshot isolation and how does it compare to WAL?"},{"a":"MVCC has several documented limitations: garbage collection for old versions is incomplete, recovery from logical logs has gaps, and checkpointing can block transactions under certain conditions. Memory usage concerns arise from maintaining multiple row versions. The skill identifies these production readiness gaps, helping teams assess whether MVCC suits their workload or if they should wait for maturation of the experimental feature.","q":"What are MVCC limitations and known issues before production use?"},{"a":"MVCC checkpoint behavior is controlled through pragma settings that determine when old versions are cleaned up. The skill documents configuration options for checkpoint thresholds, though garbage collection remains incomplete in the current implementation. Understanding these settings helps balance memory usage against concurrency benefits, though the skill notes that memory concerns persist as a known limitation requiring careful monitoring in deployments.","q":"How do you configure MVCC checkpoint threshold and memory usage?"},{"a":"MVCC testing patterns are documented using Turso macros and test frameworks that verify concurrent read-write scenarios. The skill provides testing approaches to validate snapshot isolation behavior, confirm that readers and writers don't block each other, and detect edge cases in version management. These patterns help developers verify MVCC correctness before deploying to production environments.","q":"How can you test MVCC-specific functionality in database code?"}],"shadow_tags":["row-versioning","snapshot-isolation","concurrency-control","transaction-isolation","lock-free-data-structures","checkpoint-mechanism","logical-logging","experimental-feature","memory-management","database-architecture"],"summary_rewrite":"This skill documents Turso's experimental Multi-Version Concurrency Control system, which allows readers and writers to operate simultaneously without blocking through row-level snapshot isolation. It covers enabling MVCC via pragma, the versioning model tracking begin/end timestamps, and the architecture built on lock-free data structures. The guide also details checkpointing behavior, current limitations like garbage collection and recovery gaps, and testing patterns for MVCC-enabled code."},"files":[{"bytes":2739,"path":".claude/skills/mvcc/SKILL.md","sha256":"5abdeb34cb08943e564e8a42f2f8f3c12029b9e9026b2a4d278775bdd390e734","url":"https://skillfed.io/files/tursodatabase/turso/mvcc/7c11a5c4/SKILL.md"}],"id":"tursodatabase/turso/mvcc","links":{"html":"https://skillfed.io/tursodatabase/turso/mvcc","md":"https://skillfed.io/tursodatabase/turso/mvcc.md","repo":"https://github.com/tursodatabase/turso"},"meta":{"agents_supported":["claude-code"],"first_seen":"2026-07-28","forks":1211,"language":"Rust","last_updated":"2026-07-28","license":"MIT","name":"mvcc","publisher":"tursodatabase","stars":23479},"relations":{"similar":[{"id":"tursodatabase/turso/memory-benchmark"},{"id":"tursodatabase/turso/storage-format"},{"id":"tursodatabase/agent-skills/turso-db"},{"id":"tursodatabase/turso/cdc"},{"id":"tursodatabase/turso/transaction-correctness"},{"id":"tursodatabase/turso/debugging"},{"id":"tursodatabase/turso/yield-injections"},{"id":"itechmeat/llm-code/turso"},{"id":"tursodatabase/turso/pr-workflow"},{"id":"tursodatabase/turso/code-quality"}]},"slug":{"owner":"tursodatabase","repo":"turso","skill":"mvcc"},"version":"7c11a5c4"}
