I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1,...
Transcript of I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1,...
![Page 1: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/1.jpg)
I/O Stack Optimization for Smartphones
Sooman Jeong1, Kisung Lee2, Seongjin Lee1,
Seoungbum Son2, and Youjip Won1
1 Dept. of Electronics and Computer Engineering, Hanyang University 2 Samsung Electronics
2013 USENIX Annual Technical Conference (ATC’13)
SAN JOSE, CA, USA, JUNE 26~28, 2013
![Page 2: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/2.jpg)
Outline
Motivation
Background
Analysis of the Android I/O Stack
Optimizations of the Android I/O Stack
Using the optimal journaling mode in SQLite
Alternative Filesystems
Eliminating unnecessary metadata flushes
External journaling
Using polling based I/O
Evaluations
Demo
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 2
![Page 3: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/3.jpg)
Motivation
Smartphone is everywhere!
[KPCB Internet Trends 2013]
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 3
![Page 4: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/4.jpg)
Motivation
Storage I/O is the performance bottleneck in Android.
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 4
![Page 5: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/5.jpg)
Application Framework
Android Platform
Window Package Telephony Contact
Libraries
SQLite libc …
Android Runtime
Core lib Dalvik VM
Linux Kernel
Storage
Display WiFi Filesystem Power MM
Block Device driver Audio Key PAD
Apps
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 5
![Page 6: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/6.jpg)
I/O stack of Android Platform
EXT4
Block Device Driver
(CFQ, Interrupt Driven IO)
SQLite
Insert/update/delete
Read/write
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 6
![Page 7: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/7.jpg)
I/O characteristics of Android Apps (GS3, ICS)
File Types Block Types I/O Modes
Locality I/O Size IRQs
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 7
![Page 8: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/8.jpg)
I/O characteristics of Android Apps (GS3, ICS)
File Types Block Types I/O Modes
Locality I/O Size IRQs
SQLite > 90% Metadata &
Journal > 40% Synchronous > 70%
Random > 80% 4KB I/O > 64% IRQ for eMMC
> 18%
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 8
![Page 9: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/9.jpg)
SQLite > 90% !!!
Metadata & Journal > 40% !
Synchronous Write > 70% !!!
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 9
![Page 10: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/10.jpg)
Journaling in SQLite (Delete Mode)
Insert a database entry
time
Create journal.
Record the data to journal.
Put commit mark to journal. Insert entry to DB
Delete journal.
fsync() fsync()
SQLite
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 10
![Page 11: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/11.jpg)
Journaling in EXT4 (ordered mode)
write(fd, )
metadata data journal
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 11
![Page 12: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/12.jpg)
time
fsync() fsync()
time
write SQLite journal to storage.
write EXT4 journal (descriptor, metadata) to storage.
write EXT4 journal (commit) to storage.
write SQLite DB to storage.
SQLite and EXT4
SQLite
EXT4
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 12
![Page 13: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/13.jpg)
fsync() fsync()
time
insert()
SQLite
EXT4
Summary
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 13
![Page 14: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/14.jpg)
fsync() fsync()
time
insert()
SQLite
EXT4
Summary
9 random writes to eMMC!!!
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 14
![Page 15: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/15.jpg)
fsync() fsync()
time
insert()
SQLite
EXT4
Summary
9 random writes to eMMC!!!
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 15
![Page 16: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/16.jpg)
EXT4 journals SQLite journal file.
SQLite maintains DB journal.
EXT4 maintains filesystem journal.
+
=
Journaling of Journal
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 16
![Page 17: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/17.jpg)
EXT4 journals SQLite journal file.
SQLite maintains DB journal.
EXT4 maintains filesystem journal.
+
=
EXT4 journals SQLite journaling activity.
70% of the writes are purely for managerial purpose!
Journaling of Journal
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 17
![Page 18: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/18.jpg)
EXT4 journals SQLite journal file.
SQLite maintains DB journal.
EXT4 maintains filesystem journal.
+
=
EXT4 journals SQLite journaling activity.
70% of the writes are purely for managerial purpose!
Journaling of Journal
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 18
![Page 19: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/19.jpg)
EXT4
Block Device Driver
SQLite
Optimize Android I/O stack !
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 19
![Page 20: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/20.jpg)
SQLite Journaling mode
SQLite
DELETE
TRUNCATE PERSIST
WAL
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 20
![Page 21: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/21.jpg)
EXT4
SQLite
fsync() vs. fdatasync()
Eliminating unnecessary metadata flushes
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 21
![Page 22: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/22.jpg)
EXT4
XFS
Alternative Filesystems
NILFS2
F2FS
BTRFS
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 22
![Page 23: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/23.jpg)
Interrupt vs. Polling
Block Device Driver
interrupt polling vs.
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 23
![Page 24: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/24.jpg)
External Journaling
EXT4
vs.
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 24
![Page 25: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/25.jpg)
SQLite Journaling Modes
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 25
![Page 26: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/26.jpg)
Delete (GS3, ICS)
1
2
3
4
5
6
7
8
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 26
SQLite Journaling SQLite DB ops
2 fsync() and 9 writes for one insert() !
![Page 27: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/27.jpg)
Truncate (GS3, ICS)
1
2
3
4
5
6
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 27
SQLite Journaling SQLite DB ops
truncate(.db-journal)
2 fsync() and 8 writes.
![Page 28: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/28.jpg)
Persist (GS3, ICS)
1
2
3
4 5
6
7 8
9
3 fsync() and 12 writes.
The worst mode!
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 28
SQLite Journaling SQLite DB ops
![Page 29: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/29.jpg)
WAL Mode (GS3, ICS)
1 2 3
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 29
Only 1 fsync() and 3 writes.
The best mode!
![Page 30: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/30.jpg)
SQLite Journaling Mode
Summary
SQLite
Journaling Mode DELETE TRUNCATE PERSIST WAL
Number of
fsync() calls 2 2 3 1
Number of
IOs 9 8 12 3
EXT4 Journal size
(metadata) 24 KB 16 KB 8 KB 16 KB
Total IO Volume 72 KB 64 KB 72 KB 36 KB
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 30
![Page 31: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/31.jpg)
Filesystems
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 31
![Page 32: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/32.jpg)
fsync() fsync()
time
insert()
SQLite
EXT4
“write() followed by fsync()”
is the essence of the Android I/O.
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 32
![Page 33: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/33.jpg)
EXT4
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 33
4 KB write() followed by fsync()
![Page 34: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/34.jpg)
BTRFS
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 34
![Page 35: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/35.jpg)
NILFS2
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 35
![Page 36: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/36.jpg)
XFS
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 36
![Page 37: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/37.jpg)
F2FS (Flash Friendly Filesystem)
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 37
![Page 38: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/38.jpg)
write() followed by fsync()
BTRFS NILFS2
XFS F2FS
Summary
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 38
![Page 39: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/39.jpg)
fsync() vs. fdatasync()
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 39
![Page 40: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/40.jpg)
Eliminating Unnecessary Metadata Flushes
fsync(fd0)
size data atime mtime data
fsync(fd1) fdatasync(fd0)
size data atime mtime data
fdatasync(fd1)
Page cache
Disk
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 40
![Page 41: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/41.jpg)
Eliminating Unnecessary Metadata Flushes
fsync(fd0)
size data atime mtime data
fsync(fd1) fdatasync(fd0)
size data
atime mtime
data
fdatasync(fd1)
Page cache
Disk
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 41
![Page 42: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/42.jpg)
External Journaling
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 42
![Page 43: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/43.jpg)
4K random write() followed by fsync()
Random
Sequential
Random!
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 43
![Page 44: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/44.jpg)
External journaling
Journal on separate partition
FTL can exploit the locality of I/O!
sequential
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 44
![Page 45: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/45.jpg)
Interrupt driven I/O vs. Polling based I/O
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 45
![Page 46: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/46.jpg)
Multi-core on smartphones
Performance of mobile flash storage
2009 2011 2013 2015
Cores Octa
Quad
Dual
Hardware trend
The number of CPU cores ↑
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 46
I/O latency of eMMC ↓
![Page 47: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/47.jpg)
Interrupt driven I/O
mmcqd
Send I/O request
Sleep()
IRQ handler
Complete I/O request
…
Polling based I/O
mmcqd
Send I/O request
Busy wait
Complete I/O request
Polling can reduce
context switching overhead!
Context
Switches
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 47
![Page 48: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/48.jpg)
Sooman Jeong et al. 48 USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013
1/50
![Page 49: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/49.jpg)
Experiment
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 49
![Page 50: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/50.jpg)
Implementation
Galaxy S3(ICS 4.0.4, Linux 3.0.15)
Component Specification
CPU Exynos 4412 1.4 GHz Quad-core
RAM 2 GB
Internal Storage 32 GB eMMC
External Storage 16 GB Transcend u-SD Card
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 50
![Page 51: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/51.jpg)
SQLite performance: journaling modes
SQLite Insert
281%
116%
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 51
• TRUNCATE(default) WAL : 116% up
• TRUNCATE, EXT4(default) WAL,F2FS: 281% up
![Page 52: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/52.jpg)
SQLite performance: journaling modes
SQLite Update
348%
232%
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 52
• TRUNCATE(default) WAL : 232% up
• TRUNCATE, EXT4(default) WAL,F2FS: 348% up
![Page 53: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/53.jpg)
fsync() vs. fdatasync()
SQLite Insert
126%
17%
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 53
• fsync() fdatasync() : 17% up
• fsync() fdatasync() and F2FS : 126% up
![Page 54: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/54.jpg)
SQLite Update
fsync() vs. fdatasync()
250%
53%
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 54
• fsync() fdatasync() : 53% up
• fsync() fdatasync() and F2FS : 250% up
![Page 55: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/55.jpg)
External journaling
SQLite Insert
SQLite Update
30%
37%
39%
20%
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 55
![Page 56: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/56.jpg)
Polling
# of thread Scenario Idle HD Record
base poll base poll
1 KIOPS 1002 981 667 756
CPU (%) 7.5 10.9 26.4 30.2
10 KIOPS 2609 2705 2136 2351
CPU (%) 11.1 12.9 30.1 33.1
4 KB random write+fsync()
• Marginal gain (1~2%) when CPU is IDLE.
• 13% gain when we record HD video in background.
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 56
![Page 57: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/57.jpg)
Real Workload
Replay Twitter and Facebook by Mobigen
-71%
-58%
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 57
![Page 58: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/58.jpg)
Combining All the Improvements
B: Base
P: Polling
E: External Journaling F: fdatasync()
W: WAL mode
SQLite Insert
300%
134%
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 58
fdatasync(), Ext. J, Polling, WAL: 134% up
![Page 59: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/59.jpg)
EXT4
Block Device Driver
SQLite
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 59
Finally,
Polling
Ext. J fdatasync
F2FS
WAL
300% up !!
39 157 ins/sec
![Page 60: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/60.jpg)
EXT4
Block Device Driver
SQLite
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 60
Finally,
Polling
Ext. J fdatasync
F2FS
WAL
300% up !!
39 157 ins/sec
![Page 61: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/61.jpg)
• Android IO stack is collection of unorchestrated layers.
• Journaling of Journal(JOJ) lies at the core of the problem.
• We optimize Android I/O stack with WAL mode in SQLite, F2FS,
fdatasync(), External journaling, polling based I/O.
What we achieved is…
• With legacy EXT4, SQLite performance improves by 134%.
• With F2FS, SQLite performance improves by 300%
solely via software modification on existing smartphone!
Conclusion
Sooman Jeong et al. 61 USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013
![Page 62: I/O Stack Optimization for Smartphones · I/O Stack Optimization for Smartphones Sooman Jeong1, Kisung Lee2, Seongjin Lee1, Seoungbum Son2, and Youjip Won1 1 Dept. of Electronics](https://reader034.fdocuments.us/reader034/viewer/2022050307/5f6f90a47944d26048229c34/html5/thumbnails/62.jpg)
Thank you…
Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 62