mirror of
https://github.com/isar/libmdbx.git
synced 2025-08-02 10:44:44 +08:00
mdbx: дополнение ChangeLog.
This commit is contained in:
parent
6f49e7dfeb
commit
39326e79bc
30
ChangeLog.md
30
ChangeLog.md
@ -11,6 +11,7 @@ and [by Yandex](https://translated.turbopages.org/proxy_u/ru-en.en/https/libmdbx
|
|||||||
Благодарности:
|
Благодарности:
|
||||||
|
|
||||||
- [Erigon](https://erigon.tech/) за спонсорство.
|
- [Erigon](https://erigon.tech/) за спонсорство.
|
||||||
|
- [Артёму Воротникову](https://github.com/vorot93) за сообщение об ошибках и тестировании [призязок для Rust](https://github.com/vorot93/libmdbx-rs).
|
||||||
|
|
||||||
Новое:
|
Новое:
|
||||||
|
|
||||||
@ -26,26 +27,47 @@ and [by Yandex](https://translated.turbopages.org/proxy_u/ru-en.en/https/libmdbx
|
|||||||
операций. Поэтому, в большинстве сценариев накладные расходы чуть
|
операций. Поэтому, в большинстве сценариев накладные расходы чуть
|
||||||
меньше, но наоборот чуть больше при отмене вложенных транзакций.
|
меньше, но наоборот чуть больше при отмене вложенных транзакций.
|
||||||
|
|
||||||
|
- В API копирования БД добавлена опция `MDBX_CP_OVERWRITE` (перезапись целевого файла),
|
||||||
|
а в утилиту `mdbx_copy` аналогичная по смыслу опция командной строки `-f` .
|
||||||
|
|
||||||
Исправления:
|
Исправления:
|
||||||
|
|
||||||
- Исправлена assert-проверка внутри `txn_end()`, из-за которой происходили падения отладочных сборок при ошибках запуска транзакций.
|
- Устранена критическая ошибка в функционале `mdbx_env_resurrect_after_fork()` при использовании SysV-семафоров.
|
||||||
|
|
||||||
- Устранены несущественные предупреждения MSVC.
|
Проявлялась ошибка только после порождения дочернего процесса посредством `fork()` на фоне выполняющейся пишущей транзакции, что
|
||||||
|
приводило к неверной работе семафоров и далее к самым различным ошибкам, вплоть до повреждения БД. Проблема существовала начиная с появления
|
||||||
|
`mdbx_env_resurrect_after_fork()` и затрагивала OSX, а также POSIX-платформы при сборке с опцией `MDBX_LOCKING=5`.
|
||||||
|
|
||||||
|
- Устранена проблема в API копирования БД на отличных от Linux системах POSIX,
|
||||||
|
а также в некоторых случаях при расположении целевого файла на не-локальной файловой системе.
|
||||||
|
Проблема проявлялась в основном на OSX, возвратом ошибки `EWOULDBLOCK`/`EAGAIN` (35),
|
||||||
|
что обусловлено недочетом/конфликтом блокировок `fcntl(F_SETLK)` и `flock()` в ядре ОС.
|
||||||
|
Переработана обработка ошибок захвата файловых блокировок в API копирования на системах POSIX.
|
||||||
|
|
||||||
|
- Устранена ошибка приводившая к неожиданному возврату `MDBX_BAD_DBI` при одновременном старте нескольких транзакций внутри одного процесса после открытия БД.
|
||||||
|
|
||||||
|
- Устранена ошибка приводившая к неожиданному возврату `MDBX_DBS_FULL` при повторном открытии уже открытых таблиц и уже достигнутом лимите открытых DBI-дескрипторов.
|
||||||
|
|
||||||
- Исправлена ошибка сборки для платформы Android при явном определении `_FILE_OFFSET_BITS`.
|
- Исправлена ошибка сборки для платформы Android при явном определении `_FILE_OFFSET_BITS`.
|
||||||
|
|
||||||
|
- Поправлено либо удалено несколько неверных assert-проверок, из-за которых происходили падения отладочных сборок в специфических ситуациях.
|
||||||
|
Главным образом, в коде функций `txn_end()`, `txn_lock()` и `txn_unlock()` как на Windows, так и на POSIX.
|
||||||
|
|
||||||
|
- Устранены несущественные предупреждения MSVC. Отключены предупреждения `C5286` и `C5287`.
|
||||||
|
|
||||||
Прочие доработки:
|
Прочие доработки:
|
||||||
|
|
||||||
- Доработана логика отказа от использования OFD-блокировок на POSIX-платформах.
|
- Доработана логика отказа от использования OFD-блокировок на POSIX-платформах.
|
||||||
Теперь кроме `EINVAL` учитываются дополнительные коды ошибок (`ENOSYS`, `ENOIMPL`, `ENOTSUP`, `ENOSUPP`, `EOPNOTSUPP`),
|
Теперь кроме `EINVAL` учитываются дополнительные коды ошибок (`ENOSYS`, `ENOIMPL`, `ENOTSUP`, `ENOSUPP`, `EOPNOTSUPP`),
|
||||||
что позволит работать собранной библиотеке в некоторых случаях,
|
что позволит работать собранной библиотеке в некоторых случаях, когда актуальное ядро/контейнер/эмулятор не поддерживает требуемых системных вызовов.
|
||||||
когда актуальное ядро/контейнер/эмулятор не поддерживает требуемых системных вызовов.
|
|
||||||
|
|
||||||
- Изменено значение по-умолчанию порога слияния страниц с 25% до 33%.
|
- Изменено значение по-умолчанию порога слияния страниц с 25% до 33%.
|
||||||
|
|
||||||
- В тест добавлена поддержка опции `--numa #` для привязки стохастического теста к NUMA-узлу,
|
- В тест добавлена поддержка опции `--numa #` для привязки стохастического теста к NUMA-узлу,
|
||||||
а в battery/tmux-скрипте добавлено явное распределение по NUMA-узлам.
|
а в battery/tmux-скрипте добавлено явное распределение по NUMA-узлам.
|
||||||
|
|
||||||
|
- Тесты дополнены сценариями для проверки добавленных возможностей, выявленных регрессов и ошибок.
|
||||||
|
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user