ការចេញផ្សាយ DBMS libmdbx 0.9.1 ដែលបង្កប់ដោយបង្រួម

ចេញផ្សាយ версия 0.9.1 библиотеки libmdbx (MDBX) с реализацией высокопроизводительной, компактной встраиваемой базы данных класса ключ-значение. Код libmdbx распространяется под лицензией អាជ្ញាប័ណ្ណសាធារណៈ OpenLDAP.

Текущая версия является компромиссом между намерением выпустить долговременную стабильную версию 1.0 с полноценной поддержкой C++ и нежеланием откладывать релизы из-за неготовности к заморозке нового C++ API. Представленный релиз является результатом 9 месяцев работы направленной на стабилизацию библиотеки и повышения удобства её использования, а также включает предварительную версию C++ API.

Библиотека libmdbx является не просто «форком», а кардинально переработанным потомком LMDB - ប្រតិបត្តិការដែលបានបង្កប់ DBMS នៃថ្នាក់ "key-value" ដោយផ្អែកលើ ដើមឈើ B+ ដោយគ្មាន ការកត់ត្រាសកម្ម, которая позволяет многопоточным процессам конкурентно и эффективно работать с локально-разделяемой (не сетевой) БД без выделенного серверного процесса. Libmdbx принципиально ពង្រីក возможности своего прародителя, одновременно устраняя, либо смягчая недостатки. При этом, по убеждению разработчиков, libmdbx немного быстрее и существенно надежнее LMDB.

libmdbx предлагает ទឹកអាស៊ីដ, строгую сериализацию изменений и неблокирующее чтение с линейным масштабированием по ядрам CPU. Результаты тестирования производительности (отправка параллельных запросов на чтение/поиск в 1-2-4-8 потоках на CPU i7-4600U c 2-я физическими ядрами в режиме 4-х потоков HyperThread):

ការចេញផ្សាយ DBMS libmdbx 0.9.1 ដែលបង្កប់ដោយបង្រួម

ភាពខុសគ្នាសំខាន់បំផុតរវាង MDBX និង LMDB៖

  • Принципиально больше внимания уделяется качеству кода, «непадучести» API, тестированию и автоматическим проверкам.
  • ការត្រួតពិនិត្យកាន់តែច្រើនគួរឱ្យកត់សម្គាល់ក្នុងអំឡុងពេលប្រតិបត្តិការ ពីការត្រួតពិនិត្យប៉ារ៉ាម៉ែត្ររហូតដល់សវនកម្មផ្ទៃក្នុងនៃរចនាសម្ព័ន្ធមូលដ្ឋានទិន្នន័យ។
  • ការបង្រួមដោយស្វ័យប្រវត្តិ និងការគ្រប់គ្រងទំហំមូលដ្ឋានទិន្នន័យដោយស្វ័យប្រវត្តិ។
  • ទ្រង់ទ្រាយមូលដ្ឋានទិន្នន័យតែមួយសម្រាប់សន្និបាត 32 ប៊ីត និង 64 ប៊ីត។
  • ការប៉ាន់ស្មានបរិមាណគំរូតាមជួរ (ការប៉ាន់ប្រមាណសំណួរជួរ)។
  • Поддержка ключей вдвое большей длины и выбираемый пользователем размер страницы БД.
  • Утилита проверки целостности структуры БД с некоторыми возможностями восстановления.

Основные новшества и доработки после предыдущей новости с представлением версии 0.5 в январе 2020:

  • Для оперативной поддержки и ответов на вопросы создана открытая группа в Телеграм.
  • Устранено более десятка ошибок и недочетов (см. កំណត់ហេតុផ្លាស់ប្តូរ).
  • Исправлена масса опечаток и орфографических ошибок, множественные косметические улучшения.
  • Расширены тестовые сценарии.
  • Реализована поддержка iOS, Android, buildroot, musl, uClibc, WSL1 и ស្រា.
  • Представлена предварительная версия C++ API в одном заголовочном файле.
  • Оформлена встроенная документация в формате Doxygen и автоматическая генерация Online документации.
  • Обеспечено автоматическое формирование архивов с амальгамированными исходными текстами.
  • Добавлена поддержка подготовки транзакций и курсоров, пользовательских контекстов для транзакций и курсоров.
  • Реализованы дополнительные методы контроля ссылочной целостности в MVCC-снимках B+tree.
  • Добавлена поддержка проверки MVCC-снимка БД, доступного через любую мета-страницу с возможностью переключения для восстановления.
  • Реализована поддержка повторного открытия БД из одного процесса в целях тестирования и т.п.
  • Реализована автоматическая обработка опции MDBX_NOSUBDIR при открытии БД.
  • Добавлены функции формирования целочисленных ключей из значений плавающей точки и «универсальных» чисел JavaScript.
  • Суммарно внесено 430 изменений затронувших 93 файла, добавлено более 25 тысяч строк, более 8.5 тысяч строк удалено.

Последующая разработка libmdbx будет сосредоточена на формировании финального C++ API, дальнейшей стабилизации базового кода, повышению удобства использования библиотеки, а также формирования пакетов для популярных дистрибутивов Linux. Из предполагаемых доработок стоит отметить поддержку ключей в формате កញ្ចប់សារ.

ប្រភព: opennet.ru

បន្ថែមមតិយោបល់