NimbusDB ou la reconciliation entre SQL et NoSQL
Dans un précédent article intitulé Qu’est ce que le NoSQL ?, je mentionnais les défenseurs du Sql contre les oficionados au NoSQL et inversement.
Les fans du NoSQL mettent en avant scalabilité, performances incroyables et solides tolérances aux pannes. Ceux du SQL sont convaincus que NoSQL est un phénomène de mode qui sera rapidement marginalisé et que la logique transactionnelle a déjà fait ses preuves, que le langage SQL étant adopté massivement par l’ensemble de l’industrie informatique, il n’est pas utile de concevoir de nouvelle logique de stockage des données.
Pour réconcilier les deux mondes, un compromis existe. Il nous vient de la société NimbusDB, situé à Cambridge, tout prêt du MIT (Massachusetts Institute of Technology).
Fondée en 2010 par Barry Morris et Jim Starkey, cette société continue à croire et à miser sur Sql. Elle concède cependant que les systèmes transactionnels classiques présentes des limites incompatibles avec les besoins et les volumétries du Web actuel.
D’un autre coté, si NoSQL compense en grande partie ces limites c’est au prix d’une simplification extrême du schéma de donnée et de restrictions importantes dans les possibilités de requête.
NimbusDB se présente comme une base de données transactionnelles ACID, compatible SQL mais conçut autour d’une architecture distribuée.
Ni tout à fait SQL, ni tout a fait NoSQL, cette solution appartient à une nouvelle famille appelée ‘NewSQL‘.
Les fondateurs
Loin d’être des illuminés, les deux fondateurs ont une solide expérience dans l’univers du middleware et des bases de données.
CEO et co-fondateur, Barry Morris est riche d’une expérience de plus de 25 ans dans l’industrie informatique aux Etats Unis et en Europe. Il a travaillé chez IONA Technologies, une société irlandaise, conceptrice de la solution Orbix (un middleware largement déployé dans le monde).
Il rejoint ensuite Streambase Systems et met sur le marché un projet, dirigé par le Dr Michael Stonebaker du MIT, qui fait de Streambase une société leader dans l’univers de l’analyse d’évènements complexes (ou CEP pour Complex Event Processing). Le ‘CEP’ consiste à traiter et analyser plusieurs centaines de milliers d’évènements par secondes. C’est une science largement utilisés dans l’univers de la finance, du e-commerce et des jeux massivement muti-joueurs.
Barry possède un diplôme d’ingénieur de ‘New College of Oxford University’ et d’un doctorat en administrations des affaires.
Directeur Technique et co-fondateur, Jim est un guru des bases de données avec plus de 30 ans d’expérience dans le métier. Il rejoint DEC en 1975 et participe à la conception de plusieurs solutions tel que Datatrieve et la première RDB: Rdb/ELN. Il y sera également architecte logiciel.
Il quitte DEC pour fonder Interbase Software en 1984 et développer des bases de données relationnelles à l’usage des postes de travail. Après différents rachats, Interbase abouti dans le monde Open Source et devient la base du projet Firebird.
En 2000 il fonde Netfrastructure Inc, une plate forme unifiée de distribution applicative. Elle sera rachetée par Mysql, AB, et servira de fondation au projet Falcon. Il quitte ensuite le projet lors du rachat de Mysql par Sun.
Jim est titulaire d’un diplôme en mathématique de l’université du Wisconsin.
L’architecture
Comme tout système scalable, NimbusDB est un système réparti. Cette répartition est d’autant plus importante que l’ensemble est conçu pour fonctionner sur des machines éparpillées sur la planète entière, notamment avec l’utilisation d’un protocole peer to peer. Ainsi, il est en théorie possible de construire une ferme ‘intercontinentale’.
L’architecture s’articule autour de 3 composants logiciels:
- Les noeuds d’archives: ils stockent les données sur disques,
- Les noeuds de transactions: ils traitent les requêtes et travaillent avec des données exclusivement en mémoire. Ils peuvent récupérer des données sur d’autres noeuds de transactions ou sur des noeuds de stockage en utilisant un technologie P2P,
- Les brockers de connections: sorte de load-balancer, ils font l’intermédiaire entre les applications et les noeuds de transactions pour optimiser et répartir la charge.
Une base de données, constituée de d’objets nommés ‘atoms’, repose sur un groupe de noeuds appelé ‘chorus’. Lorsque deux utilisateurs souhaitent modifier un bloc de donnée (atoms) en même temps, un ordonnanceur appelé ‘chairman’ se charge de gérer les priorités. Toutes les écritures, même concurrentes, provoque la création d’une ‘sous version’ (ou snapshot) de la base. Le système se charge ensuite de rétablir la cohérence des données. Cette méthode permet d’optimiser les opérations d’écriture en s’affranchissant du verrouillage.
Coté sécurité les échanges entre les noeuds sont compressés, chiffrés et soumis à authentification.
La scalabilité se gère très facilement par simple ajout ou retrait d’une machine au système en fonction des besoins. Cette propriété est particulièrement adaptée aux applications ou services sujets à des pics de charge. La facturation de l’hébergeur peut se faire au plus prêt de la consommation du client, chose encore difficile avec les architectures traditionnelles. En théorie, il n’y a pas de pré-requis matériel et le logiciel s’installe sur n’importe quel serveur au point que Barry Morris n’exclut pas son déploiement sur un Ipad (pour rire).
Une autre propriété intéressante concerne les mise à jour logiciel: s’agissant d’un système distribué, une montée de version peut s’avérer compliquer. Pour simplifier la tâche, NimbusDB supporte les mises à jour progressives et les noeuds peuvent être upgradés un par un sans bloquer le système.
Conclusion
NimbusDB est encore en développement. Le prix n’est pas tout à fait fixé mais Barry évoque quelques milliers de dollars par noeuds et par an. Bien sûr le coeur de cible est constitué avant tout par les hébergeurs et fournisseurs Saas.
En ce qui me concerne, j’attends une invitation pour tester le soft proposé en beta test privé (limité à deux noeuds). Les inscriptions sont ouvertes depuis début juin et vous pouvez vous aussi en faire la demande sur le site.
L’actualité de la société est disponible via Facebook, Twitter ou la newsletter (inscription accessible sur la page d’accueil du site).
Enfin, je vous recommande cette présentation par Barry Morris himself (en anglais, of course):
[youtube]k__k3IVXEhk[/youtube]
Merci pour votre lecture et n’hésitez pas à laisser un commentaire si vous le jugez utile.
Suggestions:
- Qu’est ce que le NoSQL ?
- Construire un Cloud compatible VMWare avec une solution libre: OpenStack
- Bigtable: système de bases de données distribué version Google
- Failover Mysql et bascule ou promotion automatique Slave-Master avec Mysql MHA
- Mise en place d’une architecture Mysql haute performance avec la ‘réplication circulaire’
![587923[1] Barry Morris - nimbusDB](http://www.inzecloud.fr/wp-content/uploads/2011/07/5879231-150x150.jpg)
![Starkey[1] Jim Starkey](http://www.inzecloud.fr/wp-content/uploads/2011/07/Starkey1-150x150.jpg)
![nimbusdb[1] Architecture NimbusDB](http://www.inzecloud.fr/wp-content/uploads/2011/07/nimbusdb1-300x144.jpg)













Philippe BECHET, Ingénieur Système au sein du service R&D d'un FAI.
Mission: isolation du réseaux de développement et de la plate forme de service.



















