02.03.2021

Microsoft опубликовал код движка хранения Extensible Storage Engine

Компания Microsoft открыла исходные тексты встраиваемого в приложения движка хранения Extensible Storage Engine (ESE), реализующего механизм хранения ISAM, при котором данные сохраняются последовательно, а для быстрого доступа к произвольным записям применяются отдельные индексы. ESE используется в Windows 10, но впервые появился в Windows NT 3.51, выпущенном в 1995 году, и с тех пор несколько раз переписывался. В Microsoft движок ESE используется для хранения содержимого почтовых ящиков в Office 365 и MS Exchange Server, лежит в основе API JET, а также применяется в службах Active Directory, Windows Search и Windows Update. Код написан на языке С++ и открыт под лицензией MIT.

Движок относится к категории NoSQL-систем и может использоваться в приложениях для организации хранения структурированных данных, к которым необходимо получить быстрый доступ, но обычные файлы или реестр не подходят в силу размера и отсутствия индексированного доступа. Поддерживается перемещение по данным с использованием курсора, задание гибких схем данных, ACID-транзакции, механизм восстановления целостности данных в случае краха, кэширование наиболее востребованных данных в ОЗУ.

ESE может эффективно применяться для хранилищ размером от нескольких мегабайт до 16 террабайт. Обеспечивается высокий параллелизм выполнения транзакций, которые реализованы при помощи лога упреждающей записи и модели изоляции на основе снапшотов. Движок также включает несколько вспомогательных библиотек, которые могут использоваться отдельно. В частности, поставляются библиотеки для синхронизации, управления блокировками, манипуляции STL-подобными структурами данных, абстрагирования доступа к операционной системе, управления кэшированием и блочными устройствами.

В текущем виде исходные тексты опубликованы без комментариев, сборочных сценариев и тестового набора. Отмечается, что недостающие части будут опубликованы в будущем, после того как будет завершено рецензирование и анализ корректности (код имеет очень давнюю историю, изначально не был рассчитан на публичность, и, судя по всему, при написании комментариев разработчики не ограничивали себя должным образом).

Источник.