Completed
Whoops! All Rust • Implemented new research storage design
Class Central Classrooms beta
YouTube videos curated by Class Central.
Classroom Contents
Whoops! I Rewrote it in Rust
Automatically move to the next video in the Classroom when playback concludes
- 1 Intro
- 2 Pelikan • open source caching framework • single codebase • multiple solutions
- 3 Use Rust to: • add Transport Layer Security (TLS) • match performance of Cimplementation
- 4 Rust Storage in Pelikan: 2018 Engineer wants to add storage to Pelikan and write the library in Rust . Used the framework with FFI to use Rust Storage • First commit of Rust to Pelikan!
- 5 Rust Server in Pelikan: 2019 Engineer wants to use Rust for server code • Tokio / async server • Reuse components for Storage / Parser/Buffers/Metrics
- 6 Performance Testing Apply synthetic workloads with ratelimit to measure latency at a specific requestrate
- 7 Performance Problems . Throughput 10-15% slower a need more instances to match throughput requirements . Latency 25-30% higher l@p999/99.9th Percentile
- 8 Prototype • Memcached protocol compatible • wrapped std::collections::HashMap as temporary storage • benchmarking looked good • next step: FFI for storage library
- 9 Whoops! All Rust • Implemented new research storage design
- 10 Rust Tooling Benefits • cargo bench & criterion o microbenchmarking of critical components
- 11 Sorting by TTL • Enables efficient eager expiration no need to expire on read • New eviction strategies o closest to expiration
- 12 PMEM Support • Intel Optane Persistent Memory IPMEMI • Metadata in DRAM
- 13 Next Steps Path to Production • feature complete • more testing • production canary • deployment
- 14 Rewriting: Costs and Benefits Costs • Extra time would have caused missed deadlines • Duplicating work that's been paid for
- 15 Cand Rust are both very fast Profiling and benchmarking helped get us match the performance of the implementation
- 16 Pelikan has an exciting future with Rust!