From 0d1c08677d3c61003ae3784e766a6ecde550ec5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9B=D0=B5=D0=BE=D0=BD=D0=B8=D0=B4=20=D0=AE=D1=80=D1=8C?= =?UTF-8?q?=D0=B5=D0=B2=20=28Leonid=20Yuriev=29?= Date: Wed, 18 Dec 2024 13:01:52 +0300 Subject: [PATCH] =?UTF-8?q?mdbx:=20=D0=BA=D0=BE=D1=80=D1=80=D0=B5=D0=BA?= =?UTF-8?q?=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=BA=D0=B0=20ChangeLog.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ChangeLog.md | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/ChangeLog.md b/ChangeLog.md index 4a6386f0..7da54360 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -17,13 +17,6 @@ and [by Yandex](https://translated.turbopages.org/proxy_u/ru-en.en/https/libmdbx - В API добавлена функция `mdbx_cursor_count_ex()` позволяющая получить как количество мульти-значений соответствующих текущему ключу, так и информацию о вложенном дереве хранящем эти значения. -Изменение поведения: - - - Теперь при включении профилирования GC (сборка с опцией `MDBX_ENABLE_PROFGC=ON`) - подсчитываются затраты времени ЦПУ на слияние списков страниц (на работу функции `pnl_merge()`). - - - В утилите тестирования значение режима данных переименовано из `data.dups` в `data.multi`. - Исправления: - Устранён регресс состояния вложенного/dupsort курсора после вставки данных в `MDBX_APPEND`-режиме. @@ -40,24 +33,25 @@ and [by Yandex](https://translated.turbopages.org/proxy_u/ru-en.en/https/libmdbx Ошибка проявлялась возвратом неверных значений из `mdbx_cursor_count()` или срабатывание assert-проверки в отладочных сборках. - - Получение boot_id при работе внутри LXC-контейнера. + - Поддержка получения boot_id при работе внутри LXC-контейнера. Из LXC-контейнера не доступен файл хостовой системы `/proc/sys/kernel/random/boot_id`. Вместо него, при каждом старте контейнера, создается и заполняется случайными данными собственный boot_id смонтированный через bind из `tmpfs`. https://github.com/lxc/lxc/issues/3027 - Ранее этот замещенный bootid отбраковывался внутри libmdbx, - так как располагается в `tmpfs`, а не файловой системе `/proc`. + Ранее этот подставной/замещенный boot_id отбраковывался внутри libmdbx, + так как файл располагается в `tmpfs`, а не в файловой системе `/proc`. + В результате boot_id для проверки целостности БД не был доступен. Теперь при работе внутри LXC-контейнера такой bootid будет использоваться. - Однако, полноценный контроль по boot_id не возможен, так как при + Однако, полноценно работающий контроль по boot_id не возможен, так как при рестарте LXC-контейнера (но не хоста) boot_id будет меняться, хотя данные в unified page cache сохраняются. - Таким образом, при рестарте LXC-контейнера, libmdbx будет производить - откат БД до крайней точки устойчивой фиксации, что может приводить к - утрате данных пользователя в случаях когда они могли быть сохранены. + Таким образом, при рестарте LXC-контейнера без рестарта хоста, libmdbx придется + откатить состояние БД до крайней точки устойчивой фиксации, что повлечет + утрату данных пользователя в случаях когда они могли быть сохранены. Однако, улучшить ситуацию пока не представляется возможным, как минимум до доступности boot_id хостовой системы изнутри LXC-контейнера. @@ -68,6 +62,13 @@ and [by Yandex](https://translated.turbopages.org/proxy_u/ru-en.en/https/libmdbx Ошибка была внесена при рефакторинге, коммитом `2f2df1ee76ab137ee66d00af69a82a30dc0d6deb` чуть более 5 лет назад и долго оставалось не замеченной. +Изменение поведения: + + - Теперь при включении профилирования GC (сборка с опцией `MDBX_ENABLE_PROFGC=ON`) + подсчитываются затраты времени ЦПУ на слияние списков страниц, т.е. на работу функции `pnl_merge()`. + + - В утилите тестирования значение режима данных переименовано из `data.dups` в `data.multi`. + --------------------------------------------------------------------------------