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?