Micron Technology (компания, специализирующаяся на производстве DRAM и флэш-памяти) представила введение новый двигатель под названием «НИУ ВШЭ» (Механизм хранения с гетерогенной памятью), который был разработан с учетом специфики использования на 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.
Технологически, ВШЭ основан на дополнительном модуле ядра 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 который может быть динамически связан с любым приложением.
Возможность масштабирования до терабайт данных и сотен миллиардов ключей в хранилище. - Эффективная обработка тысяч параллельных операций.
- Значительное увеличение пропускной способности, уменьшение задержки и увеличение числа операций чтения / записи для различных типов рабочих нагрузок по сравнению с обычными обходными путями.
- Возможность использовать твердотельные накопители разных классов в одном хранилище для оптимизации производительности и долговечности.
Вы можете получить доступ к коду двигателя по ссылке ниже.