From 39c6387d231cd23ad1d1597f7ba357fdec5d3b2f 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: Fri, 14 Oct 2022 11:47:34 +0300 Subject: [PATCH] =?UTF-8?q?mdbx:=20=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20ChangeLog.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ChangeLog.md | 38 +++++++++++++++++++++++++++++++------- 1 file changed, 31 insertions(+), 7 deletions(-) diff --git a/ChangeLog.md b/ChangeLog.md index e9b3696e..8842b125 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -3,12 +3,8 @@ ChangeLog ## В разработке v0.12.2 - Новое: - - В C++ API добавлены методы фиксации транзакции с получением информации - о задержках. - - Отключение учета «грязных» страниц в не требующих этого режимах (`MDBX_WRITEMAP` при `MDBX_AVOID_MSYNC=0`). Доработка позволяет снизить накладные расходы и была запланирована давно, но откладывалась так как @@ -81,25 +77,53 @@ ChangeLog данных. Тем не менее, по имеющейся информации, на Windows такой путь записи данных в целом обеспечивает более высокую производительность. + - Улучшение эвристики включения авто-слияния записей GC. + + - Изменение формата LCK и семантики некоторых внутренних полей. Версии + libmdbx использующие разный формат не смогут работать с одной БД + одновременно, а только поочередно (LCK-файл переписывается при открытии + первым открывающим БД процессом). + + - В C++ API добавлены методы фиксации транзакции с получением информации + о задержках. + - Added `MDBX_HAVE_BUILT IN_CPU_SUPPORTS` build option to control use GCC's `__builtin_cpu_supports()` function, which could be unavailable on a fake OSes (macos, ios, android, etc). Исправления: + - Больше контроля и осторожности (паранойи) для страховки от дефектов `mremap()`. + - Костыль для починки сборки со старыми версиями `stdatomic.h` из GNU Lib C, + где макросы `ATOMIC_*_LOCK_FREE` ошибочно переопределяются через функции. + - Использование `fcntl64(F_GETLK64/F_SETLK64/F_SETLKW64)` при наличии. + Это решает проблему срабатывания проверочного утверждения при сборке для + платформ где тип `off_t` шире соответствующих полей `структуры flock`, + используемой для блокировки файлов. - Доработан сбор информации о задержках при фиксации транзакций: * Устранено искажение замеров длительности обновления GC при включении отладочного внутреннего аудита; * Защита от undeflow-нуля только общей задержки в метриках, чтобы исключить ситуации, когда сумма отдельных стадий больше общей длительности. - - Ряд исправлений для устранения срабатываний проверочных утверждения в отладочных сборках. - - Исправление лишнего сброса данных на диск в режиме `MDBX_SAFE_NOSYNC` при обновлении GC. - - Fixed an extra check for `MDBX_APPENDDUP` inside `mdbx_cursor_put()` which could result in returning `MDBX_EKEYMISMATCH` for valid cases. + - Ряд исправлений для устранения срабатываний проверочных утверждения в + отладочных сборках. + - Более осторожное преобразование к типу `mdbx_tid_t` для устранения + предупреждений. + - Исправление лишнего сброса данных на диск в режиме `MDBX_SAFE_NOSYNC` + при обновлении GC. + - Fixed an extra check for `MDBX_APPENDDUP` inside `mdbx_cursor_put()` + which could result in returning `MDBX_EKEYMISMATCH` for valid cases. - Fixed nasty `clz()` bug (by using `_BitScanReverse()`, only MSVC builds affected). Мелочи: + - Проверка атомарности C11-операций c 32/64-битными данными. + - Уменьшение в 42 раза значения по-умолчанию для `me_options.dp_limit` + в отладочных сборках. + - Добавление платформы `gcc-riscv64-linux-gnu` в список для цели `cross-gcc`. + - Небольшие правки скрипта `long_stochastic.sh` для работы в Windows. + - Удаление ненужного вызова `LockFileEx()` внутри `mdbx_env_copy()`. - Добавлено описание использования файловых дескрипторов в различных режимах. - Добавлено использование _CrtDbgReport() в отладочных сборках. - Fixed an extra ensure/assertion check of `oldest_reader` inside `txn_end()`.