mirror of
https://github.com/isar/libmdbx.git
synced 2025-02-07 15:09:36 +08:00
mdbx: дополнение ChangeLog.
This commit is contained in:
parent
b9fd42b9b3
commit
e34d4de760
78
ChangeLog.md
78
ChangeLog.md
@ -7,18 +7,73 @@ and [by Yandex](https://translated.turbopages.org/proxy_u/ru-en.en/https/gitflic
|
|||||||
## v0.13.1 (в процессе подготовки выпуска)
|
## v0.13.1 (в процессе подготовки выпуска)
|
||||||
|
|
||||||
Новая версия с существенным расширением API и добавлением функционала.
|
Новая версия с существенным расширением 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 для координации пишущих транзакций.
|
- Управление основной блокировкой lock/unlock/upgrade/downgrade для координации пишущих транзакций.
|
||||||
- `mdbx_env_chk() `для проверка целостности структуры БД, с переработкой и переносом функционала утилиты `mdbx_chk` внутрь библиотеки.
|
|
||||||
- `mdbx_dbi_rename()` и `mdbx_dbi_rename()` для переименования таблиц.
|
- Функции `mdbx_limits_keysize_min()` и `mdbx_limits_valsize_min()` для
|
||||||
- `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()` для получения информации о БД без её открытия.
|
|
||||||
|
|
||||||
- Расширение и доработка C++ API:
|
- Расширение и доработка C++ API:
|
||||||
|
|
||||||
@ -38,6 +93,13 @@ and [by Yandex](https://translated.turbopages.org/proxy_u/ru-en.en/https/gitflic
|
|||||||
- поддержка base58 переработана и приведена в соответствии с черновиком RFC, в текущем понимании теперь это одна из самых высокопроизводительных реализаций;
|
- поддержка base58 переработана и приведена в соответствии с черновиком RFC, в текущем понимании теперь это одна из самых высокопроизводительных реализаций;
|
||||||
- переработка `to_hex()` и `from_hex()`.
|
- переработка `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
|
## v0.13.0 от 2023-04-23
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user