MongoDB va bénéficier des garanties d’intégrité de données ACID (atomicité, cohérence, isolation, durabilité) sur les transactions multidocuments. La fonctionnalité est planifiée pour la version 4.0 de la base de données orientée documents qui sortira cet été. C’est ce qu’a indiqué il y a quelques jours Eliot Horowitz, CTO de l’éditeur MongoDB (et l'un de ses fondateurs, c'est lui qui a commencé à écrire le cœur de la base en 2007 et mis ensuite sur pied les équipes produits et ingénierie). Il propose aux utilisateurs de rejoindre le programme bêta pour tester cette fonctionnalité qui figure parmi les plus demandées.
Les transactions ACID sont déjà supportées par la base de données au niveau du document. Désormais, le support est multidocument et couvre aussi les collections (l’équivalent d’une table SGBRD, cf le glossaire MongoDB). « A travers l’isolation snapshot, les transactions fournissent une vue globalement cohérente des données et renforcent l’exécution ‘tout-ou-rien’ pour maintenir l’intégrité des données », rappelle Eliot Horowitz dans son billet.
La feuille de route de MongoDB. (crédit : MongoDB)
Une syntaxe similaire à celle des SGBDR
Avec cette évolution, les transactions dans MongoB ressembleront à celles que les développeurs connaissent sur les bases relationnelles, indique le CTO. Elles utiliseront une syntaxe similaire, par exemple start_transaction and commit_transaction, « ce qui les rendra familières à quiconque a déjà une expérience des transactions », ajoute-t-il en précisant que cela n’impactera pas la performance des charges de travail qui ne les requièrent pas. Dans MongoDB 4.0, elles s’exécuteront à travers un même replica set.
Les développeurs vont donc pouvoir établir des relations multiples entre les données. Un système de gestion des commandes, par exemple, peut comporter une transaction portant sur cinq articles qui doit être répercutée dans la gestion des stocks. Cela pourra être géré par MongoDB 4.0 sans code supplémentaire à écrire pour les développeurs ce qui s’approche de ce qu’ils connaissent avec les SGBDR. Quant à la version 4.2, elle supportera les transactions à travers un déploiement « sharded », annonce déjà Eliot Horowitz.