Design a crash-resilient file system

Quick Overview

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.

Design a crash-resilient file system

Company: Netflix

Role: Software Engineer

Category: System Design

Difficulty: easy

Interview Round: Technical Screen

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

Overview: 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.

|Home/System Design/Netflix
Netflix logo
Netflix
Dec 16, 2025
easySoftware EngineerTechnical ScreenSystem Design
16
0

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?

Submit Your Answer to Earn 20XP

Sign in to leave a comment

Loading comments...