Skip to content
Book Open access

VoliStorM: A Crash-Consistent I/O Cache with Two Kernels Instead of Two Caches

Sep 2026 · Proceedings of the ACM SIGOPS 32nd Symposium on Operating Systems Principles · 0 citations · 63 references

Abstract

A crash-consistent I/O cache is essential to ensure data integrity while optimizing performance. However, a general-purpose kernel fails to ensure integrity efficiently because of the high cost of synchronizing I/O requests with the many subsystems that rely on the cache. As a consequence, applications that must store data consistently mostly bypass the kernel I/O cache to implement a second cache in user space. This approach defeats the purpose of centralizing system mechanisms within the OS, induces overheads due to data copying and serialization, and leads to high engineering costs as user-space processes lack direct access to hardware features like page tables. In this paper, we address these drawbacks by doubling the number of kernels instead of doubling the number of caches. The first kernel is general-purpose, while the second provides an independent I/O stack tailored to efficiently ensure integrity. We implemented this design in VoliStorM using hardware virtualization. Our evaluation shows that, across databases, in-memory cache checkpointing, and language runtimes, VoliStorM outperforms the dual-cache approach while simplifying application code and improving code reuse.

Read PDF

We use cookies to run the site and, with your consent, for analytics and to show ads. See our Cookie Policy.