Graphite-Rust: A Fast Time Series Database Implementation
summary
Reimplements graphite’s whisper archive in Rust and ships to production, claiming much faster writes while remaining compatible with Graphite wire protocol and whisper disk format. Uses Rust features: statically linked binaries and mmap for zero copy, explicit types for archive indices and buckets, and benchmark suites to measure improvements. Implements a carbon-style cache with open-file hashmap, eviction questions, and periodic fsync to keep web reads fresh. Demonstrates it works in production but surface-level Python behavior (open/close, buffer reuse) still remains.
AI-written summary · about
chapters (33)
- 0:00Introduction
- 0:53Languages
- 2:18Graphite
- 3:38Time Series Database
- 4:27Agenda
- 4:50Metrics
- 5:05Longlived metrics
- 5:50Primitive metrics
- 6:04Querying
- 6:45Timestamps
- 7:10Disk Usage
- 7:35Instanting Services
- 7:58Installation
- 8:36Carbon
- 9:01Bite on Disk
- 9:20Rust is fast
- 9:30Whisper
- 9:42Sketch
- 11:11Archive Layout
- 11:32Whisper File
- 12:35Archive Infos
- 14:23Wraparound
- 14:40Sliced Reuse
- 15:10Wraparound Read
- 17:10Split at Mute
- 17:37Is it faster
- 18:21Easier to distribute
- 18:35Features
- 18:59Carbon Cash under the hood
- 19:15Issues with HTTP libraries
- 19:28Mapping data
- 20:17FK rewrites
- 21:20Serverside rendering
related talks
28mRust and Scala, Sitting in a Tree….
16mEmpowering Fearless Data Engineering
46mAdopting Rust by gracefully oxidising web applications
44mBending the Curve: How Rust Helped Us Write Better Ruby
46mA journey to performance: using Rust in Mercurial
34mWhoops! I Rewrote it in Rust
40mRust’s approach of getting things right
40mWhy Rust?
