4. Motivation 1: Multicore machine’s era
▪ Multicore machine is popular today
▪ Multicore massively increases the computational capacity of
machine
▪ How about I/O system (ex. Storage)?
▪ In general, multicore can benefit from parallel I/O operations, but it
also produces many issues (e.g. data consistency)
4-16 cores 16-32 cores 32-64 cores
4
5. Motivation 2: Single CPU is not enough!
▪ Single CPU is not enough to fully utilize storage device at all
** IBM RamSan-70
* Intel, Performance Benchmarking for PCIe* and NVMe* Enterprise SSDs
5
▪ 00’s era, HDD (100-200 IOPS) → yes
▪ Now: SSD (so far 1M IOPS(**)) → no
▪ Disk is not always the bottleneck of system as before!!
Consider CPU run at 2.6GHz
→ ~10 us per I/O operation
→ ~100K I/O operations per sec (IOPS) / CPU
→ Is this enough?
On average(*):
27K CPU cycles per I/O
6. Motivation 3: Design or Implementation?
▪ How to tackle the problem
▪ New interfaces and system stacks, ex. NVMe can reduce to 10K cycles / IO operation
▪ Increase CPU frequency
▪ File system should be scalable
▪ Are existing file systems scalable?
▪ No in-depth study
▪ Need some insights to design scalable file systems
6
7. Research questions
7
▪ What file system operations are not scalable?
▪ Why they are not scalable?
▪ Is it the problem of implementation or design?
9. Technical challenges
9
▪ Applications are usually stuck with a few bottlenecks
→ cannot see the next level of bottlenecks before
resolving them
→ difficult to understand overall scalability behavior
▪ How to systematically stress file systems to understand scalability
behavior?
10. FXMARK
▪ Micro-benchmark:
▪ General file system operation
▪ Stress each component of FS
▪ Multi-process test
▪ Application benchmark
▪ Real-life applications
▪ I/O intensive
10
29. Findings
29
▪ High locality can cause performance collapse
▪ Overwriting could be as expensive as appending
▪ A file cannot be concurrently updated
▪ All directory operations are sequential
▪ Renaming is system-wide sequential
▪ Metadata changes are not scalable
▪ Non-scalability often means wasting CPU cycles
▪ Scalability is not portable See paper for details
32. Conclusion
32
▪ Comprehensive analysis of many-core scalability of five widely-
used file systems using FxMark
▪ Manycore scalability should be of utmost importance in file system
design
▪ New challenges in scalable file system design
▪ Minimizing contention, scalable consistency guarantee, spatial
locality, etc.