Name | Modified | Size | Downloads / Week |
---|---|---|---|
Parent folder | |||
libmdbx 0.12.13 source code.tar.gz | 2025-02-27 | 684.5 kB | |
libmdbx 0.12.13 source code.zip | 2025-02-27 | 740.0 kB | |
README.md | 2025-02-27 | 4.9 kB | |
Totals: 3 Items | 1.4 MB | 0 |
Поддерживающий выпуск архивной ветки с исправлением обнаруженных ошибок и устранением недочётов.
For translation to other languages please try Yandex or liar Google.
git diff' stat: 14 commits, 5 files changed, 163 insertions(+), 68 deletions(-)
Значимые исправления:
- Исправлена обработка
MDBX_GET_MULTIPLE
в специальных случаях и одного значения у ключа в позиции курсора. - Устранена ошибка неверной обработки попытки запуска вложенной читающей транзакции. Теперь в таких ситуациях возвращается ошибка
MDBX_EINVAL
, так как вложенность поддерживается только для транзакций чтения-записи. Ошибка была внесена при рефакторинге, коммитом2f2df1ee76ab137ee66d00af69a82a30dc0d6deb
чуть более 5 лет назад и долго оставалось не замеченной. - Поддержка получения boot_id при работе внутри LXC-контейнера. Из LXC-контейнера не доступен файл хостовой системы
/proc/sys/kernel/random/boot_id
. Вместо него, при каждом старте контейнера, создается и заполняется случайными данными собственный boot_id смонтированный через bind изtmpfs
. https://github.com/lxc/lxc/issues/3027. Ранее этот подставной/замещенный boot_id отбраковывался внутри libmdbx, так как файл располагается вtmpfs
, а не в файловой системе/proc
. В результате boot_id для проверки целостности БД не был доступен. Теперь при работе внутри LXC-контейнера такой bootid будет использоваться. Однако, полноценно работающий контроль по boot_id не возможен, так как при рестарте LXC-контейнера (но не хоста) boot_id будет меняться, хотя данные в unified page cache сохраняются. Таким образом, при рестарте LXC-контейнера без рестарта хоста, libmdbx придется откатить состояние БД до крайней точки устойчивой фиксации, что повлечет утрату данных пользователя в случаях когда они могли быть сохранены. Однако, улучшить ситуацию пока не представляется возможным, как минимум до доступности boot_id хостовой системы изнутри LXC-контейнера. - Доработан контроль длины ключа внутри
cursor_set()
. Ранее проверка внутриcursor_set()
не позволяла искать ключи длиннее, чем можно поместить в таблицу. Однако, при поиске/позиционировании это не является ошибкой для таблиц с ключами переменного размера. - Теперь при попытке запуска вложенных транзакций в режиме
MDBX_WRITEMAP
производится логирование и возврат ошибкиMDBX_INCOMPATIBLE
.
Загрузки:
- 293K, libmdbx-amalgamated-0.12.13.zpaq, sha256sum:
84ae404b27ff09f8c6c0a5554f7919d837acd55d361728acd777a786e759c2a8
- 393K, libmdbx-amalgamated-0.12.13.tar.xz, sha256sum:
94845aa7f75d376bdf3391afe74de369d746d4f39f0ca021f80138f16ae8d845
За информацией о предыдущих версиях обращайтесь к тегам git и ChangeLog.