Design deduplicated file storage on filesystem
GoogleSoftware Engineer · Technical ScreenLast updated
This question evaluates system design and storage engineering competencies, including multi-tenant isolation, authentication and authorization models, content-addressable storage and deduplication, reference counting and garbage collection, concurrency control, API surface design, and scaling across nodes using only filesystem primitives.
Design a multi-tenant file storage service where users can upload, get, and delete files. Identical files should be deduplicated; users must be isolated from each other. You may not use a database—only OS filesystem APIs. Define authentication and authorization (who can upload), object naming, APIs, content-addressed storage, reference counting and garbage collection, consistency under concurrent updates and deletes, and scaling across multiple storage nodes.
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.