The objective of the project was to develop a Dropbox like server side infrastructure of a system with the following requirements -
● Scalability - The system should be scalable in handling mass storage requests. ● Replication - The replication mechanism should be optimal and efficient. ● Robustness - The system should be robust in its functioning and implementation. ● Fault Tolerance - The system should be designed in such a way, that even if a server goes down, the read or write requests must be satisfied by other servers.
In addition, ● The system must allow a client to upload and download files of different types. ● A file on upload, is chunked by the client for purpose of speed. ● The system should include efficient search capabilities. ● If a server is underutilized, then the server must request the master for tasks