Rentrons dans le détail. L'unité élémentaire est un disque qui se connecte directement en IP et donc fait table rase des couches complexes et multiples au-dessus côté serveur engendrant les fameux goulots d'étranglements. En fait, jusqu'à cette approche, l'OS gérait les disques de la même façon avec ou non un système de fichier sur les partitions et éventuellement un gestionnaire de volumes. Les optimisations étaient donc toujours externes et limitées. Seagate a radicalement changé le modèle en optant pour une nouvelle interface disque. L'interface expose une API Key/Value de bas niveau assez optimisée connecté directement en Ethernet qui permet de traiter le disque et les données stockées comme un simple tableau à 2 entrées donc à priori hyper rapide. C'est donc nativement un mode objet, notons que l'API n'est pas encore open source mais devrait le devenir. Les langages supportés sont C/C++, Java, Python et Erlang. Il sera donc possible de tirer parti des modèle scale-out avec un vraie linéarité des charges. La première génération de Kinetic possède les caractéristiques suivantes:
- Disque 3,5" de 4To à 5900RPM,
- 2 ports 1GbE,
- Base KV interne (désolé je ne peux pas la révéler) à chaque disque avec 4kB pour la Key et 1MB max pour la Value,
- P2P Copy pour effectuer des fonctions entre unités Kinetic (Get et Put),
- Réplication en mode Pipeline,
- Fonction GetKeyList() pour lister les clefs par unités.
Les partenaires potentiels sont invités à s'inscrire au programme et valider leur solution sur le simulateur. La solution encore à l'état de prototype devrait être prête d'ici l'été 2014. 2015 devrait voir venir les unités SSD et Spin Down sans rien changer au modèle. A ce jour seuls 2 acteurs ont validé leur solution sur Kinetic, Basho avec Riak et SwiftStack pour OpenStack Swift. D'autres suivront, j'en suis certain...
0 commentaires:
Post a Comment