Check out the new USENIX Web site. next up previous
Next: Evaluation Up: Mirroring Consistency via SMFS Previous: SMFS Architecture


SMFS API

File servers interact with storage servers through a thin log interface--create() , append() , read() , and free() . create() communicates with a metadata server to allocate storage resources for a new log; it assigns responsibility for the new log to a storage server. After a log has been created, a file server uses the append() operation to add data to the log. The file server communicates directly with a log's storage server to append data. The storage server assigns the order of each append--assigns the address in the log to a particular append--and atomically commits the operation. SMFS maintains group-mirroring consistency, in which a single append() can contain updates to many different files where the group of updates will all be reflected by the storage system atomically, either all or none. read() returns the data associated with a log address. Finally, free() takes a log address and marks the address for later cleaning. In particular, after a block has been modified or file removed, the file system calls free() on all blocks that are no longer referenced. The create() , append() , and free() operations are mirrored between the primary site and remote mirror.


next up previous
Next: Evaluation Up: Mirroring Consistency via SMFS Previous: SMFS Architecture
Hakim Weatherspoon 2009-01-14