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

Автор Сообщение
news_bot ®

Стаж: 6 лет 2 месяца
Сообщений: 27286

Создавать темы news_bot ® написал(а)
31-Дек-2021 18:30

Состоялся выпуск библиотеки libmdbx 0.11.3 (MDBX) с реализацией высокопроизводительной компактной встраиваемой базы данных класса ключ-значение. Код libmdbx распространяется под лицензией OpenLDAP Public License. Поддерживаются все актуальные операционные системы и архитектуры, а также российский Эльбрус 2000. На конец уходящего 2021 года libmdbx используется как бэкенд хранения в двух самых быстрых клиентах Ethereum — Erigon и новой «Акуле», которая по доступной информации является самым высокопроизводительным клиентом Ethereum.
Исторически libmdbx является глубокой переработкой СУБД LMDB и превосходит своего прародителя по надёжности, набору возможностей и производительности. В сравнении с LMDB, в libmdbx большое внимание уделяется качеству кода, стабильной работе API, тестированию и автоматическим проверкам. Поставляется утилита проверки целостности структуры БД с некоторыми возможностями восстановления.
Технологически libmdbx предлагает ACID, строгую сериализацию изменений и неблокирующее чтение с линейным масштабированием по ядрам ЦПУ. Поддерживается автокомпактификация, автоматическое управление размером БД, оценка объёма выборок по диапазонам (range query estimation). С 2016 года проект финансируется компанией Positive Technologies и c 2017 года используется в её продуктах.
Для libmdbx предлагается C++ API, а также поддерживаемые энтузиастами привязки к языкам Rust, Haskell, Python, NodeJS, Ruby, Go, Nim.
Основные новшества, доработки и исправления, добавленные после предыдущей новости от 11 октября:
  • C++ API считается готовым к применению.
  • Существенно ускоренно обновление данных GC при фиксации огромных транзакций, что особенно актуально при использовании libmdbx в экосистеме Ethereum.
  • Изменена внутренняя сигнатура формата БД с поддержкой автоматического обновления, которое полностью прозрачно для пользователей. Это позволяет исключить ложно-положительные сообщения о повреждении БД, когда устаревшие версии библиотеки использутся для чтения транзакций зафиксированных актуальными версиями.
  • Добавлены функции mdbx_env_get_syncbytes(), mdbx_env_get_syncperiod() и mdbx_env_get_syncbytes(). Добавлена поддержка операции MDBX_SET_UPPERBOUND.
  • Устранены все предупреждения при сборке всеми поддерживаемыми компиляторами в режимах С++ 11/14/17/20. Обеспечена совместимость с устаревшими компиляторами: clang начиная с 3.9, gcc начиная с 4.8, включая сборку посредством сdevtoolset-9 для CentOS/RHEL 7.
  • Устранена возможность конфликта мета-страниц после ручного переключения на определенную мета-страницу с помощью утилиты mdbx_chk.
  • Исправлен возврат неожиданной ошибки MDBX_PROBLEM при перезаписи устаревших мета-страниц.
  • Исправлен возврат MDBX_NOTFOUND в случае неточного совпадения при обработке запроса MDBX_GET_BOTH.
  • Устранена ошибка компиляции на Linux при отсутствии заголовочных файлов с описаниями интерфейсов с ядром.
  • Исправлена коллизия между внутренним флагом MDBX_SHRINK_ALLOWED и опцией MDBX_ACCEDE.
  • Устранено несколько излишних assert-проверок.
  • Исправлена неожиданный возврат MDBX_RESULT_TRUE из функции mdbx_env_set_option().
  • Суммарно внесено более 90 изменений в 25 файлов, добавлено ~1300 строк, удалено ~600.

===========
Источник:
OpenNet.RU
===========

Похожие новости: Теги для поиска: #_libmdbx
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 05-Май 19:00
Часовой пояс: UTC + 5