CompoundFS: Compounding I/O Operations in Firmware File Systems
Yujie Ren1, Jian Zhang2 and Sudarsun Kannan1
1 Rutgers University; 2 ShanghaiTech University
CompoundFS: Compounding I/O Operations in Firmware File Systems - - PowerPoint PPT Presentation
CompoundFS: Compounding I/O Operations in Firmware File Systems Yujie Ren 1 , Jian Zhang 2 and Sudarsun Kannan 1 1 Rutgers University; 2 ShanghaiTech University Outline Background Analysis Design Evaluation Conclusion 2
1 Rutgers University; 2 ShanghaiTech University
2
3
4
Page Cache Block I/O Layer Device Driver VFS Layer Actual FS Application
PMFS ext4
5
Application FS Lib FS Server Storage
Application Application FS Lib Kernel DAX FS Storage FS Lib Storage Firmware FS
6
7
8
9
0% 20% 40% 60% 80%
256 (DAX) 4096 (DAX) 256 (SplitFS) 4096 (SplitFS)
Run time percentage(%) Value size (bytes) Data allocation (OS) Data copy (OS) Filesystem update (OS) Lock (OS) Data allocation (user) Data copy (user) CRC32 (user)
10
11
12
13
Read(data) Write(data) Read_modify_write(data)
modify
Storage FS
14
Write(data) Write(checksum) Write_and_checksum(data)
checksum
Storage FS
15
Application (Thread 1)
Op1
Application (Thread 2)
Op2+ read_modify_write(fd2, buf, off=30, sz=5)
UserLib (in Host)
Per-inode I/O Queue Per-inode Data Buffer Converting POSIX I/O syscalls to CompoundFS compoundOps
Journal
…
TxB TxE Meta- data NVM Data Block Addr Cred Table
CPUID Cred CPUID CPUID Cred Cred
StorageFS (In Device)
I/O Request Processing Threads Device CPU Cores Compounding I/O ops Perform CRC calculation before write()
Op3* write_and_checksum(fd1,buff, off=10, sz=1K, checksum_pos=head) Op4 read(fd2, buf, off=30, sz=5)
Op1 Op2+ Op4 Op3*
16
17
18
19
20
21
200 400 600 800 1000 1200 256 4096 Throughput (MB/s) Value Size
ext4-DAX SplitFS DevFS CompoundFS CompoundFS-slowCPU
200 400 600 800 1000 1200 256 4096 Throughput (MB/s) Value Size
2.1x 1.25x
22
20 40 60 80 100 512 4096 Throughput (MB/s) db_bench Value Size (500k keys) 10 20 30 40 512 4096 Latency (us/op) db_bench Value Size (500k keys)
ext4-DAX SplitFS DevFS CompoundFS CompoundFS-slowCPU
1.75x
23
24