62
I/O Stack Optimization for Smartphones Sooman Jeong 1 , Kisung Lee 2 , Seongjin Lee 1 , Seoungbum Son 2 , and Youjip Won 1 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

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

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

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

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

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

Motivation

Smartphone is everywhere!

[KPCB Internet Trends 2013]

Sooman Jeong et al. USENIX ATC'13, SAN JOSE, CA, June 26~28, 2013 3

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

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 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

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

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

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

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

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

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

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

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

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

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

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

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 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Real Workload

Replay Twitter and Facebook by Mobigen

Twitter

Facebook

-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

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 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

• 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