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
- Design a Logistics System
- Design Scalable System like Instagram
- Design Scalable System like Foursquare
- Design Video Sharing System Like Youtube
- Design an online book reader system
- Design an online hotel booking system like OYO Rooms
- Design a movie ticket booking system like Bookmyshow
- Design a data structure that supports insert, delete, search and getRandom in constant time
- MVC Design Pattern
- Design a Hit Counter
- Mediator design pattern
- Builder Design Pattern
- Visitor design pattern
- Prototype Design Pattern