All File Systems Are Not Created Equal: On the Complexity of Crafting Crash-Consistent Applications, OSDI 2014
Discussion lead: Sowmya Janakiram Dharanipragada, Helga Gudmundsdottir, and Helgi Sigurbjarnarson
foo
using write(/log, “i, j, ai, aj”).foo
: pwrite(/foo, i, “bi, bj”).A recovery function would (on startup) check for the existence
of /log
and continue from iii) if it is well formed. Ideally,
this protocol results in either: both blocks i and j are updated,
or neither is updated. Describe all the other possible states
under the weak APM model. How can you fix it?
What is the difference between stdout
and fsync
in the APM
in terms of ordering? Why do their definitions make sense?
What kind of vulnerabilities does ALICE focus on detecting? Give one example of a bug that ALICE can detect and one that it cannot detect.