Internet Web servers: workload characterization and performance implications
IEEE/ACM Transactions on Networking (TON)
Server Capacity Planning for Web Traffic Workload
IEEE Transactions on Knowledge and Data Engineering
Analysis of Personal Computer Workloads
MASCOTS '99 Proceedings of the 7th International Symposium on Modeling, Analysis and Simulation of Computer and Telecommunication Systems
The Linux implementation of a log-structured file system
ACM SIGOPS Operating Systems Review
The Design of New Journaling File Systems: The DualFS Case
IEEE Transactions on Computers
Analysis and evolution of journaling file systems
ATEC '05 Proceedings of the annual conference on USENIX Annual Technical Conference
Disk drive level workload characterization
ATEC '06 Proceedings of the annual conference on USENIX '06 Annual Technical 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
LAST: locality-aware sector translation for NAND flash memory-based storage systems
ACM SIGOPS Operating Systems Review
Implementation and experimental performance evaluation of a hybrid interrupt-handling scheme
Computer Communications
Advances in flash memory SSD technology for enterprise database applications
Proceedings of the 2009 ACM SIGMOD International Conference on Management of data
Proceedings of the 8th international conference on Mobile systems, applications, and services
An analysis of power consumption in a smartphone
USENIXATC'10 Proceedings of the 2010 USENIX conference on USENIX annual technical conference
All your droid are belong to us: a survey of current android attacks
WOOT'11 Proceedings of the 5th USENIX conference on Offensive technologies
A file is not a file: understanding the I/O behavior of Apple desktop applications
SOSP '11 Proceedings of the Twenty-Third ACM Symposium on Operating Systems Principles
Hot data identification for flash-based storage systems using multiple bloom filters
MSST '11 Proceedings of the 2011 IEEE 27th Symposium on Mass Storage Systems and Technologies
When poll is better than interrupt
FAST'12 Proceedings of the 10th USENIX conference on File and Storage Technologies
SFS: random write considered harmful in solid state drives
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
What is a good buffer cache replacement scheme for mobile flash storage?
Proceedings of the 12th ACM SIGMETRICS/PERFORMANCE joint international conference on Measurement and Modeling of Computer Systems
USENIX ATC'12 Proceedings of the 2012 USENIX conference on Annual Technical Conference
Smart layers and dumb result: IO characterization of an android-based smartphone
Proceedings of the tenth ACM international conference on Embedded software
Resolving journaling of journal anomaly in android I/O: multi-version B-tree with lazy split
FAST'14 Proceedings of the 12th USENIX conference on File and Storage Technologies
Journaling of journal is (almost) free
FAST'14 Proceedings of the 12th USENIX conference on File and Storage Technologies
Hi-index | 0.00 |
The Android I/O stack consists of elaborate and mature components (SQLite, the EXT4 filesystem, interrupt-driven I/O, and NAND-based storage) whose integrated behavior is not well-orchestrated, which leaves a substantial room for an improvement. We overhauled the block I/O behavior of five filesystems (EXT4, XFS, BTRFS, NILFS, and F2FS) under each of the five different journaling modes of SQLite. We found that the most significant inefficiency originates from the fact that filesystem journals the database journaling activity; we refer to this as the JOJ (Journaling of Journal) anomaly. The JOJ overhead compounds in EXT4 when the bulky EXT4 journaling activity is triggered by an fsync() call from SQLite. We propose (i) the elimination of unnecessary metadata journaling for the filesystem, (ii) external journaling and (iii) polling-based I/O to improve the I/O performance, primarily to improve the efficiency of filesystem journaling in the SQLite environment. We examined the performance trade-offs for each combination of the five database journaling modes, five filesystems and three optimization techniques. When we applied three optimization techniques in existing Android I/O stack, the SQLite performance (inserts/sec) improved by 130%. With the F2FS filesystem, WAL journaling mode (SQLite), and the combination of our optimization efforts, we improved the SQLite performance (inserts/sec) by 300%, from 39 ins/sec to 157 ins/sec, compared to the stock Android I/O stack.