Леонид Юрьев (Leonid Yuriev)
b6f918aa1c
mdbx: исправление опечатки в логировании (backport).
2025-04-22 11:17:39 +03:00
Леонид Юрьев (Leonid Yuriev)
011c3072da
mdbx-tests: поддержка десятичных суффиксов для batch-параметров.
2025-04-21 21:38:17 +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)
072103ab67
mdbx-tests: исправление extra/cursor-closing для старых стандартов C++.
2025-04-20 00:45:16 +03:00
Леонид Юрьев (Leonid Yuriev)
ab2f661c97
mdbx: дополнение ChangeLog.
2025-04-20 00:01:59 +03:00
Леонид Юрьев (Leonid Yuriev)
668a1e42e3
mdbx: дополнение ChangeLog.
2025-04-19 23:52:19 +03:00
Леонид Юрьев (Leonid Yuriev)
5548ef20f6
mdbx: переупорядочивание атрибутов для совместимости с GCC-15 в режиме C23 (backport).
2025-04-19 23:44:07 +03:00
Леонид Юрьев (Leonid Yuriev)
679c1eb939
mdbx-tests: обнуление pid на входе в osal_actor_poll()
(backport).
2025-04-19 23:43:43 +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)
dc747483dd
mdbx-tests: привязка кол-ва потоков/проверок к кол-ву процессоров в extra/cursor-closing.
2025-04-19 20:02:09 +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)
6d6a19e3c3
mdbx-tests: вывод информации о salt/seed в extra/cursor-closing.
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)
f6ce9381af
mdbx-tests: обнуление pid на входе в osal_actor_poll()
.
2025-04-18 10:47:10 +03:00
Леонид Юрьев (Leonid Yuriev)
214fa153e2
mdbx: дополнение ChangeLog.
2025-04-10 16:54:13 +03:00
Леонид Юрьев (Leonid Yuriev)
819551ce13
mdbx-tests: расширение и доработка сценария extra/cursor-closing (backport).
2025-04-10 16:37:42 +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)
2ceda89b05
mdbx-tests: расширение и доработка сценария extra/cursor-closing.
2025-04-10 12:26:01 +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
Леонид Юрьев (Leonid Yuriev)
4691c0b5c8
mdbx: исправление ошибок merge/rebase.
2025-04-10 12:18:23 +03:00
Леонид Юрьев (Leonid Yuriev)
b55a41f604
mdbx: дополнение ChangeLog.
2025-04-09 22:18:13 +03:00
Леонид Юрьев (Leonid Yuriev)
29bed7cf5d
mdbx: игнорирование EAGAIN
от flock()
в случае копирования на NFS.
2025-04-09 22:18:07 +03:00
Леонид Юрьев (Leonid Yuriev)
f91c2bb8da
mdbx-doc: TODO typo and SWIG-url.
2025-04-09 10:58:49 +03:00
Леонид Юрьев (Leonid Yuriev)
8d0eceee9f
mdbx: отключение использования copy_file_range()
для ядер linux 5.3-5.18 включительно.
2025-04-07 05:28:16 +03:00
Леонид Юрьев (Leonid Yuriev)
6cb1b6754e
mdbx-doc: исправление повтора в комментарии.
2025-04-06 14:09:51 +03:00
Леонид Юрьев (Leonid Yuriev)
187bd59aa0
mdbx: добавление badge-ссылки на телеграм и рокировка параграфов в начале README.
2025-04-02 16:23:59 +03:00
Леонид Юрьев (Leonid Yuriev)
1c49548ea5
mdbx-dc: fix typos.
2025-04-01 21:18:11 +03:00
Леонид Юрьев (Leonid Yuriev)
4b9427685a
mdbx: добавление внутренней опции MDBX_DEBUG_DPL_LIMIT
.
2025-03-31 00:54:07 +03:00
Леонид Юрьев (Leonid Yuriev)
650569cc6a
mdbx: merge branch master
into devel
.
2025-03-31 00:52:52 +03:00
Леонид Юрьев (Leonid Yuriev)
d8f46344b5
mdbx: добавление MDBX_VERSION_UNSTABLE
и маркировка master
-ветки для предотвращения ошибок сборки.
2025-03-31 00:51:23 +03:00
Леонид Юрьев (Leonid Yuriev)
ebf1e9d8ba
mdbx-tests: расширение extra/details-rkl для проверки hole-итераторов.
2025-03-30 23:35:00 +03:00
Леонид Юрьев (Leonid Yuriev)
4c3df230d3
mdbx: hole-iterator для rkl.
2025-03-30 20:04:49 +03:00
Леонид Юрьев (Leonid Yuriev)
9ea8e9b2cf
mdbx-tests: добавление extra/details-rkl
.
2025-03-30 20:04:49 +03:00
Леонид Юрьев (Leonid Yuriev)
b8c1b835ed
mdbx: добавление rkl с итераторами.
...
RKL — сортированный набор txnid, использующий внутри комбинацию
непрерывного интервала и списка. Обеспечивает хранение id записей при
переработке, очистку и обновлении GC, включая возврат остатков
переработанных страниц.
Итератор для RKL — обеспечивает изоляцию внутреннего устройства rkl от
остального кода, чем существенно его упрощает. Фактически именно
использованием rkl с итераторами ликвидируется "ребус" исторически
образовавшийся в gc-update.
--
При переработке GC записи преимущественно выбираются последовательно, но
это не гарантируется. В LIFO-режиме переработка и добавление записей в
rkl происходит преимущественно в обратном порядке, но из-за завершения
читающих транзакций могут быть «скачки» в прямом направлении. В
FIFO-режиме записи GC перерабатываются в прямом порядке и при этом
линейно, но не обязательно строго последовательно, при этом
гарантируется что между добавляемыми в rkl идентификаторами в GC нет
записей, т.е. между первой (минимальный id) и последней (максимальный
id) в GC нет записей и весь интервал может быть использован для возврата
остатков страниц в GC.
Таким образом, комбинация линейного интервала и списка (отсортированного
в порядке возрастания элементов) является рациональным решением, близким
к теоретически оптимальному пределу.
Реализация rkl достаточно проста/прозрачная, если не считать неочевидную
«магию» обмена непрерывного интервала и образующихся в списке
последовательностей. Однако, именно этот автоматически выполняемый без
лишних операций обмен оправдывает все накладные расходы.
2025-03-30 20:04:49 +03:00
Леонид Юрьев (Leonid Yuriev)
db163cbcfd
mdbx: перемещение узлов в node_add_branch()
после проверки переполнения страницы.
2025-03-30 17:41:33 +03:00
Леонид Юрьев (Leonid Yuriev)
936c25e671
mdbx: добавление assert-проверок для отлова ошибок приводящих к переполнению/повреждению страниц.
2025-03-30 17:41:33 +03:00
Леонид Юрьев (Leonid Yuriev)
56a6377622
mdbx: понижение уровня логирования для "skip update meta" (backport).
...
Спасибо [Илье Михееву](https://github.com/JkLondon ) за сообщение о недочете.
2025-03-28 15:14:54 +03:00
Леонид Юрьев (Leonid Yuriev)
b308559dd9
mdbx: понижение уровня логирования для "skip update meta".
...
Спасибо [Илье Михееву](https://github.com/JkLondon ) за сообщение о недочете.
2025-03-28 15:12:10 +03:00