PCloud File System

Overview

PFS is a core building block of PCloud providing distributed blob storage, with replication for redundancy and high availability. It is designed along the lines of GFS (Google File System): https://static.googleusercontent.com/media/research.google.com/en//archive/gfs-sosp2003.pdf PFS 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.

Goals

  • It must be easy to add new chunk servers. Controller should automatically pick it up and use it for storage.
  • Taking out a chunk server must trigger re-replication of chunks stored there.
  • Controller must assigne chunks so that load is equally distributed among chunk servers and improve throughput.

Detailed design