Apple publie le code source de FoundationDB, sa base de données NoSQL ACID
Trois ans après avoir racheté FoundationDB, Apple a publié cette semaine le code source du coeur de la base de données. Foundation DB offre des caractéristiques assez uniques en proposant un moteur NoSQL distribué garantissant la cohérence des données (ACID). De quoi offrir une alternative séduisante aux bases comme MongoDB, Cassandra ou Redis.
Trois ans après avoir racheté FoundationDB, l’une des bases de données les plus prometteuses de ces dernières années, Apple a annoncé son intention d’en publier le code source sous licence Apache 2.0. Avec cette décision, Apple ajoute un projet open source additionnel à sa collection (Darwin, WebKit, Swift) et met à la disposition des communautés open source une technologie séduisante aux caractéristiques techniques assez uniques. La firme, qui utilise sans doute FoundationDB au coeur de ses services Cloud, entend sans doute aussi créer un effet de communauté autour de la base afin d'en développer les capacités, mais également de développer les compétences autour de l'outil.
FoundationDB est à l’origine un moteur de base de données NoSQL distribué. Mais ce moteur a la particularité très intéressante de supporter des transactions en mode ACID, ce qui permet à tout moment de garantir la cohérence des données aux applications qui l'utilisent. Cette caractéristique en fait un hybride entre les bases de données traditionnelles comme Oracle ou SQL Server et les bases NoSQL non ACID comme MongoDB, Redis, Riak ou Cassandra.
Autre particularité rare, FoundationDB, du fait de son architecture, peut prendre plusieurs personnalités. Outre son aptitude à fonctionner en mode key/value store, la base dispose aussi d’une personnalité SQL (avec un moteur de traitement SQL scale-out) et peut aussi fonctionner en mode document — Il est toutefois à noter qu’à ce jour Apple n’a publié que le code du cœur de la base et pas celui du moteur SQL.
Une base de données distribuées aux caractéristiques impressionnantes
Apte à fonctionner en mode scale-out, FoundationDB s’appuie sur une architecture distribuée de type shared nothing. Toutes les écritures et lectures dans FoundationDB se font sous la forme de transactions ACID.
La base est tolérante aux pannes, puisque le stockage est lui aussi distribué entre les nœuds du cluster et que l’ensemble des processus clés sont distribués afin d’éviter tout point unique de panne — la base supporte nativement le déploiement sur de multiples datacenters (agissant comme des « zones de disponibilité ») et sait répliquer ses données sur chacun d’entre eux de telle sorte que la défaillance d’un datacenter complet n’affecte pas les opérations.
De même, des mécanismes internes à la base visent à garantir sa performance en optimisant la distribution des transactions entre les nœuds de façon à minimiser la latence de traitement.
FoundationDB incorpore de plus sa propre couche de cache distribué ce qui évite le recours à des outils tiers comme memcached (le cache dans FoundationDB est qui plus est synchronisé avec la base afin de préserver les attributs ACID de la base.
Enfin, la base incorpore un mécanisme de snapshots et d’exportation de snapshot, afin de permettre le retour rapide à un état antérieur en cas d’erreur humaine ou en cas de sinistre.
Un site dédié au projet
Comme pour tous ses autres projets open source [comme Darwin, WebKit ou Swift], Apple a plutôt bien fait les choses. La firme a créé un site dédié pour le projet FoundationDB et a publié des règles détaillées pour la contribution au code.
La firme à la pomme entend faire de FoundationDB un vrai projet ouvert gouverné par une méritocratie [entendez par là que le projet valorisera les plus gros contributeurs au code en leur donnant plus de pouvoir dans la communauté].
Le code de FoundationDB est disponible sur GitHub et des versions binaires de la base pour MacOS, Windows et Linux sont également disponibles en téléchargement. Le projet est piloté par Ben Collins, l’ancien directeur de l’ingénierie de FoundationDB, aujourd’hui en charge des technologies de stockage distribuées chez Apple.
La mise à l’open source du code a été saluée par plusieurs utilisateurs de la base, dont SnowFlake, le spécialiste du datawarehouse en mode SaaS, qui utilise la base pour la gestion de ses métadonnées.