Micron Technology (une société spécialisée dans la production de DRAM et de mémoire flash) a annoncé l'introduction d' un nouveau moteur appelé « HSE » (Heterogeneous-memory Storage Engine), qui a été développé en tenant compte des caractéristiques spécifiques d'utilisation dans les unités SSD basées sur la mémoire flash NAND (X100, TLC, QLC 3D NAND) ou la mémoire morte (NVDIMM).
Ce moteur est conçu comme une bibliothèque intégrable à d'autres applications et prend en charge le traitement des données clé-valeur . Le code HSE est écrit en C et distribué sous licence Apache 2.0.
Parmi les applications du moteur figurent le stockage de données de bas niveau dans les SGBD NoSQL, le stockage défini par logiciel (SDS) tel que Ceph et Scality RING, les plateformes de traitement de grandes quantités de données (Big Data), les systèmes de calcul haute performance (HPC), les dispositifs de l'Internet des objets (IoT) et les solutions pour les systèmes d'apprentissage automatique.
HSE est optimisé non seulement pour des performances maximales , mais aussi pour garantir la durabilité des différentes classes de SSD. La haute vitesse est obtenue grâce à un modèle de stockage hybride : les données les plus importantes sont stockées dans le cache, ce qui réduit le nombre d’accès au disque.
À titre d'exemple d'intégration du nouveau moteur dans des projets tiers, une version orientée document du SGBD MongoDB a été préparée, qui a été traduite pour utiliser HSE.

Sur le plan technologique, HSE repose sur un module central supplémentaire, mpool , qui implémente une interface spécialisée pour le stockage d'objets sur disques SSD. Cette interface tient compte des capacités et des caractéristiques des disques, permettant ainsi des performances et une durabilité fondamentalement différentes. Mpool est également un développement open source de Micron Technology, publié simultanément avec HSE, mais il constitue un projet d'infrastructure distinct. Mpool utilise la mémoire persistante et le stockage par zones, mais ne prend actuellement en charge que les SSD traditionnels.
Les tests de performance réalisés avec le package YCSB (Yahoo Cloud Serving Benchmark) ont démontré une nette amélioration des performances lors de l'utilisation de 2 To de stockage avec un traitement par blocs de données de 1 Ko. Une amélioration particulièrement significative a été observée lors du test avec une répartition uniforme des opérations de lecture et d'écriture.
Par exemple, MongoDB avec le moteur HSE s'est avéré environ 8 fois plus rapide que la version avec le moteur WiredTiger standard, et le moteur SGBD RocksDB a surpassé HSE de plus de 6 fois. D'excellents indicateurs de performance sont également apparus lors des tests, qui comportaient 95 % d'opérations de lecture et seulement 5 % de modifications ou d'ajouts.
Un autre test réalisé n'implique que des opérations de lecture, il montre un bénéfice d'environ 40%. L'augmentation de la capacité de survie des disques SSD pendant les opérations d'écriture par rapport à la solution basée sur RocksDB est estimée à 7 fois.
Principales caractéristiques de HSE:
- Prise en charge des opérateurs standard et avancés pour traiter les données au format clé / valeur;
- Prise en charge complète des transactions et possibilité d'isoler les segments de stockage en créant des instantanés (les instantanés peuvent également être utilisés pour conserver des collections séparées dans un magasin).
- Possibilité d'utiliser des curseurs pour parcourir les données dans des représentations basées sur des instantanés.
- Un modèle de données optimisé pour les types de charge mixtes dans un référentiel unique.
- Mécanismes flexibles pour gérer la fiabilité du stockage.
- Schémas d'orchestration de données personnalisables (distribution via différents types de mémoire présents dans le référentiel).
- Une bibliothèque avec une API C qui peut être lié dynamiquement à n'importe quelle application.
La capacité d'évoluer vers des téraoctets de données et des centaines de milliards de clés en stockage. - Traitement efficace de milliers d'opérations parallèles.
- Augmentation significative de la bande passante, latence réduite et augmentation de la lecture / écriture pour divers types de charge de travail par rapport aux solutions de contournement classiques.
- La possibilité d'utiliser différentes classes de SSD dans le même stockage pour optimiser les performances et la durabilité.
Vous pouvez accéder au code moteur via le lien suivant.