mdbx: дополнение ChangeLog.

This commit is contained in:
Леонид Юрьев (Leonid Yuriev) 2024-04-04 12:53:13 +03:00
parent b9fd42b9b3
commit e34d4de760

View File

@ -7,18 +7,73 @@ and [by Yandex](https://translated.turbopages.org/proxy_u/ru-en.en/https/gitflic
## v0.13.1 (в процессе подготовки выпуска)
Новая версия с существенным расширением API и добавлением функционала.
В том числе, с незначительным нарушением обратной совместимости API
библиотеки.
Новое:
- Перенос функционала утилиты `mdbx_chk` внутрь библиотеки в виде
функции `mdbx_env_chk() `для проверка целостности структуры БД, в том
числе с вовлечением логики приложения.
- Опция `MDBX_opt_gc_time_limit` для более гибкого контроля времени
расходуемого на поиск последовательностей соседствующих свободных
страниц в GC.
- Снижение накладных расходов на запуск транзакций в сценариях с
большим количеством DBI-хендов, за счет отложенной/ленивой инициализации
элементов служебных таблиц. В том числе, механизм поддержки разреженных
наборов DBI-хендов, управляемый опцией сборки `MDBX_ENABLE_DBI_SPARSE`,
которая включена по-умолчанию.
- Снижение накладных расходов на открытие DBI-хендов. В том числе,
механизм отложенного освобождения и поддержки быстрого пути открытия без
использования блокировок, управляемый опцией сборки
`MDBX_ENABLE_DBI_LOCKFREE`, которая включена по-умолчанию.
- Расширение API позиционирования курсоров более удобными и очевидными
операциями по аналогии условиям `<`, `<=`, `==`, `>=`, `>` как для
ключей, так и для пар ключ-значение.
- Функции `mdbx_dbi_rename()` и `mdbx_dbi_rename2()` для переименования таблиц.
- Функции `mdbx_cursor_unbind()` и `mdbx_txn_release_all_cursors()` для
гибкого управления курсорами в сценариях повторного использования для
уменьшения накладных расходов.
- Функция `mdbx_env_resurrect_after_fork()` для восстановление открытой
среды работы с БД в дочернем процессе после ветвления/расщепления
процесса.
- Функция `mdbx_cursor_compare()` для сравнения позиций курсоров
аналогично оператору `<=>`.
- Функции `mdbx_cursor_scan()` и `mdbx_cursor_scan_from()` для
сканирования таблиц с использованием функционального предиката и
уменьшением сопутствующих накладных расходов.
- Функции `mdbx_cursor_on_first_dup()` и `mdbx_cursor_on_last_dup()`
для оценки позиции курсора.
- Функция `mdbx_preopen_snapinfo()` для получения информации о БД без
её открытия.
- Поддержка функций логирования обратного вызова без функционала
`vprintf()`, что существенно облегчает использование логирования в
привязках к другим языкам программирования.
- Режим работы `MDBX_NOSTICKYTHREADS` вместо `MDBX_NOTLS` для упрощения
интеграции с легковесными потоками/нитями их мультиплексирования вместе
с транзакциями по потокам операционной системы.
- TODO: Опция `MDBX_opt_prefer_waf_insteadof_balance`.
- TODO: Опции `MDBX_opt_subpage_limit`, `MDBX_opt_subpage_room_threshold`, `MDBX_opt_subpage_reserve_prereq`, `MDBX_opt_subpage_reserve_limit`.
- Управление основной блокировкой lock/unlock/upgrade/downgrade для координации пишущих транзакций.
- `mdbx_env_chk() `для проверка целостности структуры БД, с переработкой и переносом функционала утилиты `mdbx_chk` внутрь библиотеки.
- `mdbx_dbi_rename()` и `mdbx_dbi_rename()` для переименования таблиц.
- `mdbx_cursor_unbind()` и `mdbx_txn_release_all_cursors()` для управления курсорами.
- `mdbx_env_resurrect_after_fork()` для восстановление открытой среды работы с БД в дочернем процессе после ветвления/расщепления процесса.
- `mdbx_cursor_compare()` для сравнения позиций курсоров.
- `mdbx_cursor_scan()` и `mdbx_cursor_scan_from()` для сканирования таблиц с использованием функционального предиката.
- `mdbx_cursor_on_first_dup()` и `mdbx_cursor_on_last_dup()` для проверки позиции курсора.
- `mdbx_preopen_snapinfo()` для получения информации о БД без её открытия.
- Функции `mdbx_limits_keysize_min()` и `mdbx_limits_valsize_min()` для
получения нижней границы длины ключей и значений.
- Расширение и доработка C++ API:
@ -38,6 +93,13 @@ and [by Yandex](https://translated.turbopages.org/proxy_u/ru-en.en/https/gitflic
- поддержка base58 переработана и приведена в соответствии с черновиком RFC, в текущем понимании теперь это одна из самых высокопроизводительных реализаций;
- переработка `to_hex()` и `from_hex()`.
Нарушение совместимости:
- Опция `MDBX_COALESCE` объявлена устаревшей, так как соответствующий функционал всегда включен начиная с предыдущей версии 0.12.
- Опция `MDBX_NOTLS` объявлена устаревшей и заменена на `MDBX_NOSTICKYTHREADS`.
- Опция сборки `MDBX_USE_VALGRIND` заменена на общепринятую `ENABLE_MEMCHECK`.
- В структуре `MDBX_envinfo` серии полей вида `meta1`, `meta2` и `meta3` заменены на массивы вида `meta[3]`.
- В шаблонных классах и функциях С++ API по-умолчанию вместо `mdbx::legacy_buffer` использован тип `mdbx::default_buffer` использующий полиморфные аллокаторы С++ 17.
## v0.13.0 от 2023-04-23