O1FS: Flash file system with O(1) crash recovery time
•We develop mathematical models of crash recovery techniques for flash file systems.•Crash recovery times of existing techniques increase with flash memory capacity.•We propose a new flash file system, O1FS, with O(1) crash recovery time.•We implement O1FS in Linux and verify the bounded crash recov...
Gespeichert in:
Veröffentlicht in: | The Journal of systems and software 2014-11, Vol.97, p.86-96 |
---|---|
Hauptverfasser: | , , |
Format: | Artikel |
Sprache: | eng |
Schlagworte: | |
Online-Zugang: | Volltext |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
Zusammenfassung: | •We develop mathematical models of crash recovery techniques for flash file systems.•Crash recovery times of existing techniques increase with flash memory capacity.•We propose a new flash file system, O1FS, with O(1) crash recovery time.•We implement O1FS in Linux and verify the bounded crash recovery time of O1FS.•O1FS provides a similar level of performance and lifetime with existing file systems.
The crash recovery time of NAND flash file systems increases with flash memory capacity. Crash recovery usually takes several minutes for a gigabyte of flash memory and becomes a serious problem for mobile devices. To address this problem, we propose a new flash file system, O1FS. A key concept of our system is that a small number of blocks are modified exclusively until we change the blocks explicitly. To recover from crashes, O1FS only accesses the most recently modified blocks rather than the entire flash memory. Therefore, the crash recovery time is bounded by the size of the blocks. We develop mathematical models of crash recovery techniques and prove that the time complexity of O1FS is O(1), whereas that of other methods is proportional to the number of blocks in the flash memory. Our evaluation shows that the crash recovery of O1FS is about 18.5 times faster than that of a state-of-the-art method. |
---|---|
ISSN: | 0164-1212 1873-1228 |
DOI: | 10.1016/j.jss.2014.07.008 |