I initially implemented a hierarchical FS where storage was hosted on a dictionary exposed via the simpleht server. But one of the limitations of that implementation was its inability to provide persistent storage i.e. a restart of the server would have wiped out all the contents stored on it, as the dictionary used was a in-memory data-structure of the simpleht process. So I replaced the simpleht service by a "NoSQL" database that provides persistent storage, which is MongoDB. However, using persistent storage comes at the cost of performance, i.e. the time taken to perform file operations is bound to increase compared to when using in-memory data-structures. That's why I implemented a caching layer in the FS, analogous to caches in the processors. The system performance is enchanced by 56% after implementing the caching layer compared to only using persistent storage.