Generalized File System Dependencies, SOSP 2007
Discussion lead: Sowmya Janakiram Dharanipragada, Helga Gudmundsdottir, and Helgi Sigurbjarnarson
Recall the update protocol from question 1 this Wednesday. Write a small program using the patchgroup API to implement the desired property (overwriting adjacent blocks in a file atomically). What are the pros/cons compared to using fsync?
The in-flight safety property states that some dependencies of in-flight patches can also be in-flight. How come the in-flight safety property does not violate the disk safety property?
Pick one of the optimizations presented in the paper and briefly describe how it works and why it’s safe.
[optional] Section 3.4 describes how to apply Featherstitch to implement file append in a crash-consistent way. How about rename? In particular, to rename /d1/f to /d2/f, the file system needs to at least add file “f” to directory d2 and remove it from d1. The goal is to ensure that “f” shows up in either d1 or d2, but not in both or neither. How would you use patch dependencies to achieve this goal?
Provide a list of questions you would like to discuss in class. Feel free to provide any comments on the paper and related topics (e.g., which parts you like and which parts you find confusing).