Ceph: A Scalable, High-Performance Distributed File System by Sage A. Weil, Scott A. Brandt, Ethan L. Miller, Darrell D. E. Long, and Carlos Maltzahn.
We have developed Ceph, a distributed ﬁle system that provides excellent performance, reliability, and scalability. Ceph maximizes the separation between data and metadata management by replacing allocation tables with a pseudo-random data distribution function (CRUSH) designed for heterogeneous and dynamic clusters of unreliable object storage devices (OSDs). We leverage device intelligence by distributing data replication, failure detection and recovery to semi-autonomous OSDs running a specialized local object ﬁle system. A dynamic distributed metadata cluster provides extremely efﬁcient metadata management and seamlessly adapts to a wide range of general purpose and scientiﬁc computing ﬁle system workloads. Performance measurements under a variety of workloads show that Ceph has excellent I/O performance and scalable metadata management, supporting more than 250,000 metadata operations per second.
I have just started reading this paper but it strikes me as deeply important.
Ceph decouples data and metadata operations by eliminating ﬁle allocation tables and replacing them with generating functions. This allows Ceph to leverage the intelligence present in OSDs to distribute the complexity surrounding data access, update serialization, replication and reliability, failure detection, and recovery. Ceph utilizes a highly adaptive distributed metadata cluster architecture that dramatically improves the scalability of metadata access, and with it, the scalability of the entire system. We discuss the goals and workload assumptions motivating our choices in the design of the architecture, analyze their impact on system scalability and performance, and relate our experiences in implementing a functional system prototype.
The ability to scale “metadata,” in this case inodes and directory entries (file names), bodes well for scaling topic map based information about files.
Not to mention that experience with generating functions may free us from the overhead of URI based addressing.
For some purposes, I may wish to act as though only files exist but in a separate operation, I may wish to address discrete tokens or even characters in one such file.
Interesting work and worth a deep read.
The source code for Ceph: http://ceph.sourceforge.net/.