Леонид Юрьев (Leonid Yuriev)
79b33ba8fd
mdbx: устранение предупреждения lcc-1.29
2025-06-28 00:34:04 +03:00
Леонид Юрьев (Leonid Yuriev)
a600c2a7a2
mdbx: устранение вероятности ошибки MDBX_ENODATA
при поиске в GC.
2025-06-28 00:34:04 +03:00
Леонид Юрьев (Leonid Yuriev)
10bf63eb9a
mdbx: замена части PNL-макросов функциями.
2025-06-28 00:34:04 +03:00
Леонид Юрьев (Leonid Yuriev)
9020ea9d6c
mdbx: допущение нехватки страниц при ранней/не-отложенной очистке GC (продолжение).
2025-06-28 00:34:04 +03:00
Леонид Юрьев (Leonid Yuriev)
ecf5acfff0
mdbx: изоляция txl-списков от кода PNL.
2025-06-28 00:34:04 +03:00
Леонид Юрьев (Leonid Yuriev)
bb37c93dd5
mdbx: ранняя/не-отложенная очистка GC (начало).
2025-06-28 00:34:04 +03:00
Леонид Юрьев (Leonid Yuriev)
b49cd49c68
mdbx: интенсификация слияния страниц изменением порога по-умолчанию с 25% до 33%.
...
Ранее две страницы объединялись если были заполнены на 25% или менее, с образованием страницы заполненной на 50% или менее.
Теперь порог по-умолчанию установлен в 33%, что при объединении будет порождать страницу заполненную на 66%.
2025-06-28 00:34:04 +03:00
Леонид Юрьев (Leonid Yuriev)
75131c082b
mdbx: добавление rkl_destructive_merge()
и унификация порядка dst/src аргументов rkl_merge()
.
2025-06-28 00:34:04 +03:00
Леонид Юрьев (Leonid Yuriev)
3462bc116a
mdbx: удаление known_continuous
аргумента rkl_push()
.
2025-06-28 00:34:04 +03:00
Леонид Юрьев (Leonid Yuriev)
b3329fddf2
mdbx: исправление опечатки MDBX_ENOMEM
.
...
Вместо `MDBX_ENOMEM` был использован идентификатор `ENOMEM`,
что могло ломать сборку на не-POSIX/Windows платформах,
в зависимости от конфигурации и/или версии SDK.
2025-06-01 11:26:17 +03:00
Леонид Юрьев (Leonid Yuriev)
8b4ec09d08
mdbx: исправление имён параметров в прототипе rkl_destructive_move()
.
2025-05-29 22:56:34 +03:00
Леонид Юрьев (Leonid Yuriev)
e03b8e1227
mdbx: добавление ignore_enosys_and_einval()
и её использование для отказа от OFD-блокировок.
2025-05-20 13:37:54 +03:00
Леонид Юрьев (Leonid Yuriev)
c88c51d33c
mdbx: разделение ignore_enosys()
и ignore_enosys_and_eagain()
.
2025-05-20 13:37:54 +03:00
Леонид Юрьев (Leonid Yuriev)
ef82fea032
mdbx: избавление от memset()
внутри lck_op()
.
2025-05-20 13:37:54 +03:00
Леонид Юрьев (Leonid Yuriev)
f82cf6a4b3
mdbx: перемещение и доработка проверки _FILE_OFFSET_BITS
для Android.
2025-05-20 13:37:54 +03:00
Леонид Юрьев (Leonid Yuriev)
9da03deac0
mdbx: исправление пропущенного const
(косметика).
2025-05-16 00:08:51 +03:00
Леонид Юрьев (Leonid Yuriev)
34f0f682da
mdbx: исправление assert-проверки внутри txn_end()
.
...
В случае ошибки запуска транзакции (например из-за невозможности расширения отображения при увеличении БД в другом процессе),
сигнатура транзакции отсутствует, что вызывало срабатывание assert-проверки.
2025-05-15 23:29:18 +03:00
Леонид Юрьев (Leonid Yuriev)
800c96f22f
mdbx: доработка перераспределения резерва при возврате страниц в GC.
...
В экстремальных случаях, масштабирование одного операнда и 32-бит не хватает для предотвращения потери значимости расчетного коэффициента.
Поэтому здесь реализован переход на фиксированную точку 32-точка-32 с одним 64-битным делением и двумя полными умножениями 32*32->64.
Для 32-битных систем можно сделать чуть легче, заменив 64-битую арифметику масштабированием (адаптивным сдвигом) обоих операндов, но пока не вижу в этом смысла.
2025-05-02 17:59:30 +03:00
Леонид Юрьев (Leonid Yuriev)
d1023dc6b5
mdbx: merge branch devel
.
2025-04-29 12:03:50 +03:00
Леонид Юрьев (Leonid Yuriev)
76e2544cc0
mdbx: доработки gc_handle_dense()
для экстремально-редких случаев.
2025-04-29 08:39:18 +03:00
Леонид Юрьев (Leonid Yuriev)
0a96b2ad97
mdbx-doc: дополнение раздела "Containers" в README.
2025-04-28 14:43:01 +03:00
Леонид Юрьев (Leonid Yuriev)
402a8e62be
mdbx: merge branch master
into devel
.
2025-04-26 00:17:57 +03:00
Леонид Юрьев (Leonid Yuriev)
06300de34e
mdbx: подсказки для coverity.
2025-04-26 00:15:52 +03:00
Леонид Юрьев (Leonid Yuriev)
da9f78d2f6
mdbx: несущественные доработки rkl.
2025-04-26 00:15:52 +03:00
Леонид Юрьев (Leonid Yuriev)
a5af0c1a85
mdbx: исправление глупой утечки памяти в rkl_destroy()
.
2025-04-26 00:15:52 +03:00
Леонид Юрьев (Leonid Yuriev)
2b36fd5974
mdbx: новый код обновления GC.
2025-04-26 00:15:41 +03:00
Леонид Юрьев (Leonid Yuriev)
3338551860
mdbx: рефакторинг макроса TXN_FOREACH_DBI_FROM
с выделением функции dbi_foreach_step()
.
2025-04-24 23:26:22 +03:00
Леонид Юрьев (Leonid Yuriev)
1c7a5e18fe
mdbx: подсказки для coverity.
2025-04-24 15:39:07 +03:00
Леонид Юрьев (Leonid Yuriev)
6627d14edf
mdbx: упрощение старта транзакций и исправление возможности double-free при ошибке создания вложенной транзакции.
2025-04-24 11:11:31 +03:00
Леонид Юрьев (Leonid Yuriev)
52c9ef8807
mdbx: merge branch stable
into master
.
2025-04-22 15:56:02 +03:00
Леонид Юрьев (Leonid Yuriev)
b6f918aa1c
mdbx: исправление опечатки в логировании (backport).
2025-04-22 11:17:39 +03:00
Леонид Юрьев (Leonid Yuriev)
02b56e185f
mdbx: добавление rkl_find()
и rkl_merge()
.
2025-04-21 21:38:17 +03:00
Леонид Юрьев (Leonid Yuriev)
576fc94fef
mdbx: исправление опечатки в логировании (косметика).
2025-04-21 21:30:26 +03:00
Леонид Юрьев (Leonid Yuriev)
a56f5acc3d
mdbx: рефакторинг tree_rebalance()
и реализации опции MDBX_opt_prefer_waf_insteadof_balance
.
2025-04-20 18:46:08 +03:00
Леонид Юрьев (Leonid Yuriev)
5548ef20f6
mdbx: переупорядочивание атрибутов для совместимости с GCC-15 в режиме C23 (backport).
2025-04-19 23:44:07 +03:00
Леонид Юрьев (Leonid Yuriev)
76a588f91b
mdbx: исправление возврата MDBX_BAD_TXN
вместо MDBX_EINVAL
из mdbx_cursor_unbind()
в особых случаях (backport).
2025-04-19 23:42:59 +03:00
Леонид Юрьев (Leonid Yuriev)
6b5515908b
mdbx: предотвращение возврата неожиданной ошибки MDBX_BUSY
из mdbx_txn_lock(dont_wait=false)
(backport).
2025-04-19 23:42:34 +03:00
Леонид Юрьев (Leonid Yuriev)
89de43293d
mdbx: исправление возврата MDBX_BAD_TXN
вместо MDBX_EINVAL
из mdbx_cursor_unbind()
в особых случаях.
2025-04-19 20:01:57 +03:00
Леонид Юрьев (Leonid Yuriev)
270cf399aa
mdbx: упрощение очистки MDBX_TXN_HAS_CHILD
.
2025-04-19 20:01:57 +03:00
Леонид Юрьев (Leonid Yuriev)
b5503b5670
mdbx: исправление форматирования (косметика).
2025-04-19 20:01:36 +03:00
Леонид Юрьев (Leonid Yuriev)
a71cefc288
mdbx: предотвращение возврата неожиданной ошибки MDBX_BUSY
из mdbx_txn_lock(dont_wait=false)
.
2025-04-19 14:07:26 +03:00
Леонид Юрьев (Leonid Yuriev)
0d7d4db3f1
mdbx: понижение уровня отладочного логирования lru-reduce.
2025-04-19 14:07:26 +03:00
Леонид Юрьев (Leonid Yuriev)
0f505c1377
mdbx: переупорядочивание атрибутов для совместимости с GCC-15 в режиме C23.
2025-04-18 10:49:00 +03:00
Леонид Юрьев (Leonid Yuriev)
a22c0c5c48
mdbx: подсказка для Coverity для подавления ложно-положительных предупреждений (backport).
2025-04-10 16:35:53 +03:00
Леонид Юрьев (Leonid Yuriev)
9540cabf5f
mdbx: возврат MDBX_EINVAL
из mdbx_cursor_bind()
при невозможности отвязки курсора от его текущей транзакции (backport).
2025-04-10 16:34:57 +03:00
Леонид Юрьев (Leonid Yuriev)
0e3b093eb5
mdbx: исправление неверной assert-проверки и микрооптимизация (backport).
...
В пути фиксации вложенных транзакций, условие в assert-проверке не было
корректным для случая, когда таблица уже существовала и её дескриптор
был открыт, использовался в завершаемой вложенной транзакции, но не
использовался в родительской.
Это исправление недочета также передаёт, уже загруженное из БД, кешируемое
состояние таблицы в родительскую транзакцию.
2025-04-10 16:34:19 +03:00
Леонид Юрьев (Leonid Yuriev)
5d38add405
mdbx: исправление ошибок merge/rebase (backport).
2025-04-10 16:33:10 +03:00
Леонид Юрьев (Leonid Yuriev)
5bd99d4da2
mdbx: подсказка для Coverity для подавления ложно-положительных предупреждений.
2025-04-10 12:25:50 +03:00
Леонид Юрьев (Leonid Yuriev)
a04053ee98
mdbx: возврат MDBX_EINVAL
из mdbx_cursor_bind()
при невозможности отвязки курсора от его текущей транзакции.
2025-04-10 12:25:32 +03:00
Леонид Юрьев (Leonid Yuriev)
f35c1fe5bc
mdbx: исправление неверной assert-проверки и микрооптимизация.
...
В пути фиксации вложенных транзакций, условие в assert-проверке не было
корректным для случая, когда таблица уже существовала и её дескриптор
был открыт, использовался в завершаемой вложенной транзакции, но не
использовался в родительской.
Это исправление недочета также передаёт уже загруженное из БД кешируемое
состояние таблицы в родительскую транзакцию.
2025-04-10 12:24:39 +03:00