3. REALIZATION IN A PARALLEL FS
We plan to implement Damasc by extending the Ceph petascale
distributed object-based file system [39]. Ceph’s design leverages 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.
A key component of mapping logical data models to physical
data models is a file’s striping strategy. Our modified implementation
of Ceph will employ format-aligned striping, where the stripe
unit is expressed not in terms of bytes but in terms of structural elements
defined in the file’s semi-structured representation. More
generally, the striping strategy can also take into account the patterns
of declarative queries in order to map files to distributed data
structures defined in terms of object-level operators.
We plan to adapt distributed query processing to parallel file systems
by installing a query processor inside every OSD. When a
client receives a query, it breaks it in sub-queries that are shipped
to several OSDs, using file system metadata such as striping strategies
and other attributes and statistics of physical storage. Each
OSD uses its local query processor to parse files locally and evaluate
the received sub-queries. Following our previous discussion,
the query processor in each OSD can maintain its own cache and indices
to speed up query evaluation over the locally stored files. An
interesting challenge is to coordinate caching among clients and
OSDs in order to avoid redundant caching. We will leverage the
rich literature on distributed and parallel database systems [12, 29]
in order to address this issue.