AdvancedSystem-Design
45 min
Design a Time-Series Metrics Database
DatabasesStorageObservabilityCompression
Advertisement
Interview Question
Design a horizontally scalable time-series database for metrics with high-cardinality support, rollups, and retention policies.
Key Points to Cover
- Write path: ingestion, batching, WAL, backpressure
- Schema/indexing: labels/tags, cardinality control, inverted index
- Compression & storage layout (LSM/columnar, downsampling, rollups)
- Query path: aggregations, range queries, precomputed materializations
- Retention & tiered storage (hot/warm/cold), compaction strategies
- Multi-tenant isolation and quota/limits
Evaluation Rubric
High-throughput, durable ingest path25% weight
Cardinality-aware schema/indexing25% weight
Efficient query/rollup/compaction25% weight
Retention/tiering and multi-tenancy25% weight
Hints
- 💡Cardinality explosions often come from unbounded labels.
Potential Follow-up Questions
- ❓How do you detect label cardinality abuse?
- ❓How would you store exemplars/traces?
Advertisement