Distributed Storage / Google Drive
Data can be stored on multiple nodes:
1. Large file is broken into chunks/blocks and those chunks are stored
across multiple nodes.
2. Number of files exceed to be stored on 1 system, those are stored
on different nodes 3. Replication: Each chunk/file may also be
replicated on multiple nodes (e.g., 3 replicas) for fault tolerances
Requirements
Functional
1. When a file/chunk reaches a configured size threshold, the system
should place subsequent chunks on another node; the user should not
need to know the physical location
2. The system should support read/write/delete operations
3. Concurrent Writes: to the same file/chunk shouldd nnot be allowed,
only 1 write to succeed
Non Func
1. Highly Available: The system should remain available even if a
storage node fails, via replication.
2. Eventual consistency