Construire des BDD distribuées & multi-tenant avec FoundationDB et Rust
Pierre Zemb - https://twitter.com/PierreZ Il est communément reconnu qu'il est déconseillé de développer en interne certains types de logiciels, notamment la cryptographie, mais cela s'applique également à un autre domaine critique : les bases de données. Lorsqu'on ajoute des contraintes telles que la scalabilité, la résilience ou le multi-tenancy, le développement d'un tel logiciel devient particulièrement complexe, où la moindre erreur peut compromettre l'intégrité des données. Malgré les difficultés, il y a deux ans, chez Clever Cloud, hébergeur cloud européen, nous avons commencé à entreprendre la création de notre propre base de données distribuée et multi-tenant. Pour accomplir cette tâche, nous nous appuyons intégralement sur Rust et FoundationDB, une technologie open-source largement employée par Apple, notamment afin de stocker toutes les données d'iCloud. Lors de ce deep-dive, nous aborderons les défis particuliers liés à l'écriture d'une base de données en Rust, couvrant des aspects tels que l'organisation des données, l'encodage/décodage, l'indexation et le requêtage. Ensuite, nous discuterons des enjeux liés à la validation et à la durabilité effectuées au moyen d'un framework de simulation de pannes massives que nous avons rendu open-source. Sunny Tech 2024