Рейтинг@Mail.ru
HighLoad++ 2015 завершён! Ждём вас в 2016 году!

Профессиональная конференция разработчиков высоконагруженных систем

2 и 3 ноября 2015 Крокус-Экспо МОСКВА
Профессиональная конференция разработчиков высоконагруженных систем

ГлавнаяHighLoad++Базы данных, системы хранения

Движок LMDB - особенный чемпион
Базы данных, системы хранения

Доклад принят в Программу конференции
Positive Technologies

Advanced Research, Lead Shaman.
Автор t1ha, основной разработчик ReOpenLDAP и libmdbx, архитектор TopGun DPI, антагонист Java...
https://github.com/leo-yuriev

Ранее был замечен в Петер-Сервис R&D, Центре Инноваций Натальи Касперской, InfoWatch, КБ Кроникс, ISP ElCat.
25 лет живу разработкой.

Тезисы

Lightning Memory-Mapped Database (LMDB) представляет собой интересный, во многом уникальный движок базы данных класса Berkeley DB и Level DB с ребус-подобным исходным кодом. Будучи относительно малоизвестным, LMDB показывает ЧЕМПИОНСКУЮ производительность по чтению. А наши доработки предлагают ряд компромиссов для достижения невероятной производительности по записи.

Доклад точно будет интересен разработчикам, интересующимся "внутренностями" баз данных или характеристиками отдельных движков.

Хочу рассказать как о исходной версии LMDB, так и о нашем движке внутри ReOpenLDAP:
- Обзор внутреннего устройства LMDB.
- Пояснение "фишек" и преимуществ.
- Разбор выявленных проблем и недостатков.
- Наши доработки (lifo-reclaiming, oom-handler, weak/steady) и их последствия.
- Результаты сравнения производительности тестами от Дмитрия Симоненко (автор Sophia DB).

Изначально LMDB был создан для использования внутри известного проекта OpenLDAP. А мы в Петер-Сервис решили задействовать связку OpenLDAP+LMDB в своих решениях для «Больших Телекомов».

LMDB представляет собой предельный вариант MVCC на основе B-tree с прямым отображением всех данных в память, подходом copy-on-write и lockfree при чтении. Это наделяет LMDB уникальным набором свойств.

Движок LMDB является чемпионом по чтению в сценариях использования с range lookup. Что логично и подтверждается тестами. Но при интенсивной записи всё не так радужно – для высокой производительности требовалось либо жертвовать гарантией консистентности данных, либо устанавливать подсистему хранения, способную переварить огромные IOPSы.

Был ещё целый ряд проблем и недостатков, которые нам пришлось устранить, разбираясь в ребусах исходного кода.

Обратите внимание на доклад по связанной теме http://www.highload.ru/2015/abstracts/1829.html, где планируется рассказать о промышленном проекте с использованием LMDB.

Проект реализуется силами компании Петер-Сервис R&D, резидента Сколково, для применения в телеком-проектах федерального масштаба.

Информация о нашем проекте = https://github.com/ReOpen/ReOpenLDAP/wiki
Дополнительная информация об исходной версии LMDB = http://symas.com/mdb/

Другие доклады секции
Базы данных, системы хранения

Rambler's Top100