Non-volatile memory for fast, reliable file systems
ASPLOS V Proceedings of the fifth international conference on Architectural support for programming languages and operating systems
The design and implementation of a log-structured file system
ACM Transactions on Computer Systems (TOCS)
4.4BSD system manager's manual (SMM)
4.4BSD system manager's manual (SMM)
eNVy: a non-volatile, main memory storage system
ASPLOS VI Proceedings of the sixth international conference on Architectural support for programming languages and operating systems
EVENODD: An Efficient Scheme for Tolerating Double Disk Failures in RAID Architectures
IEEE Transactions on Computers - Special issue on fault-tolerant computing
The Rio file cache: surviving operating system crashes
Proceedings of the seventh international conference on Architectural support for programming languages and operating systems
Free transactions with Rio Vista
Proceedings of the sixteenth ACM symposium on Operating systems principles
High Performance Mass Storage and Parallel I/O: Technologies and Applications
High Performance Mass Storage and Parallel I/O: Technologies and Applications
VLDB '91 Proceedings of the 17th International Conference on Very Large Data Bases
Conquest: Better Performance Through a Disk/Persistent-RAM Hybrid File System
ATEC '02 Proceedings of the General Track of the annual conference on USENIX Annual Technical Conference
Fault tolerant data structures
FOCS '96 Proceedings of the 37th Annual Symposium on Foundations of Computer Science
HeRMES: High-Performance Reliable MRAM-Enabled Storage
HOTOS '01 Proceedings of the Eighth Workshop on Hot Topics in Operating Systems
Richer File System Metadata Using Links and Attributes
MSST '05 Proceedings of the 22nd IEEE / 13th NASA Goddard Conference on Mass Storage Systems and Technologies
Running "Fsck" in the background
BSDC'02 Proceedings of the BSD Conference 2002 on BSD Conference
A comparison of file system workloads
ATEC '00 Proceedings of the annual conference on USENIX Annual Technical Conference
Scalability in the XFS file system
ATEC '96 Proceedings of the 1996 annual conference on USENIX Annual Technical Conference
The burst error correcting capabilities of a simple array code
IEEE Transactions on Information Theory
PRIMS: making NVRAM suitable for extremely reliable storage
HotDep'07 Proceedings of the 3rd workshop on on Hot Topics in System Dependability
Pergamum: replacing tape with energy efficient, reliable, disk-based archival storage
FAST'08 Proceedings of the 6th USENIX Conference on File and Storage Technologies
Adding aggressive error correction to a high-performance compressing flash file system
EMSOFT '09 Proceedings of the seventh ACM international conference on Embedded software
Energy-efficient and high-performance software architecture for storage class memory
ACM Transactions on Embedded Computing Systems (TECS)
Hi-index | 0.00 |
Portable systems such as cell phones and portable media players commonly use non-volatile RAM (NVRAM) to hold all of their data and metadata, and larger systems can store metadata in NVRAM to increase file system performance by reducing synchronization and transfer overhead between disk and memory data structures. Unfortunately, wayward writes from buggy software and random bit flips may result in an unreliable persistent store. We introduce two orthogonal and complementary approaches to reliably storing file system structures in NVRAM. First, we reinforce hardware and operating system memory consistency by employing page-level write protection and error correcting codes. Second, we perform on-line consistency checking of the filesystem structures by replaying logged file system transactions on copied data structures; a structure is consistent if the replayed copy matches its live counterpart. Our experiments show that the protection mechanisms can increase fault tolerance by six orders of magnitude while incurring an acceptable amount of overhead on writes to NVRAM. Since NVRAM is much faster and consumes far less power than disk-based storage, the added overhead of error checking leaves an NVRAM-based system both faster and more reliable than a disk-based system. Additionally, our techniques can be implemented on systems lacking hardware support for memory management, allowing them to be used on lowend and embedded systems without an MMU.