A Micron Technology (empresa especializada na produção de DRAM e memória flash) anunciou o lançamento de um novo mecanismo chamado "HSE" (Heterogeneous-memory Storage Engine), desenvolvido levando em consideração as características específicas de uso em unidades SSD baseadas em memória flash NAND (X100, TLC, QLC 3D NAND) ou memória somente de leitura (NVDIMM).
O mecanismo foi projetado como uma biblioteca para incorporação em outros aplicativos e oferece suporte ao processamento de dados chave-valor . O código do HSE é escrito em C e distribuído sob a licença Apache 2.0.
Entre as aplicações do mecanismo estão o armazenamento de dados de baixo nível em SGBDs NoSQL, armazenamento definido por software (SDS), como Ceph e Scality RING, plataformas para processamento de grandes quantidades de dados (Big Data), sistemas de computação de alto desempenho (HPC), dispositivos da Internet das Coisas (IoT) e soluções para sistemas de aprendizado de máquina.
O HSE é otimizado não apenas para o máximo desempenho , mas também para garantir a durabilidade de diversas classes de SSD. A alta velocidade é alcançada por meio de um modelo de armazenamento híbrido: os dados mais relevantes são armazenados no cache, reduzindo o número de acessos ao disco.
Como um exemplo de integração do novo mecanismo em projetos de terceiros, foi preparada uma versão orientada a documentos do MongoDB DBMS, que foi traduzida para usar HSE.

Tecnologicamente, o HSE é baseado em um módulo central adicional, o mpool , que implementa uma interface especializada para armazenamento de objetos em unidades de estado sólido (SSDs), levando em consideração suas capacidades e características, possibilitando assim recursos de velocidade e durabilidade fundamentalmente diferentes. O mpool também é um projeto de código aberto da Micron Technology, lançado simultaneamente com o HSE, mas se destaca como um projeto de infraestrutura separado. O mpool pressupõe o uso de memória persistente e armazenamento em zonas, mas atualmente apenas SSDs tradicionais são suportados.
Os testes de desempenho usando o pacote YCSB (Yahoo Cloud Serving Benchmark) mostraram um aumento significativo no desempenho ao usar 2 TB de armazenamento com processamento de blocos de dados de 1 KB. Um aumento de desempenho particularmente significativo foi observado no teste com distribuição uniforme de operações de leitura e gravação.
Por exemplo, o MongoDB com o mecanismo HSE provou ser aproximadamente 8 vezes mais rápido do que a versão com o mecanismo padrão WiredTiger, e o mecanismo do SGBD RocksDB superou o HSE em mais de 6 vezes. Os excelentes indicadores de desempenho também são evidentes nos testes, que apresentaram 95% de operações de leitura e apenas 5% de alterações ou adições.
Outro teste realizado envolve apenas operações de leitura, mostra um lucro de cerca de 40%. O aumento na capacidade de sobrevivência de SSDs durante as operações de gravação em comparação com a solução baseada em RocksDB é estimado em 7 vezes.
Características principais do HSE:
- Suporte para operadores padrão e avançados para processar dados em formato de chave / valor;
- Suporte total a transações e capacidade de isolar segmentos de armazenamento criando instantâneos (os instantâneos também podem ser usados para manter coleções separadas em uma loja).
- Capacidade de usar cursores para percorrer dados em representações baseadas em instantâneos.
- Um modelo de dados otimizado para tipos de carregamento mistos em um único repositório.
- Mecanismos flexíveis para gerenciar a confiabilidade do armazenamento.
- Esquemas de orquestração de dados personalizáveis (distribuição por meio de diferentes tipos de memória presentes no repositório).
- Uma biblioteca com uma API C que pode ser dinamicamente vinculado a qualquer aplicativo.
A capacidade de escalar para terabytes de dados e centenas de bilhões de chaves no armazenamento. - Processamento efetivo de milhares de operações paralelas.
- Aumento significativo na largura de banda, latência reduzida e maior leitura / gravação para vários tipos de cargas de trabalho em comparação com soluções alternativas típicas.
- A capacidade de usar diferentes classes de SSDs no mesmo armazenamento para otimizar o desempenho e a durabilidade.
Você pode acessar o código do motor através do seguinte link.