Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.9.3

После двух месяцев разработки состоялся выпуск библиотеки libmdbx 0.9.3 (MDBX) с реализацией высокопроизводительной, компактной встраиваемой базы данных класса ключ-значение. Код libmdbx распространяется под лицензией OpenLDAP Public License. libmdbx является глубокой переработкой СУБД LMDB и по заявлению разработчиков превосходит своего прародителя по надежности, набору возможностей и производительности. Заявляется, что libmdbx до 20% быстрее LMDB в CRUD сценариях, и до 30% быстрее если при сборке libmdbx отключить внутренний контроль до сопоставимого с LMDB уровня.

Libmdbx предлагает ACID, строгую сериализацию изменений и неблокирующее чтение с линейным масштабированием по ядрам CPU. В libmdbx большое внимание уделяется качеству кода, стабильной работе API, тестированию и автоматическим проверкам. Поддерживается автокомпактификация, автоматическое управление размером БД, единый формат БД для 32-битных и 64-битных сборок, оценка объёма выборок по диапазонам (range query estimation). Поставляется утилита проверки целостности структуры БД с некоторыми возможностями восстановления. C 2016 года проект финансируется компанией Positive Technologies и c 2017 года используется в её продуктах.

Основные новшества, доработки и исправления, добавленные после прошлого выпуска:

  • Полностью переработан и протестирован спиллинг (функциональный аналог свопинга) на диск изменённых страниц БД в очень больших транзакциях;
  • В API добавлена установка опций времени выполнения, что позволяет оптимизировать работу движка под конкретные сценарии использования;
  • Ускорена сортировка внутренних списков страниц;
  • За счёт использования C11 atomics улучшена поддержка архитектур со слабой моделью согласованности памяти. Однако, некоторая деградация производительности устранена уже после релиза.
  • Доступен порт для FreeBSD (автор Mahlon E. Smith);
  • Доступны привязки для GoLang (автор Alex Charov);
  • Устранено более 10 ошибок и недочётов;
  • Суммарно внесено более 150 изменений, удалено ~2500 строк, добавлено ~4100.



Источник: http://www.opennet.ru/opennews/art.shtml? num=54554

© OpenNet