Леонид Юрьев (Leonid Yuriev)
08d10ad0a1
mdbx-tests: дополнение extra/txn.
2025-03-17 23:26:30 +03:00
Леонид Юрьев (Leonid Yuriev)
8ebedde181
mdbx++: проверка __cpp_concepts >= 202002
для использования концептов C++.
2025-03-17 23:26:18 +03:00
Леонид Юрьев (Leonid Yuriev)
dcf35e5306
mdbx: исправление затенения курсоров во вложенных транзакциях.
2025-03-17 23:25:53 +03:00
Леонид Юрьев (Leonid Yuriev)
aeac971f0b
mdbx: переработка проверки курсоров на входе API-функций с добавлением cursor_check()
.
2025-03-17 23:25:30 +03:00
Леонид Юрьев (Leonid Yuriev)
6c8047a402
mdbx: переработка mdbx_txn_release_all_cursors_ex()
.
2025-03-17 23:20:40 +03:00
Леонид Юрьев (Leonid Yuriev)
438d185250
mdbx++: переформатирование (временно) неиспользуемого кода.
2025-03-17 23:20:28 +03:00
Леонид Юрьев (Leonid Yuriev)
ee6843062d
mdbx++: удаление исключения при запросе транзакции у отсоединённого курсора.
2025-03-17 23:20:03 +03:00
Леонид Юрьев (Leonid Yuriev)
70adf71770
mdbx++: добавление inplace_storage_size_rounding
в capacity_policy
для буферов.
2025-03-17 23:16:30 +03:00
Леонид Юрьев (Leonid Yuriev)
fa2c27fa08
mdbx++: добавление mdbx::cursor_managed::withdraw_handle()
.
2025-03-17 23:16:12 +03:00
Леонид Юрьев (Leonid Yuriev)
7a72d1b273
mdbx: корректировка описания MDBX_MVCC_RETARDED
и соответствующего сообщения об ошибке.
2025-03-17 23:15:48 +03:00
Леонид Юрьев (Leonid Yuriev)
3e91500fac
mdbx: устранение гонки в tbl_setup(MDBX_DUPFIXED | MDBX_INTEGERDUP)
при работе в разных потоках.
...
Проблема была в том, что в случаях фиксированного размера значений
clc.lmin/clc.lmax устанавливались в env->kvs[], а затем корректировались
по актуальному размеру данных в БД. Поэтому при конкурентном вызове из
разных потоков, один поток мог выполнять инициализацию, а второй
прочитать временные/промежуточные значения lmin/lmax.
В результате, при конкурентном старте транзакций в разных потоках при
использовании только-что открытого dbi-хендла, проверка допустимости
длины значения могла заканчиваться ложной ошибкой MDBX_BAD_VALSIZE.
2025-03-17 23:13:26 +03:00
Леонид Юрьев (Leonid Yuriev)
546b48b6eb
mdbx: переименование cursor_validate()
.
2025-03-17 23:01:30 +03:00
Леонид Юрьев (Leonid Yuriev)
2ffa5cf371
mdbx: добавление MDBX_SEEK_AND_GET_MULTIPLE
в API операций курсора.
2025-03-17 22:58:57 +03:00
Леонид Юрьев (Leonid Yuriev)
b546dc69d2
mdbx-doc: doxygen-описания для doubtless-positioning констант.
2025-03-17 22:58:44 +03:00
Леонид Юрьев (Leonid Yuriev)
42706c45a0
mdbx-tests: добавление поддержки опции MDBX_VALIDATION
и использование в стохастическом тесте.
2025-03-17 22:58:29 +03:00
Леонид Юрьев (Leonid Yuriev)
8dda33329b
mdbx-tests: поддержка значений on
/off
для опций командной строки.
2025-03-17 22:58:08 +03:00
Леонид Юрьев (Leonid Yuriev)
b2bd8bae38
mdbx: добавление mdbx_cursor_close2()
в API.
2025-03-17 22:57:38 +03:00
Леонид Юрьев (Leonid Yuriev)
1299653457
mdbx: добавление cursor_reset()
и cursor_drown()
.
2025-03-17 22:24:23 +03:00
Леонид Юрьев (Leonid Yuriev)
333069e7a8
mdbx: рефакторинг cursor_eot()
для упрощения txn_done_cursors()
.
2025-03-17 21:38:42 +03:00
Леонид Юрьев (Leonid Yuriev)
436998ca83
mdbx: косметический рефакторинг cursor_shadow()
.
2025-03-17 21:06:45 +03:00
Леонид Юрьев (Leonid Yuriev)
b0665f7016
mdbx: запрещение unbind/close курсоров для вложенных транзакций.
2025-03-17 20:48:19 +03:00
Леонид Юрьев (Leonid Yuriev)
4fcfb07b97
mdbx: корректировка mdbx_panic()
для вывода переданного сообщения через __assert_failed()
.
2025-03-17 20:47:47 +03:00
Леонид Юрьев (Leonid Yuriev)
ca30365d3b
mdbx-make: добавление цели ninja-assertions
и её использование при make check
.
2025-03-17 20:46:44 +03:00
Леонид Юрьев (Leonid Yuriev)
6424747636
mdbx++: использование mdbx_txn_release_all_cursors_ex()
.
2025-03-17 20:45:09 +03:00
Леонид Юрьев (Leonid Yuriev)
183610b050
mdbx-doc: исправление url в sitemap.
2025-03-09 11:41:02 +03:00
Леонид Юрьев (Leonid Yuriev)
920d9b5b2f
mdbx-doc: добавление ld+json
в корневой index.hml
2025-03-05 12:54:51 +03:00
Леонид Юрьев (Leonid Yuriev)
283c962fea
mdbx: исправление опечатки в ChangeLog.
2025-03-05 01:46:57 +03:00
Леонид Юрьев (Leonid Yuriev)
8efcdeae9d
mdbx: исправление опечатки в дате внутри ChangeLog.
2025-03-04 20:06:16 +03:00
Леонид Юрьев (Leonid Yuriev)
9c161cdafd
mdbx: дополнение ChangeLog.
2025-03-04 14:27:53 +03:00
Леонид Юрьев (Leonid Yuriev)
a3265e11dc
mdbx: добавление в API mdbx_txn_release_all_cursors_ex()
и изменение семантики результата mdbx_txn_release_all_cursors()
.
...
По недосмотру в выпусках остался предварительный/черновой вариант
функции mdbx_txn_release_all_cursors(), который смешивает в возвращаемом
значении информацию об ошибке/успехе и количество обработанных курсоров.
За-за чего невозможно отличить одно от другого, например ошибку EPERM на
Linux от одного успешно закрытого курсора.
Теперь mdbx_txn_release_all_cursors() возвращает только код ошибки,
а для получения кол-ва закрытых курсоров в API добавлена функция mdbx_txn_release_all_cursors_ex().
2025-03-04 14:21:25 +03:00
Леонид Юрьев (Leonid Yuriev)
709d524d21
mdbx: проверка владельца потока владеющего транзакцией только при MDBX_TXN_CHECKOWNER=ON
.
2025-03-04 10:52:30 +03:00
Леонид Юрьев (Leonid Yuriev)
e0843429a1
mdbx-doc: актуализация раздела MacOS в README.
2025-03-04 00:02:39 +03:00
Леонид Юрьев (Leonid Yuriev)
329eee4e4f
mdbx-make: поиск gnu-sed
на Darwin/MacOS.
2025-03-03 23:12:55 +03:00
Леонид Юрьев (Leonid Yuriev)
4fd165f8d2
mdbx: дополнение ChangeLog.
2025-03-03 20:16:51 +03:00
Леонид Юрьев (Leonid Yuriev)
05e7a94619
mdbx-tests: исправление extra-open для 32-битных сборок Windows (БД еще меньше).
2025-03-03 02:31:32 +03:00
Леонид Юрьев (Leonid Yuriev)
826cdb708f
mdbx: корректировка log_error()
для устранение ложных ошибок при работе mdbx_chk с высоким уровнем логирования.
...
Некая проблема была в том, что при высоком уровне логирования в логгер
также отправлялись неизбежные MDBX_NOTFOND при достижении конца
интегрируемых данных. В свою очередь, chk-логика формирования отчета
подсчитывала эти сообщения как ошибки при проверке БД...
2025-03-03 01:12:35 +03:00
Леонид Юрьев (Leonid Yuriev)
da24fda578
mdbx: добавление print-подобных функций в chk для удобства отладки.
2025-03-03 01:11:55 +03:00
Леонид Юрьев (Leonid Yuriev)
0fa21a3c0d
mdbx: переделка env_owned_wrtxn()
и мест её вызова.
...
Цель в том чтобы избавить от коллизии блокировки возникающей внутри
dxb_sanitize_tail() при использовании Valgrind/ASAN, а также упросить
код.
2025-03-02 23:29:40 +03:00
Леонид Юрьев (Leonid Yuriev)
dd9f608320
mdbx: дополнительные проверки сигнатур курсоров при итерации связанных списков.
2025-03-02 11:46:10 +03:00
Леонид Юрьев (Leonid Yuriev)
28ca18972a
mdbx: более полная очистка курсоров при закрытии/отключении.
2025-03-02 11:44:10 +03:00
Леонид Юрьев (Leonid Yuriev)
fbb93f9cfb
mdbx: удаление const
у транзакции в cursor_bind()
и cursor_renew()
.
2025-03-02 10:41:38 +03:00
Леонид Юрьев (Leonid Yuriev)
bc464521c0
mdbx-tests: расширение extra/dbi
.
2025-03-02 00:42:55 +03:00
Леонид Юрьев (Leonid Yuriev)
9273e2ee60
mdbx: исправление наследования dbi-хендла открытого в дочерней транзакции без изменения данных.
2025-03-02 00:40:18 +03:00
Леонид Юрьев (Leonid Yuriev)
e035f102ab
mdbx: устранение сбоя аудита таблиц при инвалидации dbi-хендла вследствие отмены вложенной транзакции.
2025-03-02 00:10:56 +03:00
Леонид Юрьев (Leonid Yuriev)
1240ed2ba3
mdbx: исправление оплошности в спецификации формата при логировании имен таблиц.
2025-03-02 00:10:56 +03:00
Леонид Юрьев (Leonid Yuriev)
6ca63b46d8
mdbx: уменьшение в 16 раз предлагаемого размера БД для устранения проблем Valgrind/ASAN.
2025-03-02 00:10:56 +03:00
Леонид Юрьев (Leonid Yuriev)
9fee0bc3a6
mdbx-tests: удаление тестовой БД перед началом теста в extra/dupfix_addodd
.
2025-03-02 00:10:56 +03:00
Леонид Юрьев (Leonid Yuriev)
c14bb7814f
mdbx-tests: исправление extra-open для 32-битных сборок.
2025-02-20 23:48:48 +03:00
Леонид Юрьев (Leonid Yuriev)
9b31c517e6
mdbx: проверяем выравнивание размера БД на юнит выделения памяти, а не на размер страницы.
...
Теоретически до этого коммита могла быть некоторая неувязка:
- при открытии БД с размером страницы 4K на Windows (где размер секции кратен 64K) в режиме read-only,
- после того как БД использовалась на POSIX (где размер отображения кратен размеру системной страницы).
Ранее ошибка могла возвращаться со стороны системы (например INVALID_PARAMETER) и по ней крайне сложно было понять в чем дело.
Теперь же будет логирование ошибки и возврат MDBX_WANNA_RECOVERY.
2025-02-20 23:11:28 +03:00
Леонид Юрьев (Leonid Yuriev)
66c747e4a9
mdbx-cmake: корректировка форматирования (косметика).
2025-02-20 23:11:28 +03:00