usenix conference policies
Sprockets: Safe Extensions for Distributed File Systems
Sprockets are a lightweight method for extending the functionality of distributed file systems. They specifi- cally target file systems implemented at user level and small extensions that can be expressed with up to several hundred lines of code. Each sprocket is akin to a procedure call that runs inside a transaction that is always rolled back on completion, even if sprocket execution succeeds. Sprockets therefore make no persistent changes to file system state; instead, they communicate their result back to the core file system through a restricted format using a shared memory buffer. The file system validates the result and makes any necessary changes if the validations pass. Sprockets use binary instrumentation to ensure that a sprocket can safely execute file system code without making changes to persistent state. We have implemented sprockets that perform typespecific handling within file systems such as querying application metadata, application-specific conflict resolution, and handling custom devices such as digital cameras. Our evaluation shows that sprockets can be up to an order of magnitude faster to execute than extensions that utilize operating system services such as fork. We also show that sprockets allow fine-grained isolation and, thus, can catch some bugs that a fork-based implementation cannot.
Open Access Media
USENIX is committed to Open Access to the research presented at our events. Papers and proceedings are freely available to everyone once the event begins. Any video, audio, and/or slides that are posted after the event are also free and open to everyone. Support USENIX and our commitment to Open Access.
author = {Daniel Peek and Edmund B. Nightingale and Brett D. Higgins and Puspesh Kumar and Jason Flinn},
title = {Sprockets: Safe Extensions for Distributed File Systems },
booktitle = {2007 USENIX Annual Technical Conference (USENIX ATC 07)},
year = {2007},
address = {Santa Clara, CA},
url = {https://www.usenix.org/conference/2007-usenix-annual-technical-conference/sprockets-safe-extensions-distributed-file},
publisher = {USENIX Association},
month = jun
}
connect with us