mirror of
https://github.com/isar/libmdbx.git
synced 2025-01-30 22:47:16 +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 (в процессе подготовки выпуска)
|
||||
|
||||
Новая версия с существенным расширением 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
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user