ACM Transactions on Computer Systems (TOCS)
A theory of reliability in database systems
Journal of the ACM (JACM)
ACM Transactions on Database Systems (TODS)
ACM Transactions on Programming Languages and Systems (TOPLAS)
Model and verification of a data manager based on ARIES
ACM Transactions on Database Systems (TODS)
Verifying Temporal Properties of Reactive Systems: A STeP Tutorial
Formal Methods in System Design
Soft updates: a solution to the metadata update problem in file systems
ACM Transactions on Computer Systems (TOCS)
Dynamic input/output automata, a formal model for dynamic systems
Proceedings of the twentieth annual ACM symposium on Principles of distributed computing
CMC: a pragmatic approach to model checking real code
ACM SIGOPS Operating Systems Review - OSDI '02: Proceedings of the 5th symposium on Operating systems design and implementation
Awarded Best Student Paper! -- Improving Storage System Availability with D-GRAID
FAST '04 Proceedings of the 3rd USENIX Conference on File and Storage Technologies
Using model checking to find serious file system errors
ACM Transactions on Computer Systems (TOCS)
Analysis and evolution of journaling file systems
ATEC '05 Proceedings of the annual conference on USENIX Annual Technical Conference
OSDI'04 Proceedings of the 6th conference on Symposium on Opearting Systems Design & Implementation - Volume 6
TRAP-Array: A Disk Array Architecture Providing Timely Recovery to Any Point-in-time
Proceedings of the 33rd annual international symposium on Computer Architecture
Semantically-smart disk systems: past, present, and future
ACM SIGMETRICS Performance Evaluation Review - Design, implementation, and performance of storage systems
Limiting trust in the storage stack
Proceedings of the second ACM workshop on Storage security and survivability
Generalized file system dependencies
Proceedings of twenty-first ACM SIGOPS symposium on Operating systems principles
OSDI '06 Proceedings of the 7th symposium on Operating systems design and implementation
WIOV'08 Proceedings of the First conference on I/O virtualization
FAST'12 Proceedings of the 10th USENIX conference on File and Storage Technologies
TrueErase: per-file secure deletion for the storage data path
Proceedings of the 28th Annual Computer Security Applications Conference
Checking the integrity of transactional mechanisms
FAST'14 Proceedings of the 12th USENIX conference on File and Storage Technologies
Hi-index | 0.01 |
Years of innovation in file systems have been highly successful in improving their performance and functionality, but at the cost of complicating their interaction with the disk. A variety of techniques exist to ensure consistency and integrity of file system data, but the precise set of correctness guarantees provided by each technique is often unclear, making them hard to compare and reason about. The absence of a formal framework has hampered detailed verification of file system correctness. We present a logical framework for modeling the interaction of a file system with the storage system, and show how to apply the logic to represent and prove correctness properties. We demonstrate that the logic provides three main benefits. First, it enables reasoning about existing file system mechanisms, allowing developers to employ aggressive performance optimizations without fear of compromising correctness. Second, the logic simplifies the introduction and adoption of new file system functionality by facilitating rigorous proof of their correctness. Finally, the logic helps reason about smart storage systems that track semantic information about the file system. A key aspect of the logic is that it enables incremental modeling, significantly reducing the barrier to entry in terms of its actual use by file system designers. In general, we believe that our framework transforms the hitherto esoteric and error-prone "art" of file system design into a readily understandable and formally verifiable process.