How WAL mechanics, checkpointing, concurrency rules, recovery work in tursodb
Turso uses WAL (Write-Ahead Logging) mode exclusively.
Files: .db, .db-wal (no .db-shm - Turso uses in-memory WAL index)
Transfers WAL content back to main DB.
WAL grows → checkpoint triggered (default: 1000 pages) → pages copied to DB → WAL reused
Checkpoint types:
SQLite uses a shared memory file (-shm) for WAL index. Turso does not - it uses in-memory data structures (frame_cache hashmap, atomic read marks) since multi-process access is not supported.
On crash:
Key files:
Per-Connection (private):
Pager - page cache, dirty pages, savepoints, commit stateWalFile - connection's snapshot view:
max_frame / min_frame - frame range for this connection's snapshotmax_frame_read_lock_index - which read lock slot this connection holdslast_checksum - rolling checksum stateShared across connections:
WalFileShared - global WAL state:
frame_cache - page-to-frame index (replaces .shm file)max_frame / nbackfills - global WAL progressread_locks[5] - read mark slots (TursoRwLock with embedded frame values)write_lock - exclusive writer lockcheckpoint_lock - checkpoint serializationfile - WAL file handleDatabaseStorage - main .db fileBufferPool - shared memory allocationnpx skills add tursodatabase/transaction-correctness下载完整 Skill 目录,包含 SKILL.md 及所有相关文件
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer