HSE, механизм хранения с открытым исходным кодом, оптимизированный SSE для SSD

Компания Micron Technology (специализирующаяся на производстве DRAM и флэш-памяти) объявила о выпуске нового механизма хранения данных под названием «HSE» (Heterogeneous-memory Storage Engine), разработанного с учетом специфических характеристик использования в твердотельных накопителях (SSD) на основе NAND-флэш-памяти (X100, TLC, QLC 3D NAND) или постоянной памяти (NVDIMM).

Данный движок разработан как библиотека для встраивания в другие приложения и поддерживает обработку данных типа «ключ-значение» . Код HSE написан на языке C и распространяется под лицензией Apache 2.0.

Среди областей применения этого движка — низкоуровневое хранение данных в СУБД NoSQL, программно-определяемые хранилища (SDS), такие как Ceph и Scality RING, платформы для обработки больших объемов данных (Big Data), высокопроизводительные вычислительные системы (HPC), устройства Интернета вещей (IoT) и решения для систем машинного обучения.

Технология HSE оптимизирована не только для максимальной производительности , но и для обеспечения долговечности различных классов SSD-накопителей. Высокая скорость достигается за счет гибридной модели хранения: наиболее важные данные хранятся в кэше, что уменьшает количество обращений к диску.

В качестве примера интеграции нового движка в сторонние проекты была подготовлена ​​документно-ориентированная версия СУБД MongoDB, переведенная на использование HSE.

В технологическом плане HSE основана на дополнительном базовом модуле mpool , который реализует специализированный интерфейс для хранения объектов на твердотельных накопителях, учитывая их возможности и характеристики, что обеспечивает принципиально иные показатели скорости и долговечности. Mpool также является разработкой с открытым исходным кодом от Micron Technology, выпущенной одновременно с HSE, но выделяется как отдельный инфраструктурный проект. Mpool предполагает использование постоянной памяти и зонального хранения, но в настоящее время поддерживаются только традиционные SSD-накопители.

Тесты производительности с использованием пакета YCSB (Yahoo Cloud Serving Benchmark) показали значительное повышение производительности при использовании 2 ТБ хранилища с обработкой блоков данных размером 1 КБ. Особенно существенное повышение производительности наблюдалось в тесте с равномерным распределением операций чтения и записи.

Например, MongoDB с движком HSE оказалась примерно в 8 раз быстрее, чем версия со стандартным движком WiredTiger, а движок СУБД RocksDB превзошёл HSE более чем в 6 раз. Отличные показатели производительности также очевидны в тестах, в которых 95% операций были чтения, а изменения или добавления — всего 5%.

Другой проведенный тест включает только операции чтения, он показывает прибыль около 40%. Повышение живучести SSD во время операций записи по сравнению с решением на основе RocksDB оценивается в 7 раз.

Ключевые особенности HSE:

  • Поддержка стандартных и продвинутых операторов обрабатывать данные в формате ключ / значение;
  • Полная поддержка транзакций и возможность изолировать сегменты хранилища путем создания моментальных снимков (снимки также могут использоваться для поддержки отдельных коллекций в магазине).
  • Возможность использовать курсоры для просмотра данных в представлениях на основе снимков.
  • Модель данных, оптимизированная для смешанных типов нагрузки в одном репозитории.
  • Гибкие механизмы для управления надежностью хранения.
  • Настраиваемые схемы оркестровки данных (распределение через различные типы памяти, присутствующие в репозитории).
  • Библиотека с C API который может быть динамически связан с любым приложением.
    Возможность масштабирования до терабайт данных и сотен миллиардов ключей в хранилище.
  • Эффективная обработка тысяч параллельных операций.
  • Значительное увеличение пропускной способности, уменьшение задержки и увеличение числа операций чтения / записи для различных типов рабочих нагрузок по сравнению с обычными обходными путями.
  • Возможность использовать твердотельные накопители разных классов в одном хранилище для оптимизации производительности и долговечности.

Код двигателя можно получить по следующей ссылке.


Добавить в качестве предпочтительного источника в Google