Jul 11, 2010

La nouvelle pépite Clustrix

Dernier jour du voyage presse avec la visite d'une vraie pépite de la base de données Clustrix (www.clustrix.com) en leurs locaux du 1 Post Street à San Francisco. Et pour cause, on retrouve à l'origine du projet Paul Mikesell, CEO et VP Engr. et ancien fondateur d'Isilon, et Aaron Passey, CTO et lui aussi ancien d'Isilon, associés à Dan Liddle, responsable du Marketing et du Business Development, passé par quelques fameuses startups telles MaxiScale, Attune et NeoPath. Du beau monde qui a de quoi promettre... autrement dit, on s'attend à l'application "naturelle" des bons concepts Isilon à Clustrix. Et on n'est pas déçu. Coté entreprise, Clustrix est soutenu financièrement par Sequoia Capital, derrière de sacrés succès comme Google, Apple, Cisco, EA, NetApp ou Symantec, USVP et ATA Ventures et a reçu à ce jour 18M$ pour leur première levée.
Clustrix est parti du constat que les systèmes de bases de données largement éprouvés et utilisés aujourd'hui étaient limités et ne pouvaient garantir de bonnes montées en charge, souvent imprévisible, pour les applications très exigeantes comme celle des plus gros sites internet notamment les réseaux sociaux avec des millions d'utilisateurs, on ne parle plus de 5000, 10000 ou 50000 users. La messe est dite pour eux, les serveurs d'application et les systèmes de stockage peuvent et savent être très évolutifs mais les unités de bases de données arrivent rapidement à des limites.
La société adresse les 7 grands défis aujourd'hui d'une infrastructure base de données:
  1. Les besoins de forte évolutivité en performance et capacité et la nécessité d'être linéaire,
  2. L'expansion incrémentale à chaud sans perturbation de la production,
  3. La haute-disponibilité et la tolérance aux pannes pour palier à toute interruption de service, il ne s'agit pas de repartir vite mais d'éviter tout simplement un arrêt même court,
  4. De très hauts besoins de performance en lecture et écriture,
  5. Une administration facile,
  6. Une souplesse de mise en place et
  7. Le meilleur TCO pour la qualité de la proposition.
Plusieurs tentatives et approches d'architecture base de données existent sur le marché et ont fait aussi l'objet de travaux de recherche universitaire ou d'entreprise:
  • l'approche dite "shared-disk" où une seule base physique est "attaquée" par plusieurs instances tournent sur des systèmes différents. La performance et la disponibilité vient du concept de cluster mais on connaît les limites d'un tel modèle: la performance issue du nombre limité de noeuds supportés et de la contention entre ces mêmes noeuds. Certes des progrès ont été réalisés notamment dans les couches de messages et de synchronisation inter-noeud mais la forte évolutivité reste utopique. Le modèle est bon mais inadapté pour les besoins ciblés ici.
  • le second modèle est le "shared-nothing" où on unifie N couples instance/système et base de données pour constituer un énorme référentiel de données. On appelle ce modèle le "sharding" en anglais pour fragmentation mais on trouve aussi le terme partitionnement, l'idée est donc de fédérer des distributions de SGBD(/R). En approche descendante, une base est "découpée" en segment avec 1 segment par système, l'union de tous ces segments représente la base complète, les requêtes sont aiguillées vers les bonnes instances et le tout est fourni aux client requêteurs. Ce modèle va plus loin et est capable d'adresser de gros défis mais se trouve limité plus loin sans être capable de rester simple puisqu'il introduit une complexité et une multiplication des noeuds et des segments.
Clustrix a donc réfléchi, on peut leur faire confiance avec Isilon comme passé, à une troisième approche pour les besoins extrêmes de plus en plus fréquents et dédiée aux applications Internet à forte et rapide évolution de charge. L'idée originale réside dans 2 éléments clés: le maintien de la couche d'accès ici MySQL et la linéarité et évolutivité horizontale du back-end où on retrouve la propriété intellectuelle de Clustrix. Le résultat est la technologie parallèle et distribuée nommée Clustrix Sierra Clustered Database Engine capable de supporter le modèle relationnel et ACID SQL avec une couche massivement évolutive sur un stockage orienté "NoSQL key-value stores" à très haute performance. La partie Sierra est composée de 2 éléments: le Sierra Parallel Planner qui analyse et "coupe" les requêtes en fragments et les affecte aux noeuds appropriés pour exécution parallèle et le Sierra Distributed Execution Engine qui exécute les queries et retournent les résultats aux systèmes émetteurs.


La solution se présente sous forme d'appliance CDS - Clustered Database Systems - vendue par 3 unités minimum de nom CLX 4000. Chaque CLX 4000 est un système 1U avec 32Go de RAM, des cpus dual quad-core, 7 disques SSD de 160Go, 2 ports InfiniBand de 20Gbps pour le back-end inter-noeud et 2 ports 1GbE pour la partie frontale cliente. Le tout s'administre de façon centralisée en mode commande ou au travers d'une console web complète. La protection des données se complète naturellement par un mécanisme de réplication qui supporte 4 modes: 2 à l'initiative de MySQL et 2 contrôlés par Clustrix. La solution délivre des performances exceptionnelles avec 343838 TPS pour 20 noeuds et 798 threads clients à un prix extrêmement attractif, ce qui démontre un ROI rapide et réel surtout par rapport à une approche fédérée qui, de toutes les façons, coûtera en management et en développement spécifique non garanti toujours plus cher.
Le modèle de vente est purement indirect, les produits ne sont pas distribués en France même s'ils tournent déjà sur notre territoire. Clustrix devrait intégrer d'autres couches d'accès notamment Oracle et pourquoi pas dans un temps plus long une couche d'accès fichiers pour des besoins verticaux. Clustrix est une vraie pépite à découvrir d'urgence et qui bouleverse la donne du monde pourtant bien "stable" des bases de données... Paul Mikesell, CEO et fondateur de Clustrix, nous résume en quelques mots la mission et la solution qu'il a mis au point. Félicitations.


No comments :