Леонид Юрьев (Leonid Yuriev)
0a9d96affd
mdbx: устранения ложной ошибки не-когерентности при использовании mdbx_dbi_sequence(MAIN_DBI) без других изменений.
...
Временная подпорка для coherency_check(), которую в перспективе
следует заменить вместе с переделкой установки mod_txnid.
Суть проблемы:
- coherency_check() в качестве одного из критериев "когерентности"
проверяет условие meta.maindb.mod_txnid == maindb.root->txnid;
- при обновлении maindb.sequence высталяется DBI_DIRTY, что приведет
к обновлению meta.maindb.mod_txnid = current_txnid;
- однако, если в само дерево maindb обновление не вносились и оно
не пустое, то корневая страницы останеться с прежним txnid и из-за
этого ложно сработает coherency_check().
Временное (текущее) решение: Принудительно обновляем корневую
страницу в описанной выше ситуации. Это устраняет проблему, но и
не создает рисков регресса.
Итоговое решение, которое предстоит реализовать:
- изменить семантику установки/обновления mod_txnid, привязав его
строго к изменению b-tree, но не атрибутов;
- обновлять mod_txnid при фиксации вложенных транзакций;
- для dbi-хендлов пользовательских subDb (видимо) можно оставить
DBI_DIRTY в качестве признака необходимости обновления записи
subDb в MainDB, при этом взводить DBI_DIRTY вместе с обновлением
mod_txnid, в том числе при обновлении sequence.
- для MAIN_DBI при обновлении sequence не следует взводить DBI_DIRTY
и/или обновлять mod_txnid, а только взводить MDBX_TXN_DIRTY.
- альтернативно, можно перераспределить флажки-признаки dbi_state,
чтобы различать состояние dirty-tree и dirty-attributes.
2024-08-01 22:08:26 +03:00
Леонид Юрьев (Leonid Yuriev)
dc7f15c63e
mdbx-tools: отображение статусов parked/ousted
для транзакций.
2024-07-27 12:47:21 +03:00
Леонид Юрьев (Leonid Yuriev)
9e3a36b74d
mdbx: корректировка txn_end()
для устранения лишних MDBX_TXN_OUSTED
.
2024-07-27 12:44:06 +03:00
Леонид Юрьев (Leonid Yuriev)
7873118cdb
mdbx++: добавление (рас)парковки транзакций чтения в C++ API.
2024-07-24 19:58:02 +03:00
Леонид Юрьев (Leonid Yuriev)
2e7d325cf1
mdbx: добавление поддержки MDBX_OUSTED
в mdbx_strerror()
и C++ API.
2024-07-24 15:57:55 +03:00
Леонид Юрьев (Leonid Yuriev)
cb743d44fc
mdbx: новый/поправленный clang-format.
2024-07-24 11:27:41 +03:00
Леонид Юрьев (Leonid Yuriev)
a430b3b288
mdbx: исправление опечатки 0x%u
в логировании.
2024-07-24 11:22:59 +03:00
Леонид Юрьев (Leonid Yuriev)
485d6d1f50
mdbx: корректировка/актуализация ChangeLog для v0.13.x
2024-07-23 16:15:05 +03:00
Леонид Юрьев (Leonid Yuriev)
69aa9e0fe1
mdbx: устранение лишней итерации внутри tree_rebalance()
.
...
Допускаем итерацию с не-вовлечением еще не-измененных страниц,
только когда страницы для объединения доступны справа и слева,
Т.е. допускаем итерацию для выбора лучшей альтернативы (справа или слева),
и избегаем этой итерации когда альтернативы нет.
2024-07-23 16:07:27 +03:00
Леонид Юрьев (Leonid Yuriev)
9309aa7e12
mdbx: уточнение комментариев в коде (косметика).
2024-07-23 15:58:59 +03:00
Леонид Юрьев (Leonid Yuriev)
ad0ba7a661
mdbx: добавление секции о v0.12.11
в ChangeLog.
2024-07-23 14:20:57 +03:00
Леонид Юрьев (Leonid Yuriev)
0a36ed3ca1
mdbx: исправление опечатки в имени ior_sgv_gap4terminator
.
2024-07-21 22:27:05 +03:00
Леонид Юрьев (Leonid Yuriev)
6941ec17bc
mdbx: обновление ChangeLog.
2024-07-20 16:43:45 +03:00
Леонид Юрьев (Leonid Yuriev)
6b2b15ebc8
mdbx: допускаем лишние/устаревшие флаги для GC/FreeDB для старых БД.
2024-07-20 14:05:16 +03:00
Леонид Юрьев (Leonid Yuriev)
5c643f72b5
mdbx-testing: уменьшение длительности/глубины тестирования extra/crunched_delete
на MacOS.
2024-07-20 13:19:25 +03:00
Леонид Юрьев (Leonid Yuriev)
9d9a19ae17
mdbx: форматирование/пробелы/косметика.
2024-07-20 13:15:27 +03:00
Леонид Юрьев (Leonid Yuriev)
b1cc8b2e9f
mdbx-windows: исправление нарезки FILE_SEGMENT_ELEMENT.
...
Ошибка слишком грубая.
Похоже при переработке I/O под Windows при `git pull --rebase` потерялся коммит.
К повреждению БД проблема не приводила, так как сбой происходил во время записи данных с возвратом ERROR_INVALID_PARAMETER из системного вызова.
2024-07-20 13:15:21 +03:00
Леонид Юрьев (Leonid Yuriev)
c46270ec56
mdbx-windows: исправление падения при логировании ошибки WriteFileGather()
.
2024-07-20 13:15:21 +03:00
Леонид Юрьев (Leonid Yuriev)
7dee88e27f
mdbx-test: вывод кадров стека для решения проблем Windows.
2024-07-18 20:57:10 +03:00
Леонид Юрьев (Leonid Yuriev)
242ebefdb7
mdbx-windows: добавление потерянного #include <wincrypt.h>
.
2024-07-14 23:42:24 +03:00
Леонид Юрьев (Leonid Yuriev)
f20addd7fc
mdbx-doc: доработка doxygen-ссылок.
2024-07-13 17:03:06 +03:00
Леонид Юрьев (Leonid Yuriev)
8a04337e79
mdbx: корректировка ChangeLog.
2024-07-13 16:15:21 +03:00
Леонид Юрьев (Leonid Yuriev)
8e8ac09e14
mdbx: корректировка mdbx_enumerate_subdb()
.
2024-07-13 16:13:11 +03:00
Леонид Юрьев (Leonid Yuriev)
bdfec14992
mdbx: дополнение ChangeLog.
2024-07-12 14:55:17 +03:00
Леонид Юрьев (Leonid Yuriev)
32df0ad1eb
mdbx: устранение регресса SIGSEGV
при открытии БД с измененным размером страницы.
2024-07-12 11:43:12 +03:00
Леонид Юрьев (Leonid Yuriev)
2311706272
mdbx-testing: тестирование парковки транзакций.
2024-07-12 01:05:56 +03:00
Леонид Юрьев (Leonid Yuriev)
ec0ada7b8c
mdbx: парковка читающих транзакций.
2024-07-12 01:05:56 +03:00
Леонид Юрьев (Leonid Yuriev)
f335a16c92
mdbx-testsing: отлючение лишнего/временного отладочного вывода.
2024-07-10 22:33:46 +03:00
Леонид Юрьев (Leonid Yuriev)
fe31958d46
mdbx: добавление UUID для идентификации БД.
2024-07-10 22:33:46 +03:00
Леонид Юрьев (Leonid Yuriev)
319753661a
mdbx: рефакторинг coherency_check_written()
.
2024-07-05 22:00:05 +03:00
Леонид Юрьев (Leonid Yuriev)
3798d47a71
mdbx-doc: несущественная корректировка doxygen-описаний.
2024-07-05 20:33:43 +03:00
Леонид Юрьев (Leonid Yuriev)
9acbe88566
mdbx: добавление mdbx_enumerate_subdb()
.
2024-07-05 00:25:28 +03:00
Леонид Юрьев (Leonid Yuriev)
9fbf0099f2
mdbx-doc: добавление \see
ссылок на MDBX_db_flags_t
и MDBX_dbi_state_t
.
2024-07-04 23:20:37 +03:00
Леонид Юрьев (Leonid Yuriev)
b4f395be50
mdbx++: добавление недостающего метода mdbx::env::limits::max_map_handles()
.
2024-07-04 23:20:37 +03:00
Леонид Юрьев (Leonid Yuriev)
49c6e14b30
mdbx++: расширение API методами принимающими имена subDb через mdbx::slice
.
2024-07-04 23:20:37 +03:00
Леонид Юрьев (Leonid Yuriev)
69df6e6ac0
mdbx: корректировка assert-проверки внутри meta_override()
.
...
После доработок/рефакторинга условие проверки стало неверным.
2024-06-28 14:00:49 +03:00
Леонид Юрьев (Leonid Yuriev)
7abeac762f
mdbx: устранение вероятности SIGSEGV
при включении логирования MDBX_LOG_TRACE
в отладочных сборках.
2024-06-26 09:44:42 +03:00
Леонид Юрьев (Leonid Yuriev)
d5fb37460b
mdbx: исправление пары опечаток в COPYRIGHT.
2024-06-21 12:18:40 +03:00
Леонид Юрьев (Leonid Yuriev)
bdd0b487ae
mdbx-doc: корректировки для Doxygen.
2024-06-20 13:53:23 +03:00
Леонид Юрьев (Leonid Yuriev)
9670cf5709
mdbx-testing: вывод "табло" с информацией о положении курсоров для удобства отладки.
2024-06-19 14:18:18 +03:00
Леонид Юрьев (Leonid Yuriev)
a10506fb6a
mdbx-testing: технический возврат bool
из проверочных функций в тесте для удобства ad-hoc доработок.
2024-06-19 14:18:18 +03:00
Леонид Юрьев (Leonid Yuriev)
d4c09f9b78
mdbx-testing: изменение порядка перебора режимов в "долгом стохастическом".
2024-06-19 14:18:18 +03:00
Леонид Юрьев (Leonid Yuriev)
f65642e38c
mdbx: обновление ChangeLog.
2024-06-19 14:18:18 +03:00
Леонид Юрьев (Leonid Yuriev)
bcd955aeb9
mdbx++: исправление append_u8()
.
2024-06-19 14:18:18 +03:00
Леонид Юрьев (Leonid Yuriev)
a79a318d61
mdbx++: поддержка MDBX_VALIDATION
.
2024-06-19 14:18:18 +03:00
Леонид Юрьев (Leonid Yuriev)
3517db6178
mdbx-testing: добавление `extra/crunched_delete'.
2024-06-19 14:18:18 +03:00
Леонид Юрьев (Leonid Yuriev)
25efb58790
mdbx++: добавление перегрузок put/insert/upsert для mdbx::pair
.
2024-06-19 14:18:18 +03:00
Леонид Юрьев (Leonid Yuriev)
74ff4dba0a
mdbx-testing: добавление tmux-battery
.
2024-06-19 14:18:18 +03:00
Леонид Юрьев (Leonid Yuriev)
a2753c9ae1
mdbx: доработка gc_update()
с отключением нового/нестабильного кода.
2024-06-19 14:18:18 +03:00
Леонид Юрьев (Leonid Yuriev)
8e29fb1f26
mdbx-testing: исправление опечатки в keygen-setup.
2024-06-19 14:18:18 +03:00