Design an in-memory key-value database
Company: OpenAI
Role: Software Engineer
Category: System Design
Difficulty: hard
Interview Round: Technical Screen
Design an in-memory key-value database. Support set/get/delete, conditional updates (e.g., compare-and-set), TTL expiration, and atomic multi-key operations. Explain data structures to achieve O(
1) average-time reads/writes, how you track expirations (e.g., timing wheel or min-heap), memory management and eviction (e.g., LRU), and persistence via append-only log with periodic snapshots. Detail concurrency control (single-threaded event loop vs locks), crash recovery, replication and sharding for scale, consistency guarantees, backpressure, and observability. Provide API definitions, schemas for on-disk records, failure modes, and metrics.
Quick Answer: This question evaluates system-design and storage engineering competencies, including in-memory data structures, concurrency control, persistence and durability mechanisms, replication and sharding strategies, and operational concerns like observability and backpressure.