We propose an I/O stack for ZNS based flash storage in mobile environment, ZMS . The zone interface is known to save the flash storage from two fundamental issues which modern flash storage suffers from: logical-to-physical mapping table size and garbage collection overhead. Through extensive study, we find that realizing the zone interface in mobile environment is more challenging due to the unique characteristics of mobile environment: the lack of on-device memory in mobile flash storage and the frequent fsync() calls in mobile applications. Aligned with this, we identify the root causes that need to be addressed in realizing the zone interface in mobile I/O stack: write buffer thrashing and tiny synchronous file update . We develop a file system, block I/O layer, and device firmware techniques to address the above mentioned two issues. The three key techniques in ZMS are (i) IOTailor, (ii) budget-based in-place update, and (iii) multi-granularity logical-to-physical mapping. We also implement copy offloading and propose a new overprovisioned space configuration for the F2FS file system to address the host-side garbage collection overhead. Evaluation on a real production platform shows that ZMS improves the write amplification by 2.9–6.4 × and the random write performance by 5.0–13.6 ×. With the three techniques, ZMS shows a significant performance improvement in writing the data blocks to the multiple zones concurrently, in executing SQLite transactions, in launching the applications, and in playing video files.
Hwang et al. (Thu,) studied this question.