The design and implementation of a log-structured file system
ACM Transactions on Computer Systems (TOCS)
A modeling study of the TPC-C benchmark
SIGMOD '93 Proceedings of the 1993 ACM SIGMOD international conference on Management of data
Physical integrity in a large segmented database
ACM Transactions on Database Systems (TODS)
Disk Read-Write Optimizations and Data Integrity in Transaction Systems Using Write-Ahead Logging
ICDE '95 Proceedings of the Eleventh International Conference on Data Engineering
Analysis and evolution of journaling file systems
ATEC '05 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
A log buffer-based flash translation layer using fully-associative sector translation
ACM Transactions on Embedded Computing Systems (TECS)
OSDI'08 Proceedings of the 8th USENIX conference on Operating systems design and implementation
Beyond block I/O: Rethinking traditional storage primitives
HPCA '11 Proceedings of the 2011 IEEE 17th International Symposium on High Performance Computer Architecture
FAST'12 Proceedings of the 10th USENIX conference on File and Storage Technologies
Revisiting storage for smartphones
FAST'12 Proceedings of the 10th USENIX conference on File and Storage Technologies
Smart layers and dumb result: IO characterization of an android-based smartphone
Proceedings of the tenth ACM international conference on Embedded software
Hi-index | 0.00 |
In the era of smartphones and mobile computing, many popular applications such as Facebook, twitter, Gmail, and even Angry birds game manage their data using SQLite. This is mainly due to the development productivity and solid transactional support. For transactional atomicity, however, SQLite relies on less sophisticated but costlier page-oriented journaling mechanisms. Hence, this is often cited as the main cause of tardy responses in mobile applications. Flash memory does not allow data to be updated in place, and the copy-on-write strategy is adopted by most flash storage devices. In this paper, we propose X-FTL, a transactional flash translation layer(FTL) for SQLite databases. By offloading the burden of guaranteeing the transactional atomicity from a host system to flash storage and by taking advantage of the copy-on-write strategy used in modern FTLs, X-FTL drastically improves the transactional throughput almost for free without resorting to costly journaling schemes. We have implemented X-FTL on an SSD development board called OpenSSD, and modified SQLite and ext4 file system minimally to make them compatible with the extended abstractions provided by X-FTL. We demonstrate the effectiveness of X-FTL using real and synthetic SQLite workloads for smartphone applications, TPC-C benchmark for OLTP databases, and FIO benchmark for file systems.