blob: 8f1ec50ccb950706b07eec6544012a18e0b2e7c5 [file] [log] [blame] [view]
giolekvad9fad682020-03-25 17:13:03 +04001# PCloud File System
2## Overview
3PFS is a core building block of PCloud providing distributed blob storage, with replication for redundancy and high availability.
4It is designed along the lines of GFS (Google File System): <https://static.googleusercontent.com/media/research.google.com/en//archive/gfs-sosp2003.pdf>
5PFS consists of two main components: Controller and Chunk servers. Chunk servers store actual data while controller maintains a global view and acts on changes in the cluster.
6
7## Goals
8* It must be easy to add new chunk servers. Controller should automatically pick it up and use it for storage.
9* Taking out a chunk server must trigger re-replication of chunks stored there.
10* Controller must assigne chunks so that load is equally distributed among chunk servers and improve throughput.
11
12# Detailed design