Skip to the content.

Distributed file system

Requirements

Design overview

High level architecture

gfs-architecture

gfs-architecture-2

Write flow

how to handle concurrent writes

Multiple applications could write data to the same file at the same time, we want data to be consistent between all replicas. There are two principles:

The problem becomes the distributed consensus problem. We could choose to use leader based replica solution and use Raft algorithm to guarantee the data consistency among all replicas. So that during write operation, client could write data to leader and leader will take care of the date replication. This helps reduce the network traffic between the client and chunk server, the network bandwidth within chunk servers would be fast because it is the internal network.

how to handle write failure

Read flow

APIs DataNode|chunk server has

How to handle control plane failure

How to handle chunk server|DataNode failure

What will happen if adding a new server

References