async-io-model
Explanations of common asynchronous patterns used in tursodb. Involves IOResult, state machines, re-entrancy pitfalls, CompletionGroup. Always use these…
Overview of Experimental MVCC feature - snapshot isolation, versioning, limitations
$ npx -y skills add tursodatabase/turso --skill mvcc --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/mvccContext preview
The summary Claude sees to decide when to auto-load this skill.
Overview of Experimental MVCC feature - snapshot isolation, versioning, limitations
name: mvcc description: Overview of Experimental MVCC feature - snapshot isolation, versioning, limitations
Multi-Version Concurrency Control. **Work in progress, not production-ready.**
**CRITICAL**: Ignore MVCC when debugging unless the bug is MVCC-specific.
PRAGMA journal_mode = 'mvcc';
Runtime configuration, not a compile-time feature flag. Per-database setting.
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.
| Aspect | WAL | MVCC | |--------|-----|------| | Write granularity | Every commit writes full pages | Affected rows only | Readers/Writers | Don't block each other | Don't block each other | | Persistence | `.db-wal` | `.db-log` (logical log) | | Isolation | Snapshot (page-level) | Snapshot (row-level) |
Each row version tracks:
Database
└─ mv_store: MvStore
├─ rows: SkipMap<RowID, Vec<RowVersion>>
├─ txs: SkipMap<TxID, Transaction>
├─ Storage (.db-log file)
└─ CheckpointStateMachine**Per-connection**: `mv_tx` tracks current MVCC transaction.
**Shared**: `MvStore` with lock-free `crossbeam_skiplist` structures.
Flushes row versions to B-tree periodically.
PRAGMA mvcc_checkpoint_threshold = <pages>;
Process: acquire lock → begin pager txn → write rows → commit → truncate log → fsync → release.
**Not implemented:**
**Known issues:**
# Run MVCC-specific tests cargo test mvcc # TCL tests with MVCC make test-mvcc
Use `#[turso_macros::test(mvcc)]` attribute for MVCC-enabled tests.
#[turso_macros::test(mvcc)]
fn test_something() {
// runs with MVCC enabled
}A SQL database in Rust: SQLite-compatible, now also speaking Postgres (experimental). The LLVM of databases.
Repo: tursodatabase/turso
Explanations of common asynchronous patterns used in tursodb. Involves IOResult, state machines, re-entrancy pitfalls, CompletionGroup. Always use these…
Change Data Capture - architecture, entrypoints, bytecode emission, sync engine integration, tests
General Correctness rules, Rust patterns, comments, avoiding over-engineering. When writing code always take these into account
How to debug tursodb using Bytecode comparison, logging, ThreadSanitizer, deterministic simulation, and corruption analysis tools
Information about the differential fuzzer tool, how to run it and use it catch bugs in Turso. Always load this skill when running this tool
Generate hierarchical AGENTS.md knowledge base for a codebase. Creates root + complexity-scored subdirectory documentation.