From fa73f44ff081788ee809e83f75c3ec3ae8d9ac5c 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: Sat, 28 Jun 2025 10:48:11 +0300 Subject: [PATCH] =?UTF-8?q?mdbx:=20=D0=B4=D0=BE=D0=BF=D0=BE=D0=BB=D0=BD?= =?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 | 24 +++++++++++++++++------- TODO.md | 2 +- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/ChangeLog.md b/ChangeLog.md index 6eb1ff2b..4dfdb15e 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -12,14 +12,19 @@ and [by Yandex](https://translated.turbopages.org/proxy_u/ru-en.en/https/libmdbx - [Erigon](https://erigon.tech/) за спонсорство. -Запланировано: +Новое: - - Реализация "Ранней очистки GC". В результате переработанные записи GC - будут удаляться не при фиксации пишущей транзакции, а преимущественно - сразу. После этого откроется путь к реализации явной дефрагментации (без - копирования БД) и далее к нелинейной переработке GC (что позволит - устранить проблему распухания/переполнения БД из-за остановки - переработке GC при длительных читающих транзакциях). + - Реализована "Ранняя очистка GC". + + Теперь переработанные записи GC удаляются не при фиксации пишущей + транзакции, а по-возможности сразу. Это открывает путь к реализации + явной дефрагментации (без копирования БД) и далее к нелинейной + переработке GC (что позволит устранить проблему распухания/переполнения + БД из-за остановки переработке GC при длительных читающих транзакциях). + + Объём накладных расходов теперь более пропорционален объему совершаемых + операций. Поэтому, в большинстве сценариев накладные расходы чуть + меньше, но наоборот чуть больше при отмене вложенных транзакций. Исправления: @@ -36,6 +41,11 @@ and [by Yandex](https://translated.turbopages.org/proxy_u/ru-en.en/https/libmdbx что позволит работать собранной библиотеке в некоторых случаях, когда актуальное ядро/контейнер/эмулятор не поддерживает требуемых системных вызовов. + - Изменено значение по-умолчанию порога слияния страниц с 25% до 33%. + + - В тест добавлена поддержка опции `--numa #` для привязки стохастического теста к NUMA-узлу, + а в battery/tmux-скрипте добавлено явное распределение по NUMA-узлам. + -------------------------------------------------------------------------------- diff --git a/TODO.md b/TODO.md index 8c1a8065..32916e45 100644 --- a/TODO.md +++ b/TODO.md @@ -7,7 +7,6 @@ TODO - Новый стиль обработки ошибок с записью "трассы" и причин. - Формирование отладочной информации посредством gdb. - Поддержка WASM. - - Ранняя/не-отложенная очистка GC. - Явная и автоматические уплотнение/дефрагментация. - Нелинейная обработка GC. - Перевести курсоры на двусвязный список вместо односвязного. @@ -20,6 +19,7 @@ TODO Done ---- + - Ранняя/не-отложенная очистка GC. - Рефакторинг gc-get/gc-put c переходом на "интервальные" списки. - [Engage new terminology](https://libmdbx.dqdkfa.ru/dead-github/issues/137). - [More flexible support of asynchronous runtime/framework(s)](https://libmdbx.dqdkfa.ru/dead-github/issues/200).