Coordinator and Data nodes - radumarias/rfs GitHub Wiki
- Coordinator nodes with many Data nodes. We can use Raft for coordinator nodes
- Coordinator node is served over
http(axumorgRPCwithtonic) - File is split in shards and kept on data node distributed and replicated
- First clients will communicate with coordinator node to setup operations and metadata then the actual file content access will be made with data nodes
- Data nodes acts also like an interface for
DHTqueries accessing the actual data fromtikv - After a shard is uploaded to data nodes they will use
DHTandBitTorrentbetween them to replicate the shard to multiple nodes. This doesn't require coordinator node - Coordinator node communicate with
tikvcluster to get/put metadata about the file - Metadata contains information about the files where key is piece hash and value is a data nodes of that file
WALstrategy is used to commit files to all of our replicas and updatetikvwith the data node handle- Coordinator/Data nodes communication is done over a channel we can try out
Kafkaor maybe withgRPCto make sure that a data nodes contains a shard or to distribute a shard over the data nodes when a client uploads a file - Client is then given a list of data nodes to access the shards in parallel and assemble the file
https://docs.rs/raft/latest/raft/
From https://en.wikipedia.org/wiki/CAP_theorem I think we should target Consistency and Availability. Availability is also affected by Network partition so in that case we will choose Consistence.