Леонид Юрьев (Leonid Yuriev)
529f2c2380
mdbx-tests: уменьшение кол-ва итераций в extra/crunched-delete для 32-битных сборок во избежания MDBX_MAP_FULL
(backport).
2025-03-20 01:49:17 +03:00
Леонид Юрьев (Leonid Yuriev)
1dfe1e872e
mdbx++: добавление mdbx::cursor::seek_multiple_samelength()
(backport).
2025-03-20 01:48:58 +03:00
Леонид Юрьев (Leonid Yuriev)
767ba21977
mdbx: костыли для CLANG < 20 при использовании [[атрибутов]]
C23 (backport).
2025-03-20 01:48:22 +03:00
Леонид Юрьев (Leonid Yuriev)
0a9c9840da
mdbx-tests: существенное расширение extra/cursor-closing
(backport).
2025-03-20 01:47:56 +03:00
Леонид Юрьев (Leonid Yuriev)
9c177de034
mdbx-tests: дополнение extra/txn (backport).
2025-03-20 01:47:24 +03:00
Леонид Юрьев (Leonid Yuriev)
5f37ea60d2
mdbx++: проверка __cpp_concepts >= 202002
для использования концептов C++ (backport).
2025-03-20 01:46:43 +03:00
Леонид Юрьев (Leonid Yuriev)
c457804fad
mdbx: исправление затенения курсоров во вложенных транзакциях (backport).
2025-03-20 01:46:13 +03:00
Леонид Юрьев (Leonid Yuriev)
6c036add8b
mdbx: переработка проверки курсоров на входе API-функций с добавлением cursor_check()
(backport).
2025-03-20 01:44:20 +03:00
Леонид Юрьев (Leonid Yuriev)
5fd319bbc2
mdbx: переработка mdbx_txn_release_all_cursors_ex()
(backport).
2025-03-20 01:42:50 +03:00
Леонид Юрьев (Leonid Yuriev)
682233ba28
mdbx++: переформатирование (временно) неиспользуемого кода (backport).
2025-03-20 01:41:58 +03:00
Леонид Юрьев (Leonid Yuriev)
c5936eb5da
mdbx++: удаление исключения при запросе транзакции у отсоединённого курсора (backport).
2025-03-20 01:41:32 +03:00
Леонид Юрьев (Leonid Yuriev)
d8890bc169
mdbx++: добавление inplace_storage_size_rounding
в capacity_policy
для буферов (backport).
2025-03-20 01:41:05 +03:00
Леонид Юрьев (Leonid Yuriev)
73d52c1963
mdbx++: добавление mdbx::cursor_managed::withdraw_handle()
(backport).
2025-03-20 01:40:41 +03:00
Леонид Юрьев (Leonid Yuriev)
58729a2fbd
mdbx: корректировка описания MDBX_MVCC_RETARDED
и соответствующего сообщения об ошибке (backport).
2025-03-20 01:40:11 +03:00
Леонид Юрьев (Leonid Yuriev)
5dfe3433a8
mdbx: устранение гонки в tbl_setup(MDBX_DUPFIXED | MDBX_INTEGERDUP)
при работе в разных потоках (backport).
...
Проблема была в том, что в случаях фиксированного размера значений
clc.lmin/clc.lmax устанавливались в env->kvs[], а затем корректировались
по актуальному размеру данных в БД. Поэтому при конкурентном вызове из
разных потоков, один поток мог выполнять инициализацию, а второй
прочитать временные/промежуточные значения lmin/lmax.
В результате, при конкурентном старте транзакций в разных потоках при
использовании только-что открытого dbi-хендла, проверка допустимости
длины значения могла заканчиваться ложной ошибкой MDBX_BAD_VALSIZE.
2025-03-20 01:24:34 +03:00
Леонид Юрьев (Leonid Yuriev)
1720762080
mdbx: переименование cursor_validate()
(backport).
2025-03-20 01:24:30 +03:00
Леонид Юрьев (Leonid Yuriev)
91570a084f
mdbx: добавление MDBX_SEEK_AND_GET_MULTIPLE
в API операций курсора (backport).
2025-03-20 01:17:47 +03:00
Леонид Юрьев (Leonid Yuriev)
0fff8d0704
mdbx-doc: doxygen-описания для doubtless-positioning констант (backport).
2025-03-20 01:17:11 +03:00
Леонид Юрьев (Leonid Yuriev)
484b488f92
mdbx-tests: добавление поддержки опции MDBX_VALIDATION
и использование в стохастическом тесте (backport).
2025-03-20 01:16:48 +03:00
Леонид Юрьев (Leonid Yuriev)
2fbdaccf60
mdbx-tests: поддержка значений on
/off
для опций командной строки (backport).
2025-03-20 01:15:53 +03:00
Леонид Юрьев (Leonid Yuriev)
753b2270fd
mdbx: добавление mdbx_cursor_close2()
в API (backport).
2025-03-20 01:14:34 +03:00
Леонид Юрьев (Leonid Yuriev)
33ceba0a5a
mdbx: добавление cursor_reset()
и cursor_drown()
(backport).
2025-03-20 01:13:44 +03:00
Леонид Юрьев (Leonid Yuriev)
2476fba287
mdbx: рефакторинг cursor_eot()
для упрощения txn_done_cursors()
(backport).
2025-03-20 01:12:59 +03:00
Леонид Юрьев (Leonid Yuriev)
2b6a768750
mdbx: косметический рефакторинг cursor_shadow()
(backport).
2025-03-20 01:12:15 +03:00
Леонид Юрьев (Leonid Yuriev)
b6dcdcf2dc
mdbx: запрещение unbind/close курсоров для вложенных транзакций (backport).
2025-03-20 01:10:11 +03:00
Леонид Юрьев (Leonid Yuriev)
175e4a2e1b
mdbx: проверка владельца потока владеющего транзакцией только при MDBX_TXN_CHECKOWNER=ON
(backport).
2025-03-20 01:06:56 +03:00
Леонид Юрьев (Leonid Yuriev)
f9d7eb5525
mdbx-doc: актуализация раздела MacOS в README (backport).
2025-03-20 01:01:05 +03:00
Леонид Юрьев (Leonid Yuriev)
69895e2b55
mdbx-make: поиск gnu-sed
на Darwin/MacOS (backport).
2025-03-20 00:57:17 +03:00
Леонид Юрьев (Leonid Yuriev)
15bd9cfc89
mdbx: удаление const
у транзакции в cursor_bind()
и cursor_renew()
(backport).
2025-03-20 00:52:16 +03:00
Леонид Юрьев (Leonid Yuriev)
d8f9f3ba58
mdbx: проверяем выравнивание размера БД на юнит выделения памяти, а не на размер страницы (backport).
...
Теоретически до этого коммита могла быть некоторая неувязка:
- при открытии БД с размером страницы 4K на Windows (где размер секции кратен 64K) в режиме read-only,
- после того как БД использовалась на POSIX (где размер отображения кратен размеру системной страницы).
Ранее ошибка могла возвращаться со стороны системы (например INVALID_PARAMETER) и по ней крайне сложно было понять в чем дело.
Теперь же будет логирование ошибки и возврат MDBX_WANNA_RECOVERY.
2025-03-20 00:46:45 +03:00
Леонид Юрьев (Leonid Yuriev)
4150f411dc
mdbx: переработка проверка размера файла БД при открытии (backport).
...
Переработка 05cdf9d202b14ac09c801c7893e65271fa27f378. У предыдущего
варианта был недостаток, при необходимости выдачи предупреждения
и открытии БД с изменением геометрии, предупреждение не выдавалось,
что может затруднять анализ/разбор проблемных ситуаций.
2025-03-20 00:45:57 +03:00
Леонид Юрьев (Leonid Yuriev)
32ca9691c3
mdbx-doc: добавление ссылки на привязку к Zig (backport).
2025-03-20 00:44:54 +03:00
Леонид Юрьев (Leonid Yuriev)
4f59864ef5
mdbx-cmake: используем -flto=auto
для GCC >= 11.4 (backport).
...
При сборке посредством GCC >= 11.4 больше не возникает предупреждений:
lto-wrapper: warning: using serial compilation of # LTRANS jobs
lto-wrapper: note: see the ‘-flto’ option documentation for more information
Однако, использование auto-режима не является оптимальным решением, так
как при параллельной сборке посредством make или ninja, каждая уже
запущенная ветвь компиляции породит потоки ещё для каждого ядра ЦПУ.
Таким образом реальная нагрузка может расти квадратично, т.е. чем больше
у вас ядер -- тем хуже и при 96 ядрах может работать 9216 потоков сборки.
Тем не менее, использование `job-server` в CMake пока не возможно, а при
сборке libmdbx не так много работы чтобы чтобы обрушить систему нагрузкой.
2025-03-20 00:41:13 +03:00
Леонид Юрьев (Leonid Yuriev)
f82b760b6e
mdbx-cmake: избегаем двойной работы compiler.cmake
без необходимости (backport).
2025-03-20 00:40:12 +03:00
Леонид Юрьев (Leonid Yuriev)
d6b359756c
mdbx-cmake: расслабление условий для использования LTO с CLANG на Linux (backport).
2025-03-20 00:40:02 +03:00
Леонид Юрьев (Leonid Yuriev)
4d454d6e80
mdbx-cmake: расширение поиска LLVMgold.so
в относительных lib-директориях (backport).
2025-03-20 00:35:47 +03:00
Леонид Юрьев (Leonid Yuriev)
44467d0883
mdbx-make: добавление цели ninja-assertions
и её использование при make check
(backport).
2025-03-20 00:30:01 +03:00
Леонид Юрьев (Leonid Yuriev)
49e6bd9296
mdbx++: использование mdbx_txn_release_all_cursors_ex()
(backport).
2025-03-20 00:29:20 +03:00
Леонид Юрьев (Leonid Yuriev)
e37194affe
mdbx: дополнение ChangeLog.
2025-03-19 23:50:29 +03:00
Леонид Юрьев (Leonid Yuriev)
917e2827f5
mdbx-tests: кратное сокращение итераций тестов в зависимости от конфигурации Valgrind/Debug/CI.
2025-03-19 23:30:49 +03:00
Леонид Юрьев (Leonid Yuriev)
2fd1772503
mdbx-tests: устранение невыравненного доступа в extra/close-dbi для UBSAN.
2025-03-18 13:14:47 +03:00
Леонид Юрьев (Leonid Yuriev)
694626727f
mdbx: использование cmp_lenfast()
вместо cmp_lenfast()
.
2025-03-18 10:46:55 +03:00
Леонид Юрьев (Leonid Yuriev)
2aa47f20c3
mdbx-tests: перехват и логирование исключений в extra-C++ тестах.
2025-03-18 10:46:55 +03:00
Leo Yuriev
e6891b295b
mdbx++: minor reflow Doxygen comments.
2025-03-18 10:46:55 +03:00
Леонид Юрьев (Leonid Yuriev)
c0b1ab1466
mdbx-tests: расширение extra/dupfix-multiple.
2025-03-18 10:46:55 +03:00
Леонид Юрьев (Leonid Yuriev)
71d95d1a5f
mdbx++: добавление mdbx::cursor::put_multiple_samelength()
.
2025-03-18 10:46:55 +03:00
Леонид Юрьев (Leonid Yuriev)
7a923b3d41
mdbx: рефакторинг проверок с выносом в cursor_check_multiple()
.
2025-03-18 10:46:55 +03:00
Леонид Юрьев (Leonid Yuriev)
8008afc6e1
mdbx: поддержка MDBX_MULTIPLE
с нулевым размером данных.
2025-03-18 10:46:55 +03:00
Леонид Юрьев (Leonid Yuriev)
7ae11e0fdb
mdbx++: явное определение external-инстанцирования mdbx::buffer<>
c API-атрибутами.
2025-03-17 23:28:58 +03:00
Леонид Юрьев (Leonid Yuriev)
5c1745a7cd
mdbx: добавление гистограммы количества multi-значений/дубликатов в chk.
2025-03-17 23:28:46 +03:00