Removing fsync from our local storage engine
Les auteurs ont conçu un moteur KV mono‑nœud qui évite d'appeler fsync pour PUT et DELETE en s'appuyant sur des fichiers préalloués de taille fixe, des extents pré‑zéroisés, des E/S O_DIRECT et un journal avec commits alignés sur l'unité d'écriture atomique du SSD. Le moteur déplace la frontière de durabilité hors du système de fichiers en contrôlant l'allocation, le journal et la récupération, le journal ne contenant que des changements d'index et de carte d'espace et acceptant des commits atomiques de 4 Ko pour garantir la cohérence sans fsync. La zone de données utilise une carte d'espace en mémoire permettant des allocations prévisibles, des suppressions bon marché et des politiques de placement flexibles, tandis que la pré‑zéroisation après fallocate évite les conversions d'extents non écrits pendant l'exécution. Sur un benchmark 4 Ko random‑write sur NVMe local AWS i8g.2xlarge, le moteur a atteint environ 190 985 objets/s contre 116 041 objets/s pour ext4+O_DIRECT+fsync, avec latences moyennes et p99 nettement meilleures. Les limites incluent la nécessité d'un contrat de durabilité SSD strict (écritures directes et commits atomiques), l'inadaptation aux HDD, l'absence de fonctionnalités d'un moteur KV généraliste ou de transactions complexes, et le fait qu'il repose encore sur un système de fichiers plutôt que l'accès direct au bloc.