Блеск и нищета key-value базы данных LMDB в мобильной разработкеАрхитектура

Доклад принят в программу конференции
Павел Осипов
Mail.Ru Group

Руководитель разработки Облака Mail.Ru для iOS

Twitter: posipov
Telegram: posipov
Email: inbox@pavelosipov.net
Тезисы

Key-value базы данных – редкий зверь в мобильной разработке. Их крайне низкоуровневый API не позволяет быстро моделировать хранилища сущностей нетривиальной предметной области. В то же время для простых кешей достаточно компонент из платформенных SDK.

Однако в Облаке Mail.Ru в определённый момент времени скорость работы кеша метаданных стала безусловным приоритетом. Существуют пользователи, которые хранят в облаке до 500 тыс. файлов и папок. Решения на основе CoreData, Realm и даже SQLite не позволили нам реализовать операции вставки, слияния и выборки метаданных о структуре деревьев такого объёма за приемлемое время.

В докладе я расскажу, как мы променяли удобство API традиционных баз данных на скорость. В начале будут рассмотрены вопросы моделирования таблиц поверх абстракций "ключ" и "значение", связывание таблиц между собой и построение индексов по полям хранящихся объектов. Далее последует небольшой экскурс во внутреннее устройство LMDB с указанием значимых в прикладной мобильной разработке особенностей. В заключении покажу, как мы сделали хранилище кросс-платформенным, написав логику работу с данными на С++ и сгенерировав Java и Objective-C обёртки для на него с помощью Dropbox Djinni.

Организация системы кеширования
,
Организация доступа к базам данных, ORM, собственные драйвера
,
Оптимизация производительности
,
SQLite, ORM, альтернативные СУБД
,
БД на мобильных устройствах
,
Кросплатформенная разработка

Другие доклады секции Архитектура