Katkat

Design a crash-resilient file system

NetflixSoftware Engineer · Technical Screen

Last 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?