mdbx: корректировка ChangeLog.

This commit is contained in:
Леонид Юрьев (Leonid Yuriev) 2025-01-14 21:28:01 +03:00
parent 2c3b36da64
commit e529cd7d19

View File

@ -14,6 +14,10 @@ and [by Yandex](https://translated.turbopages.org/proxy_u/ru-en.en/https/libmdbx
В результате вставка уже присутствующих "дубликатов" не приводит к каким-либо изменениям в БД и принципиально увеличивает производительность в таких сценариях. В результате вставка уже присутствующих "дубликатов" не приводит к каким-либо изменениям в БД и принципиально увеличивает производительность в таких сценариях.
В текущем понимании, добавленная проверка не приводит к заметному увеличению накладных расходов и, как следствие, не приводит к снижению производительности в сценариях с обычным/регулярным обновлением и/или вставкой даннaых. В текущем понимании, добавленная проверка не приводит к заметному увеличению накладных расходов и, как следствие, не приводит к снижению производительности в сценариях с обычным/регулярным обновлением и/или вставкой даннaых.
Прочие доработки:
- Существенный рефакторинг с реструктуризацией кода, переименованием внутренних структур, их полей и внутренних функций.
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
@ -25,7 +29,7 @@ and [by Yandex](https://translated.turbopages.org/proxy_u/ru-en.en/https/libmdbx
Запланированные новые возможности 0.14: Запланированные новые возможности 0.14:
1. Ранняя (не-отложенная) очистка GC и рефакторинг обновления GC, самостоятельной видимой для пользователя ценности не имеет, но требуется для последующих пунктов. 1. Ранняя (не-отложенная) очистка GC и рефакторинг обновления GC. Самостоятельной видимой для пользователя ценности не имеет, но требуется для последующих пунктов.
Будет реализовано в 0.14.1. Будет реализовано в 0.14.1.
2. Явная дефрагментация БД. В API будет добавлена функция с двумя парами параметров: 2. Явная дефрагментация БД. В API будет добавлена функция с двумя парами параметров:
@ -33,7 +37,7 @@ and [by Yandex](https://translated.turbopages.org/proxy_u/ru-en.en/https/libmdbx
- максимальный (ограничивающий) объём дефрагментации и максимальной время, которое допустимо потратить. - максимальный (ограничивающий) объём дефрагментации и максимальной время, которое допустимо потратить.
Упрощенно, алгоритмически явная дефрагментация сводится к сканированию b-tree с формированием списка страниц расположенных близко к концу БД, а затем копирование этих страниц в не-используемые, но расположенные ближе к началу БД. Упрощенно, алгоритмически явная дефрагментация сводится к сканированию b-tree с формированием списка страниц расположенных близко к концу БД, а затем копирование этих страниц в не-используемые, но расположенные ближе к началу БД.
В результате, после фиксации дефрагментирующей транзакции оригиналы скопированных страниц становяться не-используемыми, а размер БД может быть уменьшен за счет отсечения ни-используемых страниц в конце используемого пространства. В результате, после фиксации дефрагментирующей транзакции оригиналы скопированных страниц становятся не-используемыми, а размер БД может быть уменьшен за счет отсечения ни-используемых страниц в конце используемого пространства.
Будет реализовано в 0.14.2. Будет реализовано в 0.14.2.
3. Нелинейная переработка GC, без остановки переработки мусора на старом MVCC-снимке используемом долгой транзакцией чтения. 3. Нелинейная переработка GC, без остановки переработки мусора на старом MVCC-снимке используемом долгой транзакцией чтения.
@ -54,6 +58,11 @@ and [by Yandex](https://translated.turbopages.org/proxy_u/ru-en.en/https/libmdbx
в день рождения и в память об [Серге́е Па́вловиче Королёве](https://ru.wikipedia.org/wiki/Королёв,_Сергей_Павлович), в день рождения и в память об [Серге́е Па́вловиче Королёве](https://ru.wikipedia.org/wiki/Королёв,_Сергей_Павлович),
советском учёном и Главном конструкторе ракетно-космических систем. советском учёном и Главном конструкторе ракетно-космических систем.
Одновременно с этим релизом:
- Ветка `0.12.x` перестаёт поддерживаться и отправляется в `архив/0.12`.
- Ветка `0.13.x` получает статус стабильной и вливается в `stable`.
Благодарности: Благодарности:
- [Алексею Костюку (aka Keller)](https://t.me/keller18306) за сообщения об ошибках и недочетах. - [Алексею Костюку (aka Keller)](https://t.me/keller18306) за сообщения об ошибках и недочетах.
@ -115,7 +124,7 @@ and [by Yandex](https://translated.turbopages.org/proxy_u/ru-en.en/https/libmdbx
Однако, улучшить ситуацию пока не представляется возможным, как минимум Однако, улучшить ситуацию пока не представляется возможным, как минимум
до доступности boot_id хостовой системы изнутри LXC-контейнера. до доступности boot_id хостовой системы изнутри LXC-контейнера.
- Устранёна ошибка неверной обработки попытки запуска вложенной читающей транзакции. - Устранена ошибка неверной обработки попытки запуска вложенной читающей транзакции.
Теперь в таких ситуациях возвращается ошибка `MDBX_EINVAL`, так как вложенность Теперь в таких ситуациях возвращается ошибка `MDBX_EINVAL`, так как вложенность
поддерживается только для транзакций чтения-записи. поддерживается только для транзакций чтения-записи.
@ -140,7 +149,7 @@ and [by Yandex](https://translated.turbopages.org/proxy_u/ru-en.en/https/libmdbx
Однако, при поиске/позиционировании это не является ошибкой для таблиц с ключами переменного размера. Однако, при поиске/позиционировании это не является ошибкой для таблиц с ключами переменного размера.
- Если посредством `mdbx_env_set_option(MDBX_opt_txn_dp_limit)` пользователем не задано собственно значение, - Если посредством `mdbx_env_set_option(MDBX_opt_txn_dp_limit)` пользователем не задано собственно значение,
то выполняется подстройка dirty-pages-limit при старте каждой не-вложенной пишущей транзакций, то теперь выполняется подстройка dirty-pages-limit при старте каждой не-вложенной пишущей транзакций,
исходя из объёма доступного ОЗУ и размера БД. исходя из объёма доступного ОЗУ и размера БД.
- Теперь в режиме `MDBX_NOSTICKYTHREADS` допускается commit/abort вложенных транзакций из любого треда/потока. - Теперь в режиме `MDBX_NOSTICKYTHREADS` допускается commit/abort вложенных транзакций из любого треда/потока.