RavenDB: Practical Considerations for ACID/MVCC Storage Engines
summary
Describes RavenDB’s Voron storage engine built in C# with a page-based MVCC model: copy-on-write modified pages, a page translation table for snapshots, and a journal with checksums written via direct I/O / FUA. Commits use background async flush and transaction merging so a single-writer can still reach 150–200k writes/sec. Uses diffs and compression to cut IO, preallocated 256MB journal files, and tests with block-reordering tools (Alice/Bob) plus power-cycle experiments; recovery applies validated journal entries to the data file.
AI-written summary · about
chapters (18)
- 0:00Introduction
- 1:41How to build a storage engine
- 2:55What is RavenDB
- 4:33Pet Peeve
- 10:27Communication
- 17:19Data Model
- 19:08Page Translation Table
- 21:26Page Translation Table Demo
- 21:49Multiple Pages
- 25:27Committing Transactions
- 26:11Fsync Gate
- 27:45Getting to Durable System
- 29:16Programming Models
- 33:22Sequential Rights
- 35:24Compression
- 38:43Transaction Merging
- 44:58Provisioning IO
- 52:31Questions
related talks
01h 03mExtreme Performance Architecture
42mScaling ACID SQL
01h 00mPerformance Optimizations in the Wild
46mHighly Available & Scalable Solutions with RavenDB
46mNoSQL, Data Processing, and Business Transparency with RavenDB
52mACID in SQL Server: what it is, how it works, and how to live more adventurously.
52mTransactions: Myths, Surprises and Opportunities
52mACID in SQL Server: what it is, how it works, and how to live more adventurously.
