A Transparently-Scalable Metadata Service for the Ursa Minor Storage System
Carnegie Mellon University Parallel Data Lab Technical Report CMU-PDL-10-102, March 2010.
Shafeeq Sinnamohideen†, Raja R. Sambasivan†, James Hendricks†‡, Likun Liu⋆, Gregory R. Ganger†
†Carnegie Mellon University
Pittsburgh, PA 15213
‡Now at Google
This technical report describes the design and implementation of the Ursa Minor Metadata Service. Like many prior direct-access file systems, Ursa Minor provides for scalable data access — adding storage servers provides a proportional increase in data throughput. Unlike most previous systems, it also provides for scaling metadata throughput by adding metadata servers. Scaling metadata is more challenging than scaling data because, unlike data operations, a single metadata operation may involve items served by different metadata servers. Existing systems that handle such operations do so using relatively complex distributed transaction protocols. Ursa Minor takes a novel approach by reusing metadata migration, an existing feature normally used to support load balancing, to implement multi-server operations. Additionally, Ursa Minor uses an object-ID assignment scheme that minimizes the occurrence of multi-server operations. The combination of these approaches allows us to implement a desired feature with less complexity than alternative methods and with minimal performance penalty (within 1% of optimal in common cases).
KEYWORDS: Object-based storage, object ID assignment algorithms, namespace flattening, OSD, metadata scalability, multi-server operations, cross-server operations, cross-directory operations, transparent scalabilily
FULL TR: pdf