Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10.4 и libfpta 0.3.9
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Состоялся выпуск библиотек libmdbx 0.10.4 (MDBX) с реализацией высокопроизводительной компактной встраиваемой базы данных класса ключ-значение, и связанной библиотеки libfpta 0.3.9 (FPTA), реализующей поверх MDBX табличное представление данных с вторичными и составными индексами. Обе библиотеки распространяются под лицензиями одобренными OSI. Поддерживаются все актуальные операционные системы и архитектуры, включая российский Эльбрус.
Исторически 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. Для libfpta публично доступно только описание API в виде заголовочного файла C/C++.
Основные новшества, доработки и исправления, добавленные после предыдущей новости от 9 мая:
- Обеспечена возможность воспроизводимых сборок.
- Устранена ошибка, из-за которой при очень редком стечении обстоятельств в ходе фиксации транзакции могло происходить зацикливание/зависание. Проблема выявлена специалистами Positive Tecnologies при внутреннем тестировании собственных продуктов.
- Доработаны тесты и расширены тестовые сценарии для проверки всех достижимых не изоморфных состояний дерева страниц и содержимого GC внутри БД.
- В C++ API исправлен лишний "noexcept", добавлены дополнительные перегрузки для метода "cursor::erase()", реализация буферов избавлена от использования "std::string" для обеспечения выравнивания (актуально для CLANG libstdc++).
- Устранён регресс в алгоритме спиллинга грязных страниц (избирательное вытеснение изменённых страниц БД) проявлявшейся редкой неожиданной ошибкой MDBX_PROBLEM при изменении данных в огромных транзакциях.
- Проведена проверка фазингом с добавлением ряда проверок для обеспечения стабильности при намеренном повреждении БД.
- Устранены незначительные предупреждения UndefinedBehaviorSanitizer и Coverity Scan issues.
- Исправлена проверка устаревшего и уже неиспользуемого внутреннего флага "P_DIRTY" во вложенных страницах внутри образов БД созданных старыми версиями библиотеки.
- В скриптах CMake доработан поиск компонентов компилятора необходимых для LTO (link-time optimization).
- Максимальное кол-во одновременных читателей увеличено до 32767.
- Ускорена работа при использовании Valgrind и AddressSanitizer.
- На Windows устранено рекурсивное использование SRW-lock при работе в режиме MDBX_NOTLS (без использования thread local storage), исправлена генерация bootid в случае изменении системного времени, доработано детектирование WSL1 и WSL2, добавлена возможность открытия БД на Plan 9 смонтированной посредством DrvFS.
- Суммарно внесено более 160 изменений в 57 файлов, добавлено ~5000 строк, удалено ~2500.
Отдельно хочется поблагодарить команду проекта Erigon (экосистема Ethereum) за помощь в тестировании в экстремальных сценариях использования. Показательно, что за пять месяцев с момента выхода libmdbx v0.10.0, при объёме БД 1-2 Тб в каждой инсталляции Erigon, от пользователей поступило только три сообщения о повреждении БД, которые произошли из-за внешних причин: в двух случаях причиной были сбои ОЗУ, в третьем ошибка обнуления данных в специфической конфигурации подсистемы хранения с использованием BTRFS.
===========
Источник:
OpenNet.RU
===========
Похожие новости
- Главная ссылка к новости (https://github.com/erthink/lib...)
- OpenNews: Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.10
- OpenNews: Опубликован второй кандидат в релизы встраиваемой СУБД libmdbx 1.0
- OpenNews: Выпуск LDAP-сервера ReOpenLDAP 1.1.9
- OpenNews: Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.9.2
- OpenNews: Выпуск высокопроизводительной встраиваемой СУБД libmdbx 0.9.3
Похожие новости:
- Доступна документо-ориентированная СУБД MongoDB 5.0
- Amazon опубликовал OpenSearch 1.0, форк платформы Elasticsearch
- [Microsoft SQL Server, Администрирование баз данных] Решения Quest для управления и мониторинга Microsoft SQL Server — анонс вебинара
- [Apache, Big Data, Хранилища данных, Data Engineering] DAG’и без напрягов: наш опыт использования метаданных при работе с Apache Airflow
- [Разработка веб-сайтов, Хранилища данных] Основы понимания мира баз данных
- [Администрирование баз данных] SAP HANA. Таблицы с типом хранения Row
- [Java] Способы хранения деревьев в реляционных базах данных c использованием ORM Hibernate
- [Высокая производительность, Python, SQL, Проектирование и рефакторинг, ООП] SQLAlchemy: а ведь раньше я презирал ORM
- Выпуск СУБД Firebird 4.0 с поддержкой репликации
- [Администрирование баз данных, Big Data] Путеводитель по базам данных в 2021 г (перевод)
Теги для поиска: #_libmdbx, #_database
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 03:06
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Состоялся выпуск библиотек libmdbx 0.10.4 (MDBX) с реализацией высокопроизводительной компактной встраиваемой базы данных класса ключ-значение, и связанной библиотеки libfpta 0.3.9 (FPTA), реализующей поверх MDBX табличное представление данных с вторичными и составными индексами. Обе библиотеки распространяются под лицензиями одобренными OSI. Поддерживаются все актуальные операционные системы и архитектуры, включая российский Эльбрус. Исторически 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. Для libfpta публично доступно только описание API в виде заголовочного файла C/C++. Основные новшества, доработки и исправления, добавленные после предыдущей новости от 9 мая:
=========== Источник: OpenNet.RU =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 03:06
Часовой пояс: UTC + 5