Design a crash-resilient file system
NetflixSoftware Engineer · Technical ScreenLast updated
This question evaluates understanding of durable storage and crash recovery mechanisms in file system design, including metadata consistency, durability guarantees, and operational concerns like performance and space overhead.
Prompt
Design a resilient file system that can recover file contents correctly after a system crash (e.g., power loss / kernel panic). The interviewer gives a broad prompt (no coding required) and expects you to propose a production-ready design and discuss bottlenecks and improvements.
Requirements
- Support basic operations:
create,read,write/append,delete,rename. - After a crash at any moment, the system must be able to recover to a consistent state such that:
- File contents are not corrupted.
- Metadata is consistent (directory entries, inode/metadata, free-space tracking).
- Define the durability guarantee you target (e.g., after
fsync/close, data must survive).
Non-functional considerations
- Performance (throughput/latency) under heavy writes.
- Space overhead.
- Operational concerns for “production”: observability, upgrades, capacity growth.
Follow-ups (discuss explicitly)
- Where are the bottlenecks in your design?
- What changes would you make to ship this to production at scale?
Solution walkthrough is for members
Get the full walkthrough with reference code and complexity analysis, plus Kitty Coach at 300 messages a day. Hints, the code runner and community answers stay free.