Mwepụta nke DBMS libmdbx 0.11.3 arụmarụ dị elu agbakwunyere

Состоялся выпуск библиотеки libmdbx 0.11.3 (MDBX) с реализацией высокопроизводительной компактной встраиваемой базы данных класса ключ-значение. Код libmdbx распространяется под лицензией OpenLDAP Public License. Поддерживаются все актуальные операционные системы и архитектуры, а также российский Эльбрус 2000. На конец уходящего 2021 года libmdbx используется как бэкенд хранения в двух самых быстрых клиентах Ethereum — Erigon и новой «Акуле», которая по доступной информации является самым высокопроизводительным клиентом Ethereum.

N'akụkọ ihe mere eme, libmdbx bụ nrụgharị miri emi nke LMDB DBMS ma dị elu karịa nna nna ya na ntụkwasị obi, nhazi atụmatụ na arụmọrụ. Tụnyere LMDB, libmdbx na-etinye aka na mma koodu, nkwụsi ike API, nnwale na nlele akpaaka. A na-ewepụta ngwa maka ịlele iguzosi ike n'ezi ihe nke usoro nchekwa data yana ụfọdụ ike mgbake.

Технологически 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().
  • Na mkpokọta, e mere ihe karịrị 90 mgbanwe na faịlụ 25, ~ 1300 ahịrị agbakwunyere, ~ 600 ehichapụrụ.

isi: opennet.ru

Tinye a comment