VoliStorM : Une avancée majeure pour la cohérence des caches d’E/S en cas de crash
À l’ère du stockage ultra-rapide, la cohérence des données en cas de crash reste un défi majeur. Le projet VoliStorM, sera présenté à la conférence SOSP 2026 à Prague du 29 septembre au 2 octobre — l’une des conférences les plus élitistes en systèmes (seulement 5 articles français acceptés depuis sa création, dont celui-ci). Ce projet propose une solution révolutionnaire : deux noyaux au lieu de deux caches pour concilier performance et intégrité des données.
Une innovation architecturale
Les systèmes modernes, comme les NVMe ou les mémoires persistantes, offrent des latences de l’ordre de la microseconde. Pourtant, les noyaux généralistes, comme Linux, peinent à garantir une cohérence en cas de crash sans sacrifier les performances. Les applications contournent souvent le cache d’E/S du noyau en implémentant un second cache en espace utilisateur, mais cette approche engendre des coûts supplémentaires : copies inutiles, sérialisation des données, et complexité accrue pour les développeurs.
L’équipe de Jana Toljaga, Nicolas Derumigny, Tara Aggoun, Mathieu Bacou et Gaël Thomas (Samovar, Inria, Télécom SudParis) propose une alternative élégante : doubler le nombre de noyaux plutôt que de caches. Le premier noyau reste généraliste, tandis que le second, spécialisé, gère une pile d’E/S optimisée pour la cohérence. Grâce à la virtualisation matérielle, VoliStorM élimine les synchronisations coûteuses avec les sous-systèmes du noyau généraliste, réduisant ainsi la latence critique.
Des résultats prometteurs
L’évaluation de VoliStorM sur des bases de données (Redis, Memcached), des environnements d’exécution (Python, Rust, C++) et des mémoires persistantes démontre sa supériorité :
- Performances : VoliStorM surpasse les approches à double cache, avec des gains allant jusqu’à 20 % en débit pour Redis et 74 % en mode durable avec PMEM.
- Simplicité : Le code applicatif est grandement simplifié. Par exemple, l’intégration de VoliStorM dans Memcached a nécessité seulement 168 lignes de code, contre 40 % de duplication pour des solutions existantes comme PMemcached.
- Généricité : VoliStorM s’adapte à différents contextes (NVMe, PMEM, hybride) et langages, tout en bénéficiant des optimisations système (LRU multi-génération, lecture anticipative, etc.).
Un impact pour l’industrie et la recherche
VoliStorM répond à un enjeu clé : centraliser les mécanismes système dans l’OS tout en garantissant des performances optimales. En évitant les coûts de copie et de synchronisation, cette approche réduit les coûts d’ingénierie et améliore la réutilisation du code. Elle ouvre également la voie à des optimisations système globales, comme l’utilisation des tables de pages matérielles pour identifier efficacement les données modifiées.
En conclusion, VoliStorM marque une étape importante vers des systèmes de stockage plus rapides, plus fiables et plus simples à développer. Une innovation à suivre de près pour les acteurs du cloud et des bases de données.
Pour en savoir plus sur le projet DiVa et sur la conférence SOSP 2026, Prague, 29/09-02/10

