Explain the data structures and algorithms that you would use to design an in-memory file system. Illustrate with an example in the code logic where possible.
Asked In: Amazon
A file system, in its most simplistic version, consists of Files and Directories. Each Directory contains a set of Files and Directories. Since Files and Directories share so many characteristics, we’ve implemented them such that they inherit from the same class, Entry.
Implemented Main logic in Java
Alternatively, we could have implemented Directory such that it contains separate lists for files and subdirectories. This makes the nurnberOfFiles () method a bit cleaner, since it doesn’t need to use the instanceof operator, but it does prohibit us from cleanly sorting files and directories by dates or names.
For data block allocation, we can use bitmask vector and linear search (see “Practical File System Design”) or B+ trees (see Reference or Wikipedia).
This article is contributed by Mr. Somesh Awasthi. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
- Design the Data Structures(classes and objects)for a generic deck of cards
- Why companies like Amazon, Microsoft, Google focuses on Data Structures and Algorithms : Answered
- Design a Logistics System
- Design an online book reader system
- Design City Guide System like Foursquare
- Design a movie ticket booking system like Bookmyshow
- Design Video Sharing Service System like Youtube
- Design an online hotel booking system like OYO Rooms
- Design Media Sharing Social Networking System
- Design a data structure that supports insert, delete, search and getRandom in constant time
- Design and Implement Special Stack Data Structure | Added Space Optimized Version
- Design a Hit Counter
- MVC Design Pattern
- Mediator design pattern
- Interpreter Design Pattern