Débit de base de données multiplié par 10 avec io_uring et un WAL double

2025-07-20
Débit de base de données multiplié par 10 avec io_uring et un WAL double

Lors de la construction d'une base de données complexe, l'auteur a expérimenté io_uring et une conception WAL double pour améliorer les performances. Les approches WAL traditionnelles (écrire puis appliquer) créent des goulots d'étranglement. En séparant « l'intention d'écriture » et « l'achèvement de l'écriture » en deux WAL, et en tirant parti des E/S asynchrones d'io_uring, une amélioration du débit de 10 fois a été obtenue. Cette conception écrit l'intention de manière asynchrone, puis les enregistrements d'achèvement ; la récupération applique uniquement les opérations ayant à la fois l'intention et l'achèvement, garantissant la cohérence des données. L'auteur a utilisé Zig et le projet Poro (une base de données clé-valeur expérimentale) pour valider cette approche, soulignant l'importance du parallélisme matériel, du traitement par lots et des modèles de cohérence flexibles.

Lire plus
Développement