Publication: Reliable and Fault-Tolerant Peer-to-Peer Block Storage
Open/View Files
Date
Published Version
Published Version
Journal Title
Journal ISSN
Volume Title
Publisher
Citation
Research Data
Abstract
The Charles is a scalable, fault-tolerant, persistent block storage service built from a constantly changing network of potentially faulty or malicious computing nodes. The Charles is designed for a P2P environment: networks characterized by frequent process joins and departures, as well as arbitrary or Byzantine process behavior. The Charles consists of two levels. The top level provides a scalable lookup service. This level is known as the Surface level and is structured as a ring of slowly changing process groups. The bottom level, known as the Submerged level, combines individual processes together into fault-tolerant groups absorbing network dynamics and process failure; whether it is arbitrary behavior or crash failure. The bottom level serves to provide the top level with predictable and well-behaved process groups. Both levels are self-organizing and self-managing. The Charles has no centralized control. The Charles combines block lookup with storage. Fault-tolerance is provided through replication within process groups. Replication is maintained internally without any application state or callbacks.