Design a File Backup System
NetflixSoftware Engineer · Technical ScreenLast updated
This question evaluates understanding of scalable system design, file synchronization and metadata handling, data consistency, fault tolerance, and performance trade-offs involved in designing a file backup system.
Design a scalable file backup system.
You are given access to basic file-system primitives such as listing directories, reading file metadata, reading file contents, creating directories, writing files, and deleting or moving temporary files. The system should back up a source directory tree to a destination storage location while preserving the same directory structure at the destination.
Discuss:
- How the backup process discovers files and directories.
- How it ensures the destination has the same structure as the source.
- How it detects changed, new, and deleted files.
- How it scales to large directory trees and large files.
- How it handles failures, retries, partial writes, and consistency.
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.